📚 네트워크 · 패킷 분석 › 03. Wireshark 패킷 분석 — 149편
이전 글: 148. pcap 증거 보존과 해시 검증 · 다음 글: 150. Wireshark 기반 SOC Incident 분석

1. 개념

IOC(Indicator of Compromise, 침해 지표) 는 "이 값이 보이면 같은 위협이 관련되어 있을 가능성이 있다"고 판단할 수 있는 관찰 값입니다. 패킷에는 통신 상대의 주소부터 주고받은 파일까지 담겨 있어, IOC를 가장 직접적으로 얻을 수 있는 자료입니다.

이 글은 캡처 파일에서 IOC 후보를 뽑아 정리하는 방법을 다룹니다. 스캔 이벤트에서의 IOC 정리는 05 영역 246. IOC 추출, 보안장비 Alert에서의 추출은 06 영역 298. Alert에서 IOC 추출에서 다룹니다.

IOC 유형패킷에서 나오는 위치바꾸기 쉬운 정도
파일 해시HTTP·SMB 등으로 전송된 파일(Export Objects)매우 쉬움 (1바이트만 바꿔도 달라짐)
IP 주소IP 헤더쉬움 (서버·프록시 교체)
도메인DNS 질의, TLS SNI, HTTP Host보통 (등록 비용·시간)
URL 경로·User-AgentHTTP 요청보통
TLS 인증서·클라이언트 지문인증서(TLS 1.2 이하), ClientHello상대적으로 어려움 (도구·구성 변경 필요)

아래쪽 IOC일수록 공격자가 바꾸기 번거로워 오래 쓸 수 있는 지표가 됩니다.


2. 동작 원리

IOC 추출은 "뽑기"보다 "거르고 맥락을 붙이기" 가 더 중요합니다.

원본 pcap
   ↓ 해시 기록, 사본에서 작업 (148편)
① 후보 수집    : 필드 단위로 IP·도메인·URL·UA·파일·인증서 추출
   ↓
② 정상 제거    : 내부 대역, 자사 도메인, 업무용 서비스, OS 업데이트 등
   ↓
③ 맥락 확인    : 어느 호스트가, 언제, 어떤 흐름에서 이 값을 썼는가
   ↓
④ 형식화       : 유형·값·관찰 시각·출처·신뢰도, 공유용 defang 표기
   ↓
⑤ 활용         : SIEM 과거 검색, 방화벽·프록시 차단, 다른 호스트 헌팅

②에서 걸러 내지 않으면 CDN·클라우드 IP나 흔한 업데이트 도메인이 IOC 목록에 섞여, 차단했을 때 업무 장애를 일으킵니다.


3. 주요 특징

IOC 유형별로 Wireshark에서 값을 꺼내는 필드와 메뉴입니다.

IOCDisplay Filter / 필드GUI 메뉴
통신 IPip.src, ip.dstStatistics → Endpoints (IPv4 탭)
질의 도메인dns.flags.response == 0 → dns.qry.nameStatistics → DNS
응답 IPdns.a, dns.aaaaPacket Details의 Answers
HTTPS 접속 도메인tls.handshake.type == 1 → tls.handshake.extensions_server_name—
HTTP 요청http.request → http.host, http.request.uri, http.user_agentStatistics → HTTP → Requests
전송 파일—File → Export Objects → HTTP / SMB / TFTP 등
서버 인증서 이름tls.handshake.type == 11 → x509ce.dNSNamePacket Details의 Certificate

TLS 1.3에서는 인증서가 암호화 구간에서 전달되어 캡처만으로는 보이지 않습니다. 이때는 SNI와 ClientHello 기반 지문(버전에 따라 Wireshark가 JA3·JA4 필드를 제공)이 남는 정보입니다. 지문의 의미는 90. 정상 포트로 위장한 통신 — 443을 쓰는 비정상 트래픽을 참고합니다.

IOC를 기록할 때 함께 남기는 항목입니다.

항목예이유
유형domain, ipv4, url, sha256차단·검색 장비별로 입력 형식이 다름
관찰 시각(UTC)첫 관찰·마지막 관찰다른 로그와 시간 대조
관련 호스트내부 192.168.10.31영향 범위 판단
근거pcap 파일명·프레임 번호재검증 가능성
신뢰도높음/중간/낮음차단 여부 결정 기준

4. 예시

분석 방법 예시 — 사본 캡처 파일 case.pcapng에서 유형별 후보를 뽑습니다. 명령과 출력은 예시(값은 환경마다 다름)이며, tshark는 Rocky wireshark-cli, Ubuntu tshark 패키지입니다.

# 통신 상대 IP 목록 (패킷 수·바이트 포함 요약)
tshark -r case.pcapng -q -z endpoints,ip

# DNS 질의 도메인 (빈도순)
tshark -r case.pcapng -Y 'dns.flags.response == 0' -T fields -e dns.qry.name \
  | sort | uniq -c | sort -rn

