/엔지니어/보안 설정/Wireshark 패킷 분석 실전 — 디스플레이 필
보안 설정중급linuxwindowsmacoswiresharkpacket-analysistshark

Wireshark 패킷 분석 실전 — 디스플레이 필터와 트래픽 디버깅

Wireshark GUI를 중심으로 캡처/디스플레이 필터 차이, 핵심 디스플레이 필터, Follow TCP Stream, Expert Information, IO 그래프, 그리고 tshark CLI 활용까지 실전 디버깅 흐름을 정리합니다.

Wireshark 란?

Wireshark는 네트워크 패킷을 캡처해 계층별로 디코딩하고 시각적으로 분석하는 도구입니다. tcpdump가 CLI로 패킷을 빠르게 캡처·저장하는 데 강하다면, Wireshark는 캡처한 트래픽을 GUI에서 프로토콜 트리로 펼쳐 보고, 강력한 디스플레이 필터로 좁히고, 흐름을 재구성하는 데 특화돼 있습니다. 실무에서는 보통 서버에서 tcpdump -w.pcap을 떠서 Wireshark로 열어 분석하는 조합을 많이 씁니다.

이 가이드는 tcpdump와의 중복을 피해 Wireshark 고유 기능(디스플레이 필터, Follow Stream, Expert Info, 통계)과 그 CLI 형제인 tshark에 집중합니다.

캡처 필터 vs 디스플레이 필터

Wireshark 입문자가 가장 많이 혼동하는 지점입니다. 두 필터는 문법도, 동작 시점도 완전히 다릅니다.

구분캡처 필터 (Capture Filter)디스플레이 필터 (Display Filter)
시점캡처 (커널에서 걸러짐)캡처 표시할 때
문법BPF (tcpdump와 동일)Wireshark 고유 문법
예시tcp port 443tcp.port == 443
데이터걸러진 건 저장 안 됨원본 보존, 보기만 필터

캡처 필터로 너무 좁히면 나중에 필요한 패킷이 통째로 사라집니다. 디스크가 허용한다면 캡처는 넓게 뜨고, 분석은 디스플레이 필터로 좁히는 것이 안전합니다.

핵심 디스플레이 필터

디스플레이 필터는 프로토콜.필드 비교연산 값 형태입니다.

TEXT
# 프로토콜/포트
tcp.port == 443
http.request
dns
tls.handshake.type == 1            # Client Hello

# 주소
ip.addr == 192.168.0.10
ip.src == 10.0.0.5 && ip.dst == 10.0.0.9

# 조합 (논리 연산: && || ! )
tcp.port == 443 && http.request
http.response.code >= 400          # 4xx/5xx만

TCP 디버깅에 특히 유용한 필터:

TEXT
tcp.flags.syn == 1 && tcp.flags.ack == 0   # SYN (연결 시작)만
tcp.flags.reset == 1                        # RST (강제 종료)
tcp.analysis.retransmission                 # 재전송 (손실/지연 징후)
tcp.analysis.duplicate_ack                  # 중복 ACK
tcp.analysis.zero_window                    # 수신 윈도우 0 (수신측 포화)
tcp.window_size < 1000                      # 작은 윈도우

tcp.analysis.*는 Wireshark가 패킷 흐름을 보고 추론해 붙여주는 가상 필드입니다. tcpdump에는 없는 Wireshark만의 강점으로, 재전송/지연/혼잡을 한눈에 잡아냅니다.

HTTP/애플리케이션 레벨:

TEXT
http.host contains "example.com"
http.request.method == "POST"
frame contains "password"                   # 페이로드 문자열 검색

Follow TCP/HTTP Stream

특정 연결의 전체 대화를 재구성해 보는 기능입니다. 패킷 하나를 우클릭 → Follow → TCP Stream(또는 HTTP/TLS Stream)을 선택하면, 그 세션의 요청/응답이 시간순으로 합쳐져 표시됩니다.

  • 클라이언트 송신은 빨강, 서버 응답은 파랑으로 구분됩니다.
  • HTTP면 헤더·바디가 그대로 보여 API 디버깅에 즉효입니다.
  • Follow를 적용하면 자동으로 tcp.stream eq N 디스플레이 필터가 걸립니다.
TEXT
tcp.stream eq 3                # 3번 스트림(연결)만 표시

스트림 번호로 여러 연결을 빠르게 오갈 수 있습니다.

Expert Information

Analyze → Expert Information 메뉴는 Wireshark가 자동 감지한 이상 징후를 심각도별로 모아 보여줍니다.

