소개
이 실습에서는 Wireshark 의 강력한 명령줄 대응 도구인 tshark를 살펴봅니다. Wireshark 가 네트워크 분석을 위한 그래픽 인터페이스를 제공한다면, tshark는 터미널에서 직접 동일한 패킷 캡처 및 분석 작업을 수행할 수 있게 해줍니다.
이것이 중요한 이유는 패킷 분석이 일반적으로 두 가지 수준에서 이루어지기 때문입니다. tcpdump와 같은 도구는 원시 패킷 요약을 보여주고 패킷이 저장되기 전에 저수준 캡처 필터를 적용하는 데 탁월합니다. tshark는 한 걸음 더 나아가 캡처 후 프로토콜 구조를 디코딩합니다. 즉, HTTP 메서드, DNS 쿼리 이름 및 기타 여러 프로토콜별 세부 정보를 이해합니다. 실무에서 분석가들은 종종 두 가지 방식을 모두 사용합니다. 효율적으로 증거를 수집하기 위한 저수준 캡처와, 나중에 더 구체적인 질문을 던지기 위한 프로토콜 인식 분석을 병행하는 것입니다.
실시간 네트워크 트래픽을 캡처하여 파일로 저장하고, HTTP 및 DNS 와 같이 프로토콜 구조를 내재적으로 이해하는 디스플레이 필터를 적용하는 방법을 배웁니다. 이러한 디스플레이 필터는 패킷 내용을 분석할 수 있기 때문에 표준 BPF(Berkeley Packet Filters) 보다 훨씬 강력합니다. 마지막으로, 네트워크 트래픽에 대한 상위 수준의 개요를 파악하기 위해 프로토콜 계층 통계를 생성하는 방법을 배웁니다.
기본 캡처 수행
이 단계에서는 tshark를 사용하여 실시간 네트워크 트래픽을 캡처하고 나중에 분석할 수 있도록 파일로 저장하는 방법을 배웁니다.
캡처를 시작하기 전에 시스템에서 네트워크 트래픽이 발생하고 있는지 확인해야 합니다. 환경 내에서 이미 백그라운드 스크립트가 실행 중이며, 지속적으로 DNS 및 HTTP 트래픽을 생성하고 있습니다.
이 단계에서는 캡처와 분석을 분리하는 것이 유용합니다. 캡처는 패킷이 인터페이스를 통과할 때 그대로 보존하는 행위입니다. 분석은 그 이후에 패킷을 디코딩하고 해석하는 과정입니다. 보안 조사 시에는 무엇이 중요한지 아직 알 수 없기 때문에 광범위하게 캡처하는 것으로 시작하는 경우가 많습니다. 패킷이 PCAP 파일로 보존되면, 원본 트래픽을 다시 발생시킬 필요 없이 여러 번 다시 읽으며 다양한 질문을 던질 수 있습니다.
이제 네트워크 트래픽을 캡처해 보겠습니다. tshark를 사용하여 사용 가능한 모든 네트워크 인터페이스 (any) 를 수신하고 캡처된 패킷을 traffic.pcap이라는 파일로 저장합니다. 또한 tshark에 5 초 후에 자동으로 캡처를 중지하도록 설정하겠습니다.
다음 명령어를 실행하여 캡처를 시작하고 파일을 올바르게 저장하세요:
sudo tshark -i any -w /tmp/traffic.pcap -a duration:5
sudo mv /tmp/traffic.pcap ~/project/traffic.pcap
sudo chown labex:labex ~/project/traffic.pcap
tshark 명령어에 사용된 옵션을 살펴보겠습니다:
sudo: 네트워크 트래픽을 캡처하는 데 필요한 관리자 권한으로 명령어를 실행합니다.-i any:tshark가 사용 가능한 모든 네트워크 인터페이스에서 트래픽을 캡처하도록 지정합니다.-w /tmp/traffic.pcap: 캡처된 원시 패킷 데이터를/tmp디렉토리의 파일에 임시로 쓰도록tshark에 지시합니다. 이는tshark를 루트 권한으로 실행할 때 발생할 수 있는 권한 문제를 방지하기 위한 모범 사례입니다.-a duration:5: 5 초 후에 캡처를 중지하도록 자동 중지 조건 (-a) 을 설정합니다.
패킷이 캡처되고 있음을 나타내는 다음과 유사한 출력이 표시됩니다:
Capturing on 'eth0'
24
5 초가 지나면 tshark가 자동으로 종료되고 traffic.pcap 파일이 분석 준비를 마칩니다.
디스플레이 필터 적용
이 단계에서는 방금 생성한 패킷 캡처 파일을 읽고 디스플레이 필터를 적용하여 특정 유형의 트래픽을 격리하는 방법을 배웁니다.
tshark(및 Wireshark) 의 디스플레이 필터는 네트워크 프로토콜의 구조를 이해하기 때문에 매우 강력합니다. 단순히 IP 주소나 포트 번호를 보는 대신 http나 dns와 같은 프로토콜 이름을 기반으로 트래픽을 필터링할 수 있습니다.
이 차이점은 강조할 가치가 있습니다. 고전적인 캡처 필터는 "이 패킷이 53 번 포트를 사용하는가?"와 같은 저수준 질문을 던집니다. 반면 디스플레이 필터는 "이 패킷이 DNS 응답인가?" 또는 "이 HTTP 요청에 특정 필드가 있는가?"와 같은 더 높은 수준의 질문을 던질 수 있습니다. 즉, 디스플레이 필터는 프로토콜 분석 후에 작동하므로 더 표현력이 뛰어나고 읽기 쉽습니다.
실시간 트래픽을 캡처하는 대신 캡처 파일을 읽으려면 -r 옵션을 사용합니다. 디스플레이 필터를 적용하려면 -Y 옵션 뒤에 필터 문자열을 입력합니다.
먼저, 캡처 파일을 필터링하여 HTTP 트래픽만 표시해 보겠습니다. 다음 명령어를 실행하세요:
tshark -r ~/project/traffic.pcap -Y "http"
HTTP GET 요청과 해당 HTTP OK 응답만 표시되는 다음과 유사한 출력이 나타날 것입니다:
4 0.012345678 10.0.2.15 → 93.184.216.34 HTTP 143 GET / HTTP/1.1
8 0.045678901 93.184.216.34 → 10.0.2.15 HTTP 403 HTTP/1.1 200 OK (text/html)
다음으로, 캡처 파일을 필터링하여 DNS 트래픽만 표시해 보겠습니다. DNS(Domain Name System) 는 example.com과 같은 도메인 이름을 IP 주소로 변환하는 데 사용되는 프로토콜입니다.
다음 명령어를 실행하여 DNS 디스플레이 필터를 적용하세요:
tshark -r ~/project/traffic.pcap -Y "dns"
출력에는 캡처 기간 동안 발생한 DNS 쿼리 및 응답이 표시됩니다:
1 0.000000000 10.0.2.15 → 10.0.2.3 DNS 73 Standard query 0x1a2b A example.com
2 0.001234567 10.0.2.3 → 10.0.2.15 DNS 89 Standard query response 0x1a2b A example.com A 93.184.216.34
-Y 옵션을 사용하면 수천 개의 패킷을 쉽게 걸러내어 원하는 정보를 정확하게 찾을 수 있습니다.
프로토콜 계층 통계 보기
이 단계에서는 캡처 파일에 존재하는 프로토콜의 통계적 개요를 생성하는 방법을 배웁니다.
대규모 캡처 파일을 분석할 때는 개별 패킷을 자세히 살펴보기 전에 어떤 종류의 트래픽이 포함되어 있는지 상위 수준의 요약을 확인하는 것이 도움이 됩니다. tshark는 각 프로토콜에 대한 패킷 수와 비율을 계산하는 "프로토콜 계층 통계 (Protocol Hierarchy Statistics)" 기능을 제공합니다.
이러한 하향식 관점은 일반적인 조사 기법입니다. 개별 패킷에 시간을 쏟기 전에 분석가들은 종종 광범위한 질문을 먼저 던집니다. 이 캡처에서 어떤 프로토콜이 지배적인가? 트래픽이 주로 웹인가, 이름 확인인가, 아니면 특이한 것인가? 비율이 시스템의 예상 역할과 일치하는가? 이러한 상위 수준의 맥락은 더 깊은 조사가 필요한지 결정하는 데 도움을 줍니다.
통계를 생성하려면 -z 옵션 뒤에 계산하려는 특정 통계 항목을 입력합니다. 프로토콜 계층 통계의 경우 키워드는 io,phs입니다.
또한 개별 패킷 세부 정보가 아닌 통계 보고서만 확인하기 위해 -q(quiet) 옵션을 사용합니다.
다음 명령어를 실행하여 캡처 파일의 프로토콜 계층 구조를 확인하세요:
tshark -r ~/project/traffic.pcap -q -z io,phs
트래픽을 요약하는 트리 형태의 출력이 표시됩니다:
===================================================================
Protocol Hierarchy Statistics
Filter:
eth frames:24 bytes:2340
ipv4 frames:24 bytes:2340
udp frames:2 bytes:162
dns frames:2 bytes:162
tcp frames:12 bytes:1338
http frames:2 bytes:546
icmp frames:10 bytes:840
===================================================================
이 출력은 각 프로토콜에 속하는 프레임 (패킷) 수와 바이트 수를 정확하게 알려줍니다. 예를 들어, 이더넷 (eth) 계층에 IPv4 트래픽이 포함되어 있고, 이것이 다시 UDP(DNS 포함), TCP(HTTP 포함), ICMP(생성한 핑 트래픽) 로 나뉘는 것을 볼 수 있습니다.
이러한 통계적 관점은 네트워크 문제 해결이나 보안 분석 작업의 훌륭한 출발점입니다.
요약
축하합니다! Tshark 입문 실습을 성공적으로 완료했습니다.
이번 실습에서 배운 내용은 다음과 같습니다:
tshark를 사용하여 실시간 네트워크 트래픽을 캡처하고.pcap파일로 저장하는 방법.- 캡처 파일을 읽고 프로토콜 인식 디스플레이 필터를 적용하여 HTTP 및 DNS 트래픽을 격리하는 방법.
- 프로토콜 계층 통계를 생성 및 분석하여 네트워크 활동에 대한 상위 수준의 개요를 파악하는 방법.
이러한 기본 기술은 Linux 환경에서 명령줄 네트워크 분석 및 문제 해결의 기초가 됩니다.

