🦈 Wireshark 실무 스터디 가이드

데이터 엔지니어 · AI 엔지니어를 위한 핵심 요약

packet-analysis network forensics #tshark #pcap
📅 2026.03 작성

1. Wireshark란?

Wireshark는 네트워크 인터페이스를 통과하는 패킷을 실시간으로 캡처하고, 저장된 pcap 파일을 분석할 수 있는 오픈소스 패킷 분석 도구입니다. 전 세계 보안 전문가와 네트워크 엔지니어에게 사실상의 표준(de facto standard)으로 자리잡고 있습니다.

3대 핵심 능력

📡 패킷 캡처

이더넷, Wi-Fi, loopback 등 다양한 인터페이스에서 실시간 트래픽을 캡처. BPF 필터로 필요한 패킷만 수집 가능.

🔍 프로토콜 분석

TCP/IP, HTTP, DNS, TLS, QUIC 등 3,000개 이상의 프로토콜을 디코딩하여 계층별 상세 정보 제공.

🛠 네트워크 트러블슈팅

지연, 재전송, 패킷 손실, 비정상 플로우 탐지. 통계 도구(IO 그래프, 대화 목록)로 병목 식별.

2. 왜 써야 하는가?

Wireshark는 GUI 기반의 강력한 분석 환경을 제공합니다. 아래 표는 주요 대안과의 비교입니다.

도구 인터페이스 필터링 프로토콜 디코딩 스크립트 가능 추천 용도
Wireshark GUI + CLI (tshark) Display/BPF 필터 3,000+ 프로토콜 Lua, Python (pyshark) 심층 분석, 포렌식
tcpdump CLI BPF 필터 기본 (프로토콜 헤더) Shell 파이프 경량 캡처, 서버 환경
tshark CLI Display/BPF 필터 Wireshark와 동일 Shell, Python 자동화, 원격 분석
Scapy (Python) 라이브러리 Python 코드 수동 구현 필요 Python 프로토타이핑, 커스텀 도구

💡 핵심 포인트 — Wireshark는 GUI의 직관성과 tshark의 CLI 자동화를 모두 제공합니다. AI 엔지니어는 pyshark를 활용하여 대규모 pcap 데이터를 파이프라인에 통합할 수 있습니다.

3. 핵심 개념

Wireshark의 내부 동작 흐름을 이해하면 필터와 분석 옵션을 효과적으로 사용할 수 있습니다.

+------------------+ +-------------------+ +------------------+ | Network Interface|----->| Capture Engine |----->| Packet Filter | | (eth0, wlan0, ..) | | (libpcap/Npcap) | | (BPF / Display) | +------------------+ +-------------------+ +------------------+ | | v v +-------------------+ +------------------+ | Protocol Dissector|----->| Analysis & | | (3,000+ 프로토콜) | | Visualization | +-------------------+ +------------------+ | | v v +-------------------+ +------------------+ | Packet List | | Statistics | | Packet Details | | IO Graph, Flow | | Packet Bytes | | Conversations | +-------------------+ +------------------+

주요 용어

⚠️ 주의 — Display Filter는 캡처된 전체 패킷에 적용되므로, 대용량 pcap에서는 tshark -Y 또는 -2 -R 옵션을 사용하여 필터링 속도를 높일 수 있습니다.

4. 퀵스타트

설치

각 환경에 맞게 설치합니다.

# Ubuntu / Debian
sudo apt update && sudo apt install wireshark -y

# macOS (Homebrew)
brew install --cask wireshark

# Windows (Chocolatey)
choco install wireshark

# 또는 공식 사이트에서 설치 프로그램 다운로드

첫 번째 캡처 예제 (CLI)

터미널에서 tshark로 간단한 HTTP 트래픽을 캡처합니다.

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

# 10개의 패킷만 캡처 (인터페이스 eth0)
tshark -i eth0 -c 10

# HTTP GET 요청만 캡처하여 저장
tshark -i eth0 -f "tcp port 80" -w http_sample.pcap -c 50

# 저장된 파일에서 HTTP 요청만 출력
tshark -r http_sample.pcap -Y "http.request"

Python으로 pcap 분석 (pyshark)

pyshark 라이브러리를 사용하여 캡처 파일을 분석합니다.

# 설치: pip install pyshark

import pyshark

# pcap 파일 열기
cap = pyshark.FileCapture('http_sample.pcap', display_filter='http')

# 각 패킷에서 HTTP 호스트와 URI 추출
for pkt in cap:
    try:
        http_layer = pkt.http
        print(f"[{pkt.sniff_time}] {pkt.ip.src} -> {pkt.ip.dst} | "
              f"{http_layer.request_method} {http_layer.request_uri}")
    except AttributeError:
        pass

cap.close()

🔧 팁 — pyshark는 tshark 바이너리를 백엔드로 사용합니다. 시스템에 Wireshark/tshark가 설치되어 있어야 동작합니다.

5. 핵심 설정 레퍼런스

Wireshark 환경설정(Preferences)에서 자주 변경하는 항목들입니다.

설정 경로 설명 추천 값
Column: Custom Preferences → Columns 표시 열 추가/제거 Source, Destination, Protocol, Info, Delta time
Coloring Rules View → Coloring Rules 패킷 종류별 색상 지정 TCP RST 빨강, DNS 파랑 등
Capture: Promiscuous Capture → Options 무차별 모드 (다른 호스트 패킷) 체크 (분석 환경)
Name Resolution Preferences → Name Resolution IP → 호스트명, MAC → 제조사 MAC resolution 켜기, DNS 켜기
Protocol: TLS Preferences → Protocols → TLS (Pre-)Master Secret 로드 SSLKEYLOGFILE 환경변수 활용
Layout: Panes Preferences → Layout 패킷 리스트/상세/바이트 배치 3단 레이아웃 (기본)

⚠️ 보안 주의 — Name Resolution에서 DNS 쿼리를 활성화하면 캡처 중에 DNS 트래픽이 발생할 수 있습니다. 격리된 분석 환경에서는 끄는 것이 좋습니다.

6. 실무 팁 & 트러블슈팅

자주 겪는 문제와 해결책

문제 원인 해결책
패킷이 캡처되지 않음 권한 부족 (Linux) sudo usermod -aG wireshark $USER 후 재로그인
인터페이스 목록이 비어 있음 Npcap/WinPcap 미설치 (Windows) Npcap 설치 시 "WinPcap API 호환 모드" 체크
Display Filter가 너무 느림 대용량 pcap (수 GB) tshark -Y 대신 tshark -2 -R "filter" 사용, 또는 pyshark로 청크 처리
TLS 패킷이 암호화되어 보임 세션 키 없음 SSLKEYLOGFILE 환경변수 설정 후 브라우저 재시작
패킷 손실률 높음 버퍼 부족 / 디스크 I/O 캡처 옵션에서 Buffer size 증가, SSD 사용
프로토콜이 Unknown으로 표시 Dissector 누락 / 비표준 포트 Preferences → Protocols → 해당 프로토콜 포트 지정

실무 꿀팁

🚨 주의 — 실제 운영 네트워크에서 캡처할 때는 반드시 사전 승인을 받고, 개인정보 보호 법규를 준수하세요.

7. 참고 자료