수준의미
Error빨강체크섬 오류, 잘못된 패킷
Warning노랑재전송, Zero Window, 연결 리셋
Note파랑중복 ACK, 윈도우 업데이트
Chat회색정상 흐름(SYN, FIN 등)

지연·끊김 장애를 분석할 때 Expert Info의 Warning부터 보면 원인 후보를 빠르게 좁힐 수 있습니다.

통계 메뉴 활용

Statistics 메뉴는 전체 캡처를 요약합니다.

  • Protocol Hierarchy: 어떤 프로토콜이 대역폭을 얼마나 쓰는지
  • Conversations: 호스트 쌍별 트래픽량, 바이트/패킷 정렬
  • IO Graph: 시간축 처리량 그래프. 특정 필터(예: tcp.analysis.retransmission)를 그래프로 그려 손실 시점 파악
  • Endpoints: 호스트별 송수신 통계, 지도 표시

IO Graph에서 재전송 곡선이 특정 시각에 치솟으면 그 시점에 네트워크 문제가 있었다는 강한 단서입니다.

tshark — Wireshark의 CLI

GUI를 못 쓰는 서버에서는 동일 엔진의 CLI인 tshark를 씁니다. 디스플레이 필터 문법을 그대로 사용합니다.

Bash
# 인터페이스 목록
tshark -D

# 실시간 캡처 + 디스플레이 필터 (-Y)
sudo tshark -i eth0 -Y "tcp.port == 443 && tcp.flags.syn == 1"

# 캡처 필터(-f, BPF)로 줄이고 파일 저장
sudo tshark -i eth0 -f "tcp port 443" -w /tmp/https.pcap

# 저장된 pcap 분석 + 필드만 추출
tshark -r /tmp/https.pcap -Y "http.request" \
       -T fields -e ip.src -e http.host -e http.request.uri

# 재전송 개수 집계
tshark -r /tmp/https.pcap -Y "tcp.analysis.retransmission" | wc -l

여기서도 -f는 캡처(BPF) 필터, -Y는 디스플레이 필터로 GUI와 정확히 대응됩니다.

TLS 트래픽 복호화

HTTPS는 암호화돼 페이로드가 안 보이지만, 클라이언트가 세션 키를 로그로 남기면 복호화할 수 있습니다.

Bash
# 브라우저/curl이 키를 기록하도록 환경변수 설정
export SSLKEYLOGFILE=/tmp/sslkeys.log

Wireshark의 Preferences → Protocols → TLS → (Pre)-Master-Secret log filename에 이 파일을 지정하면 복호화된 HTTP를 볼 수 있습니다. (서버 비공개 키만으로는 최신 TLS 1.3의 ECDHE를 복호화할 수 없습니다.)

실전 디버깅 흐름

  1. 서버에서 tcpdump -i eth0 -w issue.pcap host <대상>으로 캡처
  2. Wireshark로 열어 tcp.analysis.flags로 이상 패킷 스캔
  3. 문제 패킷 우클릭 → Follow TCP Stream으로 대화 확인
  4. Expert Information으로 재전송/리셋/Zero Window 확인
  5. Statistics → IO Graph로 시점·규모 정량화

정리

항목핵심
캡처 vs 디스플레이BPF(tcp port 443) vs Wireshark(tcp.port == 443)
분석용 필터tcp.analysis.retransmission, zero_window, duplicate_ack
Follow Stream세션 전체 대화 재구성, tcp.stream eq N
Expert Info이상 징후 심각도별 요약
StatisticsProtocol Hierarchy, Conversations, IO Graph
tsharkCLI 분석, -f 캡처 / -Y 디스플레이

Wireshark는 "넓게 캡처하고 디스플레이 필터로 좁혀 흐름을 재구성한다"가 핵심 워크플로입니다. tcpdump가 수집 도구라면 Wireshark는 해석 도구입니다.

#wireshark#packet-analysis#tshark#network#debugging
편집 안내 · Editorial Note

이 가이드는 AI 도구를 활용해 초안을 구성하고 사람이 명령어·문맥을 검토해 발행했습니다. 운영체제와 도구 버전에 따라 결과가 달라질 수 있으므로 적용 전 공식 문서를 함께 확인하세요. 오류를 발견하시면 이메일로 제보해 주세요.

관련 공식 문서OWASP 공식 문서

질문 & 답변 (Q&A)

이 가이드에 대해 궁금한 점을 질문해보세요. 확인 후 답변드립니다.