📚 네트워크 · 패킷 분석 › 03. Wireshark 패킷 분석 — 102편
이전 글: 101. tcpdump와 Wireshark — 언제 무엇을 쓰는가 · 다음 글: 103. 패킷 캡처 원리 — NIC·Promiscuous 모드·미러링
Wireshark는 하나의 프로그램이 아니라 여러 도구의 묶음입니다. 도구별 역할과 tcpdump와의 비교는 101. tcpdump와 Wireshark — 언제 무엇을 쓰는가에서 다뤘으므로, 이 글은 "어떻게 설치하고, 어떤 권한으로 실행해야 분석 환경이 안전한가"에만 집중합니다.
| 구성 요소 | 역할 | 권한 필요 여부 |
|---|---|---|
wireshark (GUI) | 패킷 해석·표시 | 필요 없음 (일반 사용자로 실행) |
dumpcap | 실제 캡처 수행 | 캡처 권한 필요 (그룹·capability로 부여) |
tshark | CLI 해석·필드 추출 | 파일 분석만 하면 필요 없음 |
capinfos, editcap, mergecap | 파일 정보·편집·병합 | 필요 없음 |
| Npcap (Windows) / libpcap (Linux·macOS) | OS에서 패킷을 받아오는 캡처 라이브러리 | 드라이버·라이브러리 설치 시 관리자 권한 |
핵심은 캡처(dumpcap)와 해석(GUI·tshark)이 분리되어 있다는 점입니다. 복잡한 해석기 코드가 root나 관리자 권한으로 돌지 않도록 설계된 구조입니다.
GUI에서 캡처 시작 버튼을 누르면 내부적으로 다음 흐름이 진행됩니다.
[사용자: 일반 권한] wireshark GUI
│ 캡처 시작 (인터페이스·캡처 필터 전달)
↓
[캡처 권한] dumpcap ── libpcap / Npcap ── NIC
│ 받은 패킷을 pcapng 형식으로 기록
↓
임시 파일 또는 파이프
↓
[사용자: 일반 권한] wireshark 해석기(dissector) → 화면 표시
wireshark 그룹에 속한 사용자만 dumpcap을 실행할 수 있게 하고, dumpcap에 cap_net_raw, cap_net_admin capability를 부여합니다(배포판마다 방식이 다를 수 있음).OS별 설치 방법을 정리합니다. 버전별 세부 옵션 이름은 달라질 수 있습니다.
| OS | 설치 방법 | 확인할 점 |
|---|---|---|
| Windows | wireshark.org 공식 설치 파일 | Npcap 함께 설치 여부, USBPcap은 USB 캡처가 필요할 때만 |
| macOS | 공식 .dmg | 캡처 권한용 ChmodBPF 구성 요소 설치 여부 |
| Rocky Linux 9 | dnf install wireshark wireshark-cli | GUI는 wireshark, tshark·dumpcap은 wireshark-cli 패키지 |
| Ubuntu | apt install wireshark tshark | 설치 중 "일반 사용자 캡처 허용" 질문 |
Wireshark를 root(관리자)로 실행하지 않는 이유
| 구분 | root로 GUI 실행 | 그룹·capability 방식 |
|---|---|---|
| 해석기 취약점 영향 | 조작된 패킷이 해석기 버그를 건드리면 root 권한으로 코드 실행 위험 | 일반 사용자 권한 범위로 제한 |
| 설정 파일 위치 | root 홈에 저장되어 사용자 설정과 섞임 | 사용자별 설정 디렉터리 사용 |
| 권장 여부 | 권장하지 않음 | 공식 문서 권장 방식 |
실습 예시 — 본인 소유 VM에서 설치 후 권한과 실행을 확인합니다. 명령과 출력은 예시(값은 환경마다 다름)입니다.
# Rocky Linux 9
sudo dnf install -y wireshark wireshark-cli
sudo usermod -aG wireshark $USER # 재로그인 후 적용
# Ubuntu
sudo apt install -y wireshark tshark
sudo dpkg-reconfigure wireshark-common # "Yes" 선택 시 일반 사용자 캡처 허용
sudo usermod -aG wireshark $USER
# 공통 확인
id # wireshark 그룹 포함 여부
getcap /usr/bin/dumpcap # capability 부여 여부 (없으면 다른 방식일 수 있음)
tshark -v | head -1 # 버전
dumpcap -D # 캡처 가능한 인터페이스 목록
tshark -G folders # 개인 설정·전역 설정 디렉터리 위치
실행 방법은 목적에 따라 다릅니다.
wireshark -r /tmp/sample.pcapng # 파일 열기 (권한 불필요)
wireshark -r /tmp/sample.pcapng -Y 'dns' # 열면서 디스플레이 필터 적용
wireshark -i ens33 -k -f 'not port 22' # 인터페이스 지정, 즉시 캡처 시작, 캡처 필터
wireshark -C SOC-분석 # 저장해 둔 설정 프로파일로 실행
설치가 끝나면 짧은 캡처로 도구 연동을 확인해 봅니다.
dumpcap -i ens33 -c 20 -w /tmp/check.pcapng
tshark -r /tmp/check.pcapng -T fields \
-e frame.number -e frame.time_epoch -e frame.len -e frame.protocols
frame.protocols에 eth:ethertype:ip:tcp처럼 계층 목록이 나오면 캡처와 해석이 모두 정상입니다.
📷 [실습 화면 삽입 위치] 일반 사용자 계정으로 실행한 Wireshark 시작 화면에서 인터페이스 목록과 트래픽 스파크라인이 보이는 모습 (인터페이스가 안 보이면 권한 설정 확인)
📷 [실습 화면 삽입 위치] Help → About Wireshark → Folders 탭에서 Personal configuration 경로를 확인하는 화면
wireshark 그룹 구성원은 최소로 관리합니다.| 흔적 위치 | 확인할 수 있는 것 |
|---|---|
| EDR·프로세스 로그 | dumpcap.exe, tshark 실행 이력, 실행 사용자 |
| 소프트웨어 자산 목록 | 허가되지 않은 단말에 Wireshark·Npcap 설치 여부 |
Linux 감사 로그·/var/log/secure(Rocky)·/var/log/auth.log(Ubuntu) | sudo로 캡처 도구를 실행한 기록, 그룹 변경 |
| 인터페이스 상태 | Promiscuous 모드 진입 로그 (커널 메시지 entered promiscuous mode) |
관제자가 확인할 질문
dumpcap·tcpdump가 돌고 있다면, 누가 어떤 목적으로 실행했는가?오탐 주의: 네트워크 담당자·보안 담당자의 정상 트러블슈팅, 모니터링 솔루션 내장 캡처 기능도 같은 흔적을 남깁니다. 변경 이력·작업 요청과 대조해 판단합니다. 인터페이스 선택과 Promiscuous 모드의 의미는 103. 패킷 캡처 원리 — NIC·Promiscuous 모드·미러링에서 이어집니다.
wireshark 그룹과 dumpcap capability, Windows는 Npcap 설치 옵션으로 캡처 권한을 제어합니다.dumpcap -D, tshark -v, tshark -G folders, 짧은 캡처 후 frame.protocols 추출로 설치 상태를 확인합니다.