안녕하세요, 디지털 세상의 도청 전문가(?) 여러분! 🕵️♂️🎧
지난 시간까지 우리는 악성코드를 PC 안에서 실행시키고, 어떤 짓을 하는지 지켜봤습니다(동적 분석). 파일도 만들고, 레지스트리도 건드리는 걸 확인했죠.
그런데 악성코드 분석의 '화룡점정'은 바로 네트워크 분석입니다. 악성코드는 혼자 움직이지 않습니다. 반드시 해커의 본거지인 C&C(Command & Control) 서버와 통신하며 명령을 받고, 훔친 정보를 내보냅니다.
마치 스파이가 적진에 침투해서 본부로 무전을 치는 것과 같죠. 📻 우리는 이 무전 내용(패킷)을 가로채서 "도대체 무슨 정보를 빼돌렸는지", "공격이 어느 단계까지 진행됐는지" 파악해야 합니다.
오늘은 Wireshark(와이어샤크)를 활용해 악성 패킷을 뜯어보고, 이를 사이버 킬체인(Cyber Kill Chain) 단계별로 분류하는 실습을 진행하겠습니다. 🦈

1. 📡 C&C 통신과 킬체인(Kill Chain)의 관계
분석에 앞서, 우리가 보는 패킷이 공격의 어느 단계인지 아는 것이 중요합니다. 네트워크 관점에서 킬체인은 크게 3가지 단계로 나뉩니다.
- 설치 (Installation): 악성코드가 추가 파일(Payload)을 다운로드하는 단계.
- 명령 및 제어 (C2): "나 살아있어!"라고 신호(Heartbeat)를 보내거나, 해커의 명령을 대기하는 단계.
- 행동 개시 (Action on Objectives): 키로깅한 정보나 문서를 해커 서버로 전송(Exfiltration)하는 단계.
우리의 목표는 패킷을 보고 이 3가지를 구분해내는 것입니다.
2. 🛠️ [준비물] 패킷 캡처 파일 (PCAP)
지난 동적 분석 실습 때 샌드박스에서 실행하면서 동시에 패킷을 캡처했다면 베스트입니다. 혹은 Malware-Traffic-Analysis.net 같은 사이트에서 교육용 PCAP 파일을 구할 수도 있습니다.
- 도구: Wireshark (패킷 분석의 제왕)
- 파일: infected_log.pcap (악성 통신이 담긴 파일)
3. 🦈 [실습 Step 1] 접속지 확인: "어디로 전화를 걸었나?" (DNS)
가장 먼저 봐야 할 것은 DNS 쿼리입니다. 악성코드는 보통 IP 주소보다는 도메인 이름(예: bad-hacker.com)을 찾습니다.
- 필터 입력: 와이어샤크 상단 필터창에 dns 라고 입력합니다.
- 패킷 확인: Standard query 부분을 봅니다.
- google.com, microsoft.com은 무시합니다 (정상).
- 이상한 도메인을 찾으세요!
- 예: xkwz-update-server.biz, api.telegram.org (텔레그램을 C2로 쓰는 경우)
🕵️♂️ 분석 포인트
만약 도메인 이름이 a1b2c3d4e5.com 처럼 무작위 문자열이라면?
DGA(도메인 생성 알고리즘)를 사용한 악성코드일 확률이 매우 높습니다!
4. 📦 [실습 Step 2] 대화 내용 엿듣기: HTTP/TCP 스트림 분석
의심스러운 도메인 IP를 찾았다면(예: 192.168.10.100), 이제 구체적으로 어떤 데이터를 주고받았는지 확인합니다.
- 필터 입력: ip.addr == 192.168.10.100 && http (HTTPS라면 TLS로 보이지만, 오늘은 교육용 HTTP 기준)
- 스트림 추적: 패킷 리스트에서 우클릭 -> Follow -> TCP Stream (또는 HTTP Stream)을 클릭합니다.
- 대화 내용 확인:
- 빨간색: 내가 보낸 데이터 (Request)
- 파란색: 서버가 보낸 데이터 (Response)
5. ⛓️ [실습 Step 3] 킬체인 단계별 패킷 분류 (AI 활용)
TCP Stream 창에 외계어 같은 데이터가 보일 겁니다. 이때 AI의 도움을 받으면 기가 막히게 해석해 줍니다. 패킷 내용을 복사해서 AI에게 물어봅시다!
🟢 상황 1: 추가 악성코드 다운로드 (Installation 단계)
- 패킷 내용:
GET /payload/ransom.exe HTTP/1.1 Host: 192.168.10.100 User-Agent: Mozilla/5.0...
- AI 분석 요청: "이 HTTP 요청이 의미하는 바가 뭐야?"
- AI 답변: "사용자가 서버로부터 ransom.exe라는 실행 파일을 다운로드하고 있습니다. 이는 킬체인의 Installation(설치) 단계에 해당합니다."
🟡 상황 2: 좀비 PC 신고 (C2 단계)
- 패킷 내용:
POST /gate.php HTTP/1.1 Content-Length: 15 id=12345&os=win10
- AI 분석 요청: "이 POST 요청의 목적이 뭘까?"
- AI 답변: "감염된 PC가 자신의 ID와 운영체제 정보를 해커 서버(gate.php)에 등록하고 있습니다. 공격 준비가 완료되었음을 알리는 Command and Control(C2) 단계의 비콘(Beacon) 신호입니다."
🔴 상황 3: 정보 유출 (Action on Objectives 단계)
- 패킷 내용:
- HTTP
POST /upload HTTP/1.1 data=V2UgaGF2ZSB5b3VyIHBhc3N3b3JkIQ==- AI 분석 요청: "여기 data 파라미터 값이 Base64로 인코딩된 것 같아. 디코딩해서 무슨 내용인지, 공격 단계는 어디인지 알려줘."
- AI 답변:
- 디코딩 결과: "We have your password!"
- 분석: "피해자의 중요한 정보를 외부로 빼돌리는 행위입니다. 킬체인의 마지막 단계인 Action on Objectives(목표 달성/정보 유출)에 해당합니다."
6. 📊 [결과 정리] 공격 시나리오 완성
네트워크 분석을 통해 우리는 막연했던 공격 흐름을 증거 기반의 시나리오로 완성할 수 있습니다.
📝 네트워크 포렌식 요약
- [14:00] Installation: 악성 도메인(mal-site.com)에서 payload.exe 다운로드 확인.
- [14:02] C2 Establishment: 감염 PC 정보(OS, IP)를 C2 서버로 전송하며 연결 수립.
- [14:05] Action on Objectives: passwords.txt 파일 내용을 POST 방식으로 유출 시도 확인.
🎉 마치며: 해커의 목소리를 들었다!
축하합니다! 👏 여러분은 이제 PC 내부(호스트)뿐만 아니라, 보이지 않는 선(네트워크)을 타고 흐르는 해커의 은밀한 대화까지 엿듣는 기술을 익혔습니다.
- 파일 분석이 '지문 감식'이라면,
- 패킷 분석은 '통화 내역 조회'와 같습니다.
이 두 가지 증거가 합쳐지면 해커는 더 이상 숨을 곳이 없죠. 😎
자, 이제 정말 9부 능선을 넘었습니다. 모든 분석은 끝났습니다. 이제 이 화려한 분석 결과를 정리해서 보고하는 일만 남았습니다.
다음 시간에는 이 시리즈의 대단원! "[최종] AI를 이용해 전문가급 악성코드 분석 보고서(PDF) 자동 생성하기"로 찾아오겠습니다. 여러분의 노력이 멋진 문서로 탄생하는 순간을 기대해 주세요! 👋
'일반IT > IT보안' 카테고리의 다른 글
| [이론] 악성코드 사냥꾼의 필수 무기! 🏹 YARA 룰 문법 완전 정복 (Meta, Strings, Condition) (0) | 2025.12.18 |
|---|---|
| [심화] "분석 끝난 줄 알았지?" 🕵️♂️ AI가 알려주는 '놓친 증거' 찾는 법 (의도 기반 아티팩트 추천) (0) | 2025.12.18 |
| [실습] "범행 시각, 14시 30분!" ⏱️ 악성 행위 타임라인(Timeline) 재구성과 시나리오 완성하기 (0) | 2025.12.18 |
| "범인의 진짜 목적이 뭐야?" 🕵️♂️ 조각난 단서들을 모아 AI에게 '공격 시나리오'와 '의도' 요약시키기 (0) | 2025.12.17 |
| 해커들의 주기율표? 🧪 MITRE ATT&CK 프레임워크 완전 정복 및 매핑 가이드 (0) | 2025.12.17 |