network

[네트워크 보안] 와이어샤크를 이용한 네트워크 패킷 분석 실습

숨usm 2025. 9. 8. 20:11

와이어샤크를 이용한 네트워크 패킷 분석 실습 과정을 정리했습니다. MAC 주소 랜덤화부터 실제 패킷 캡처 및 분석까지, 보안을 고려한 안전한 실습 방법을 다룹니다.


개요

이 글은 와이어샤크를 이용한 네트워크 패킷 분석 실습 과정을 정리했습니다. MAC 주소 랜덤화부터 실제 패킷 캡처 및 분석까지, 보안을 고려한 안전한 실습 방법을 다룹니다.

환경 설정

  • 운영체제: macOS (MacBook Air)
  • 도구: Wireshark 4.4.8
  • 네트워크: Wi-Fi (en0 인터페이스)
  • 보안: MAC 주소 랜덤화 적용

1. 사전 준비: MAC 주소 랜덤화

macOS에서 특정 MAC 주소로 변경

실습 전 개인정보 보호를 위해 MAC 주소를 더미 값으로 변경합니다.

스크립트 생성

cat > ~/set_specific_mac.sh << 'EOF'
#!/bin/bash
if [ -z "$1" ]; then
    echo "사용법: ./set_specific_mac.sh aa:bb:cc:dd:ee:ff"
    exit 1
fi

sudo ifconfig en0 down
sudo ifconfig en0 ether $1
sudo ifconfig en0 up
echo "MAC changed to: $1"
# MAC 주소 마스킹해서 출력
ifconfig en0 | grep ether | sed 's/[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]/[HIDDEN]/g'
EOF

chmod +x ~/set_specific_mac.sh

alias 추가 및 실행

echo "alias setmac='~/set_specific_mac.sh'" >> ~/.zshrc
source ~/.zshrc

# 더미 MAC 주소로 변경
setmac aa:bb:cc:dd:ee:ff

실행 결과

ifconfig: ioctl (SIOCAIFADDR): Network is down
MAC changed to: aa:bb:cc:dd:ee:ff
	ether [HIDDEN]

2. 와이어샤크 인터페이스 분석

네트워크 인터페이스 목록

와이어샤크 시작 화면에서 다양한 네트워크 인터페이스를 확인할 수 있습니다.

실제 네트워크 인터페이스

  • Wi-Fi: en0: 맥북 메인 Wi-Fi 어댑터 (인터넷 연결의 주 통로)
  • awdl0: Apple Wireless Direct Link (AirDrop, Handoff 등)
  • ap1: Access Point 인터페이스 (핫스팟 모드)
  • llw0: Low Latency WLAN (저지연 무선 연결)

유선/어댑터

  • Ethernet Adapter (en3, en4): USB-C/Thunderbolt 이더넷 어댑터
  • Thunderbolt 1, 2 (en1, en2): Thunderbolt 포트 네트워크
  • Thunderbolt Bridge (bridge0): Thunderbolt 네트워크 브리지

가상화/터널링

  • vmenet0: UTM/VMware 가상머신 네트워크
  • bridge100: 가상머신용 네트워크 브리지
  • utun0~5: VPN 터널들 (각각 다른 VPN 연결)
  • anpi0/anpi1: Apple Network Private Interface

시스템 인터페이스

  • Loopback: lo0: 자기 자신과의 통신 (127.0.0.1)
  • gif0/stf0: 터널링 인터페이스 (IPv6 관련)

네트워크 연결 구조

인터넷 ← 공유기 ← 맥북 Wi-Fi (en0) ← 맥 시스템
                      ↓
                  vmenet0 ← UTM ← 우분투
                      ↓
                  utun0/1 ← VPN 앱들

3. 패킷 캡처 실습

초기 캡처 (사설 IP 필터)

첫 번째 실습에서는 사설 IP 대역만 표시하는 필터를 사용했습니다.

사용된 필터

(ip.addr >= 10.0.0.0 and ip.addr <= 10.255.255.255 
 or ip.addr >= 172.16.0.0 and ip.addr <= 172.31.255.255 
 or ip.addr >= 192.168.0.0 and ip.addr <= 192.168.255.255) 
 and not dns

필터 효과:

  • 사설 IP만 표시 → 공인 IP(222.xxx 등) 숨김
  • DNS 제외 → 접속 사이트 정보 숨김
  • 보안성 향상

HTTP 트래픽 분석

사용된 필터

tcp.port == 80 and not ip.src == 192.168.45.188

필터 목적:

  • TCP 포트 80번 패킷만 표시 (HTTP 트래픽)
  • 내 IP에서 나가는 패킷 제외
  • 서버 응답만 관찰

캡처된 패킷 분석

주요 관찰 포인트:

  • HTTP/1.1 200 OK: 웹서버 응답 성공
  • Server Hello, Change Cipher: SSL/TLS 암호화 협상
  • 34.160.111.145: 구글 클라우드 서버 IP
  • 17.253.115.197: 애플 서버 IP

패킷 구조 (선택된 패킷 972번):

Frame 972: 74 bytes on wire
└── Ethernet II (MAC 주소 레벨)
    └── Internet Protocol Version 4 (IP 헤더)
        └── Transmission Control Protocol (TCP 헤더)
            ├── Src Port: 80 (HTTP 서버 포트)
            ├── Dst Port: 53938 (내 컴퓨터의 임시 포트)
            ├── Sequence Number: 0
            └── Acknowledgment: 1

