본문 바로가기
일반IT/IT보안

악성코드의 음모를 한눈에! 🕸️ 레지스트리와 파일 행위의 '연결고리' 도식화하기 (with AI)

by gasbugs 2025. 12. 14.

 

*이 포스팅은 쿠팡 파트너스 활동의 일환으로 이에 따른 일정액의 수수료를 제공받습니다.



가그린 제로 구강청결제, 1.2L, 2개

안녕하세요, 큰 그림을 보는 보안 분석가 여러분! 🕵️‍♂️

지난 시간, 우리는 AI를 이용해 수만 줄의 로그더미 속에서 '비정상 행위(Anomaly)'들만 쏙쏙 골라냈습니다.

  • "어? 이상한 파일(payload.exe)을 몰래 만들었네?"
  • "어? 레지스트리 시작 프로그램(Run Key)에 뭘 등록했네?"

하지만 아직은 이 사건들이 '점(Dot)'으로만 존재합니다. 이 점들을 '선(Line)'으로 연결해야 비로소 악성코드의 전체 작전 지도(Big Picture)가 보입니다.

"이 파일이 생성되었기 때문에 -> 레지스트리에 등록된 것이다" 라는 인과관계(Causality)를 파악해야 하죠.

오늘은 텍스트로 된 로그를 AI에게 주고, "사건의 흐름을 보기 쉽게 그림(Diagram)으로 그려줘!" 라고 요청하는 시각화 실습을 진행하겠습니다. 복잡한 사건 관계도가 탐정의 수사 보드처럼 한눈에 들어올 것입니다! 📊✨

 

 

 


1. 🧶 왜 '연관관계'를 봐야 하나요?

악성코드는 단독으로 움직이지 않습니다. 치밀한 연계 동작을 수행합니다. 가장 대표적인 패턴이 바로 '지속성(Persistence)' 확보입니다.

  1. 파일 생성 (Dropper): malware.exe가 실행되어 C:\Temp\backdoor.exe를 낳습니다. (원인)
  2. 레지스트리 등록 (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)를 작성하세요.

[요청 사항]

  1. 포맷: Mermaid.js 코드 형식으로 작성해 주세요. (좌에서 우로 흐르는 LR 방향)
  2. 구조:
    • 프로세스(Process)는 [사각형]으로 표현
    • 파일(File)은 (타원)으로 표현
    • 레지스트리(Registry)는 {{육각형}}으로 표현
    • 네트워크(Network)는 ((원))으로 표현
  3. 관계 표현: 화살표 위에 어떤 행위(Drop, Execute, Connect 등)인지 라벨을 붙이세요.
  4. 강조: 악성 행위의 핵심 흐름이 잘 드러나도록 스타일을 적용하세요.

[로그 데이터] (위의 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) 등에 붙여넣으면 아래와 같은 멋진 다이어그램이 짠! 하고 나타납니다.

🔍 다이어그램 해석:

  1. downloader.exe가 시작점(Patient Zero)이구나!
  2. 중간에 cmd.exe가 하수인 역할을 했네.
  3. 결국 update.vbs라는 파일을 심고, 이걸 레지스트리에 박아서 영구적으로 실행되게 만들었군.
  4. 최종 목적지는 192.168.10.5 서버로 연결하는 것이었어!

글자로 볼 때보다 훨씬 직관적이죠? 😎


5. 💡 꿀팁: 도식화가 주는 강력한 이점

보고서에 텍스트만 잔뜩 있는 것과, 이런 다이어그램이 하나 들어가는 것은 천지 차이입니다.

  1. 비전문가 설득 용이: 경영진이나 비기술 직군에게 "이놈이 이렇게 들어와서 저렇게 연결했습니다"라고 설명할 때 최고입니다.
  2. 공격 체인(Kill Chain) 식별: 공격의 단계(유입 -> 설치 -> 명령 제어)가 한눈에 보이므로, 어느 연결고리를 끊어야 방어가 될지 파악하기 쉽습니다.
  3. 누락된 정보 확인: 그림을 그렸는데 끊어진 연결고리가 있다면? "어? 이 파일은 누가 실행시킨 거지?" 하고 추가 분석 포인트를 찾을 수 있습니다.

🎉 마치며: 모든 점이 연결되었다!

축하합니다! 👏 여러분은 이제 난해한 로그 데이터를 하나의 완벽한 범죄 시나리오로 재구성했습니다. 단순한 '로그 분석가'에서 사건의 전모를 꿰뚫는 '사이버 수사관'으로 진화하신 겁니다.

자, 이제 우리는:

  1. 코드를 분석했고 (정적)
  2. 행위를 포착했고 (동적)
  3. 중요한 것만 걸러내서 (필터링)
  4. 사건 관계도까지 그렸습니다 (시각화).

이제 남은 건 단 하나! 이 모든 과정을 정리하여 최종 결과물(보고서)을 만드는 것입니다. 다음 시간, 대망의 마지막 실습 "전문가 수준의 악성코드 분석 보고서 자동 생성" 편에서 뵙겠습니다.

여러분의 분석이 예술이 되는 그날까지, 화이팅! 🎨🖌️