*이 포스팅은 쿠팡 파트너스 활동의 일환으로 이에 따른 일정액의 수수료를 제공받습니다.
안녕하세요, 큰 그림을 보는 보안 분석가 여러분! 🕵️♂️
지난 시간, 우리는 AI를 이용해 수만 줄의 로그더미 속에서 '비정상 행위(Anomaly)'들만 쏙쏙 골라냈습니다.
- "어? 이상한 파일(payload.exe)을 몰래 만들었네?"
- "어? 레지스트리 시작 프로그램(Run Key)에 뭘 등록했네?"
하지만 아직은 이 사건들이 '점(Dot)'으로만 존재합니다. 이 점들을 '선(Line)'으로 연결해야 비로소 악성코드의 전체 작전 지도(Big Picture)가 보입니다.
"이 파일이 생성되었기 때문에 -> 레지스트리에 등록된 것이다" 라는 인과관계(Causality)를 파악해야 하죠.
오늘은 텍스트로 된 로그를 AI에게 주고, "사건의 흐름을 보기 쉽게 그림(Diagram)으로 그려줘!" 라고 요청하는 시각화 실습을 진행하겠습니다. 복잡한 사건 관계도가 탐정의 수사 보드처럼 한눈에 들어올 것입니다! 📊✨

1. 🧶 왜 '연관관계'를 봐야 하나요?
악성코드는 단독으로 움직이지 않습니다. 치밀한 연계 동작을 수행합니다. 가장 대표적인 패턴이 바로 '지속성(Persistence)' 확보입니다.
- 파일 생성 (Dropper): malware.exe가 실행되어 C:\Temp\backdoor.exe를 낳습니다. (원인)
- 레지스트리 등록 (Registration): malware.exe가 backdoor.exe를 윈도우가 켜질 때마다 실행되도록 레지스트리에 등록합니다. (결과)
이 두 로그가 따로 놀면 위험해 보이지 않을 수 있지만, 연결하면 명백한 악성 의도가 드러납니다.
2. 📝 [준비물] 정제된 핵심 로그
지난 시간 실습에서 필터링했던 핵심 로그 데이터를 준비합니다.
[Input Data 예시]
Plaintext
1. [Process Create] Parent: downloader.exe (PID: 1234) -> Child: cmd.exe (PID: 5678)
2. [File Create] Process: cmd.exe -> Path: C:\Users\Public\update.vbs
3. [RegSetValue] Process: cmd.exe -> Key: HKCU\...\Run\WinUpdate -> Data: wscript.exe C:\Users\Public\update.vbs
4. [Network Connect] Process: wscript.exe -> Dest: 192.168.10.5:4444
텍스트로만 보면 머리가 아프죠? 😵💫 이걸 시각화해 봅시다.
3. 🎨 [실습] AI에게 "Mermaid 다이어그램" 그려달라고 하기
우리는 그림판을 켜지 않을 겁니다. AI에게 'Mermaid.js' 문법으로 코드를 짜달라고 하면, 아주 깔끔한 플로우차트가 자동으로 생성됩니다.
🗣️ 시각화 요청 프롬프트
[역할] 당신은 사이버 범죄 수사관이자 데이터 시각화 전문가입니다.
[작업] 아래 제공된 악성코드 행위 로그를 분석하여, 사건의 인과관계를 보여주는 순서도(Flowchart)를 작성하세요.
[요청 사항]
- 포맷: Mermaid.js 코드 형식으로 작성해 주세요. (좌에서 우로 흐르는 LR 방향)
- 구조:
- 프로세스(Process)는 [사각형]으로 표현
- 파일(File)은 (타원)으로 표현
- 레지스트리(Registry)는 {{육각형}}으로 표현
- 네트워크(Network)는 ((원))으로 표현
- 관계 표현: 화살표 위에 어떤 행위(Drop, Execute, Connect 등)인지 라벨을 붙이세요.
- 강조: 악성 행위의 핵심 흐름이 잘 드러나도록 스타일을 적용하세요.
[로그 데이터] (위의 Input Data 예시를 붙여넣기)
4. 🖼️ [결과] 텍스트가 그림으로 변하는 마법
AI는 다음과 같은 Mermaid 코드를 생성해 줍니다.
🤖 AI가 생성한 코드 (예시)
코드 스니펫
graph LR
P1[downloader.exe] -- Spawns --> P2[cmd.exe]
P2 -- Drops --> F1(update.vbs)
P2 -- Registers Persistence --> R1{{HKCU Run Key}}
R1 -. Points to .-> F1
F1 -- Executed by --> P3[wscript.exe]
P3 -- C2 Connect --> N1((192.168.10.5))
style P1 fill:#f9f,stroke:#333,stroke-width:2px
style R1 fill:#ff9,stroke:#f66,stroke-width:2px
style N1 fill:#9cf,stroke:#333,stroke-width:2px
이 코드를 Mermaid Live Editor (웹사이트)나 노션(Notion), 깃허브(GitHub) 등에 붙여넣으면 아래와 같은 멋진 다이어그램이 짠! 하고 나타납니다.
🔍 다이어그램 해석:
- downloader.exe가 시작점(Patient Zero)이구나!
- 중간에 cmd.exe가 하수인 역할을 했네.
- 결국 update.vbs라는 파일을 심고, 이걸 레지스트리에 박아서 영구적으로 실행되게 만들었군.
- 최종 목적지는 192.168.10.5 서버로 연결하는 것이었어!
글자로 볼 때보다 훨씬 직관적이죠? 😎
5. 💡 꿀팁: 도식화가 주는 강력한 이점
보고서에 텍스트만 잔뜩 있는 것과, 이런 다이어그램이 하나 들어가는 것은 천지 차이입니다.
- 비전문가 설득 용이: 경영진이나 비기술 직군에게 "이놈이 이렇게 들어와서 저렇게 연결했습니다"라고 설명할 때 최고입니다.
- 공격 체인(Kill Chain) 식별: 공격의 단계(유입 -> 설치 -> 명령 제어)가 한눈에 보이므로, 어느 연결고리를 끊어야 방어가 될지 파악하기 쉽습니다.
- 누락된 정보 확인: 그림을 그렸는데 끊어진 연결고리가 있다면? "어? 이 파일은 누가 실행시킨 거지?" 하고 추가 분석 포인트를 찾을 수 있습니다.
🎉 마치며: 모든 점이 연결되었다!
축하합니다! 👏 여러분은 이제 난해한 로그 데이터를 하나의 완벽한 범죄 시나리오로 재구성했습니다. 단순한 '로그 분석가'에서 사건의 전모를 꿰뚫는 '사이버 수사관'으로 진화하신 겁니다.
자, 이제 우리는:
- 코드를 분석했고 (정적)
- 행위를 포착했고 (동적)
- 중요한 것만 걸러내서 (필터링)
- 사건 관계도까지 그렸습니다 (시각화).
이제 남은 건 단 하나! 이 모든 과정을 정리하여 최종 결과물(보고서)을 만드는 것입니다. 다음 시간, 대망의 마지막 실습 "전문가 수준의 악성코드 분석 보고서 자동 생성" 편에서 뵙겠습니다.
여러분의 분석이 예술이 되는 그날까지, 화이팅! 🎨🖌️
'일반IT > IT보안' 카테고리의 다른 글
| "범인의 진짜 목적이 뭐야?" 🕵️♂️ 조각난 단서들을 모아 AI에게 '공격 시나리오'와 '의도' 요약시키기 (0) | 2025.12.17 |
|---|---|
| 해커들의 주기율표? 🧪 MITRE ATT&CK 프레임워크 완전 정복 및 매핑 가이드 (0) | 2025.12.17 |
| [실습] "로그가 너무 많아 토할 것 같아요" 🤮 AI로 방대한 시스템 로그에서 '비정상 행위'만 쏙 뽑아내기! 📉 (0) | 2025.12.14 |
| [실습] 악성코드, 딱 걸렸어! 📸 샌드박스에서 실행하고 ProcMon으로 범죄 현장 포착하기 (동적 분석의 시작) (0) | 2025.12.14 |
| [실습] 악성코드의 심장을 찾아라! 🫀 암호화·네트워크 함수 위치 특정 및 코드 정밀 분석 (0) | 2025.12.14 |