4. TCP 연결 상태 분석

실제 캡처된 다양한 패킷 유형들

실제 패킷 캡처 결과에서 다양한 TCP 상태와 HTTP 응답을 관찰할 수 있습니다.

빨간색 줄 (TCP RST)

17.253.115.197 → 192.168.45.188
TCP [RST] Seq=10376 Ack=1 Win=32230 Len=0
  • RST (Reset): 서버가 연결을 강제로 끊는 신호
  • 발생 이유: 서버 에러, 잘못된 요청, 세션 충돌 등
  • 실제 관찰: 애플 서버에서 연결 리셋 발생

녹색 줄 (정상 HTTP 트래픽)

HTTP/1.1 404 Not Found
HTTP/1.1 200 OK
  • 404: 요청한 리소스를 찾을 수 없음
  • 200: 요청 처리 성공

노란색 줄 (TCP Retransmission)

TCP Retransmission 80 → 53997 [SYN, ACK]
  • 네트워크 지연/손실 시 자동 재전송
  • TCP의 신뢰성 보장 메커니즘

파란색 줄 (Keep-Alive)

TCP [Keep-Alive ACK] Seq=1899 Ack=942 Win=64384 Len=0
  • 연결 상태 유지 확인 패킷
  • Len=0으로 실제 데이터는 없음

TCP 연결 생명주기

1. 연결 시작 (3-way Handshake)

SYN → 클라이언트 → 서버
SYN, ACK → 서버 → 클라이언트  
ACK → 클라이언트 → 서버

2. 데이터 교환

HTTP 요청 → 클라이언트 → 서버
HTTP 응답 → 서버 → 클라이언트

3. 연결 종료

정상 종료 (FIN):

FIN, ACK → 클라이언트 → 서버
ACK → 서버 → 클라이언트
FIN, ACK → 서버 → 클라이언트  
ACK → 클라이언트 → 서버

비정상 종료 (RST):

  • 서버가 RST 패킷으로 강제 연결 종료

5. 패킷 상세 정보 해석

화면 구성

상단 영역

  • 제목: "Capturing from Wi-Fi: en0" (현재 캡처 인터페이스)
  • 필터창: 패킷 필터링 조건 표시

패킷 목록 (중간)

  • No.: 패킷 번호
  • Time: 캡처 시간 (상대적)
  • Source: 발신지 IP 주소
  • Destination: 수신지 IP 주소
  • Protocol: 사용 프로토콜
  • Length: 패킷 크기
  • Info: 패킷 내용 요약

패킷 상세 (하단 좌측)

선택한 패킷의 계층별 구조 표시

Hex 덤프 (하단 우측)

  • 좌측: 16진수 바이트 값
  • 우측: ASCII 텍스트 해석

통계 정보

Packets: 53447, Displayed: 49 (0.1%)
  • 전체 53,447개 패킷 중 필터 조건에 맞는 49개만 표시
  • 필터가 99.9%의 불필요한 패킷을 걸러냄

6. 보안 고려사항

안전한 실습을 위한 조치

MAC 주소 랜덤화

  • 실제 하드웨어 MAC 주소 숨김
  • 더미 값(aa:bb:cc:dd:ee:ff) 사용

필터링을 통한 정보 보호

  • 사설 IP 대역만 표시
  • DNS 쿼리 제외로 접속 사이트 숨김
  • 나가는 패킷 제외로 내부 정보 최소화

공개 안전한 정보들

  • 사설 IP 주소: 외부 접근 불가
  • 일반적인 포트 번호: 표준 웹 서비스 포트
  • 서버 IP: 공개된 웹 서버 주소
  • 프로토콜 정보: 표준 네트워크 프로토콜

요약

네트워크 프로토콜 이해

  • TCP/IP 4계층 구조 실제 관찰
  • HTTP 요청/응답 과정 시각화
  • SSL/TLS 암호화 협상 과정 확인

패킷 분석 기술

  • 필터 사용법 숙달
  • 다양한 패킷 유형 구분
  • 네트워크 문제 진단 능력 향상

보안 의식 제고

  • 개인정보 보호 방법 학습
  • 네트워크 트래픽의 보안 위험 인식
  • 안전한 분석 환경 구축 경험

결론

와이어샤크를 이용한 패킷 분석 실습을 통해 네트워크 통신의 실제 모습을 관찰할 수 있었습니다. MAC 주소 랜덤화와 적절한 필터링을 통해 보안을 유지하면서도, TCP/IP 프로토콜의 동작 원리와 다양한 네트워크 상황을 실제로 확인할 수 있었습니다.

특히 HTTP 트래픽 분석을 통해 웹 브라우저와 서버 간의 통신 과정, TCP 연결의 생명주기, 그리고 다양한 네트워크 상태(정상 응답, 에러, 연결 종료 등)를 실제 패킷 레벨에서 이해할 수 있었습니다.

 

⚠️ 본 실습에서 사용된 모든 MAC 주소와 IP 정보는 더미 데이터 또는 사설 주소입니다. 네트워크 보안 실습에서는 항상 개인정보 보호를 우선시해야 합니다.