# HTTPS 접속 도메인(SNI)과 목적지 IP
tshark -r case.pcapng -Y 'tls.handshake.type == 1' \
  -T fields -e ip.dst -e tls.handshake.extensions_server_name | sort -u

# 평문 HTTP 요청의 Host·URI·User-Agent
tshark -r case.pcapng -Y 'http.request' \
  -T fields -e ip.src -e http.host -e http.request.uri -e http.user_agent

# HTTP로 전송된 파일을 폴더로 내보낸 뒤 해시 계산
mkdir -p objects && tshark -r case.pcapng -q --export-objects http,objects
sha256sum objects/*

정리 결과 형식 예시(공유용 defang 표기 적용):

type    value                               first_seen(UTC)       host            frame  confidence
domain  update-check[.]example[.]net        2026-09-30 01:12:04   192.168.10.31   412    중간
ipv4    203.0.113[.]77                      2026-09-30 01:12:05   192.168.10.31   415    낮음(공유 호스팅 여부 미확인)
url     hxxp://203.0.113[.]77/dl/a.bin      2026-09-30 01:12:05   192.168.10.31   418    중간
sha256  (objects/a.bin의 해시값)            2026-09-30 01:12:06   192.168.10.31   418-460 높음

defang(무력화) 표기는 보고서·메신저에서 IOC가 실수로 클릭되거나 자동 링크되지 않도록 .을 [.], http를 hxxp로 바꾸는 관례입니다. 차단 장비나 SIEM에 넣을 때는 원래 값으로 되돌립니다.

📷 [실습 화면 삽입 위치] File → Export Objects → HTTP 창에서 패킷 번호·호스트·Content Type·파일 이름 목록이 보이는 화면

📷 [실습 화면 삽입 위치] Statistics → Endpoints의 IPv4 탭을 Bytes 기준으로 정렬해 통신량이 많은 외부 IP가 위에 보이는 화면


5. 보안 관점

  • 내보낸 파일은 실행하지 않습니다. Export Objects로 꺼낸 파일은 악성일 수 있으므로 격리된 분석 환경에서 해시만 계산하고, 필요한 분석은 절차에 따라 전문 환경에서 합니다.
  • IP IOC는 수명이 짧고 오탐 위험이 큽니다. 클라우드·CDN·공유 호스팅 IP는 같은 주소를 많은 정상 사이트가 함께 쓰므로, IP 차단 전에 그 IP에 연결된 도메인을 확인합니다.
  • 파일 해시는 정확하지만 쉽게 바뀝니다. 해시 일치는 강한 증거지만, 불일치가 "무관함"을 뜻하지는 않습니다.
  • 캡처에는 계정 정보나 개인정보가 포함될 수 있습니다. IOC 목록에는 지표 값만 담고, 원본 캡처는 접근 권한이 통제된 곳에 보관합니다.

6. SOC 관점

활용 위치IOC 사용 방법
SIEM과거 기간 전체에서 같은 도메인·IP·UA 검색 → 다른 감염 호스트 확인
방화벽·프록시·DNS검증된 도메인·IP 차단(신뢰도 높은 것부터)
EDR파일 해시로 다른 단말의 동일 파일 존재 여부 확인
IDS도메인·URL 패턴으로 탐지 룰 작성 검토 (282. Signature Rule에서 다룸)
위협 인텔리전스 공유유형·시각·신뢰도를 갖춘 형식(예: STIX 기반 플랫폼)으로 공유

관제자가 확인할 질문

  • 이 값은 우리 조직·업무 서비스에서 정상적으로 쓰는 값이 아닌가?
  • 같은 IOC가 다른 내부 호스트나 과거 시점에도 나타났는가?
  • 차단했을 때 업무 영향은 없는가(공유 IP, 대형 서비스 도메인)?

오탐 주의: 악성 흐름 앞뒤로 OS 업데이트, 인증서 폐기 확인(OCSP·CRL), 시간 동기화 같은 정상 통신이 섞여 있습니다. 같은 시간대에 나타났다는 이유만으로 IOC에 넣지 않고, 문제의 흐름과 직접 연결된 값만 남깁니다.


7. 핵심 정리

  • 패킷에서는 IP, 도메인(DNS·SNI·Host), URL, User-Agent, 파일 해시, 인증서·TLS 지문을 IOC 후보로 얻을 수 있습니다.
  • 추출보다 정상 값 제거와 맥락(호스트·시각·프레임 번호) 기록이 더 중요합니다.
  • tshark -T fields와 --export-objects, Statistics → Endpoints로 유형별 후보를 빠르게 모읍니다.
  • 공유할 때는 defang 표기를 쓰고, 차단·검색에 넣을 때는 원래 값으로 되돌립니다.
  • IP·해시는 바뀌기 쉽고, 도메인·인증서·지문은 상대적으로 오래 쓸 수 있는 지표입니다.
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글