CHAPTER 08 · NETWORK
패킷을 직접
열어보자
tcpdump와 Wireshark로 통신을 캡처하고 DNS·TCP·HTTP 흐름을 직접 확인합니다.
01
패킷은 거짓말을 하지 않는다
로그가 프로그램의 기록이라면 패킷 캡처는 실제로 네트워크를 오간 데이터를 기록합니다.
tcpdump는 터미널에서 빠르게 캡처하고 필터링하기 좋고, Wireshark는 각 헤더와 통신 흐름을 시각적으로 분석하기 좋습니다.
캡처에는 계정 정보와 세션 등 민감한 데이터가 포함될 수 있으므로 허가받은 환경에서만 수집하고 안전하게 보관해야 합니다.
$ sudo tcpdump -D
$ sudo tcpdump -ni any
$ sudo tcpdump -ni eth0 -w capture.pcap
02
필요한 대화만 골라 듣기
트래픽이 많을 때는 캡처 필터와 화면 필터를 이용해 분석 범위를 줄입니다.
$ sudo tcpdump -ni any host 192.168.0.30
$ sudo tcpdump -ni any port 53
$ sudo tcpdump -nn -r capture.pcap
03
DNS부터 TCP 연결까지 따라가기
브라우저에서 사이트를 열면 먼저 DNS로 IP를 찾고, TCP 연결을 맺은 뒤 애플리케이션 데이터를 주고받습니다.
Wireshark 화면 필터 dns로 질의 이름과 응답 IP를 확인합니다. 이어서 tcp.flags.syn == 1로 3-way handshake를 찾고, tcp.stream eq 번호로 하나의 연결만 추적합니다.
HTTP는 평문이면 요청 내용을 볼 수 있지만 HTTPS는 TLS로 암호화되어 내용 대신 주소, 포트, 인증서, 크기와 시간 같은 메타데이터를 중심으로 분석합니다.
$ dns
$ tcp.flags.syn == 1
$ tcp.stream eq 0
$ http
$ tls
$ ip.addr == 192.168.0.30
04
좋은 분석은 시간순으로 설명한다
패킷 하나만 보고 결론을 내리기보다 요청과 응답, 앞뒤 흐름을 연결해야 합니다.
누가 언제 누구에게 어떤 프로토콜과 포트로 요청했고, 상대가 어떻게 응답했는지를 시간순으로 정리합니다.
재전송, 중복 ACK, RST, ICMP 오류, 비정상적으로 반복되는 연결 시도는 장애나 공격의 단서가 될 수 있습니다.
CHAPTER REVIEW
이번 장에서 기억할 한 문장
캡처는 사실을 기록하고, 필터는 필요한 대화를 찾으며, 분석은 시간과 주소와 흐름을 연결하는 일이다.