네트워크 보안 - IP 단편화 · 패킷 스니핑 · Wireshark 완전 정리

Phase 2  |  Network Security

IP 단편화 · 패킷 스니핑 · Wireshark 완전 정리

Fragmentation 구조 · 스니핑 환경 구성 · SPAN/TAP · Wireshark 필터 실무 패턴까지

01 IP Fragmentation (IP 단편화)

전송할 데이터가 네트워크 경로의 MTU(Maximum Transmission Unit)를 초과하면 IP 계층에서 패킷을 여러 조각으로 분할해 전송한다. 재조립은 반드시 수신 측 종단에서만 수행된다.

단편화 조건 및 핵심 필드
필드역할값 해석
Identification (ID)같은 원본 패킷 조각임을 식별동일 ID = 같은 데이터그램
MF (More Fragments)뒤에 조각이 더 있는지 표시MF=1 : 더 있음 / MF=0 : 마지막
Fragment Offset원본 데이터 내 이 조각의 위치8 bytes 단위 (×8 = 실제 바이트 위치)
DF (Don't Fragment)단편화 금지 플래그DF=1이면 MTU 초과 시 패킷 폐기 + ICMP 반환
UDP vs TCP 단편화 주체

UDP — IP가 단편화

  • UDP는 자체 분할 기능 없음
  • 4000 bytes 전송 시 IP에서 MTU 기준 분할
  • IP Header(20B) + UDP Header(8B) + Data
  • 재조립 실패 시 전체 데이터 손실

TCP — TCP가 먼저 분할 (MSS)

  • TCP가 MSS 기준으로 먼저 Segment 분할
  • MSS 올바르면 IP 단편화 불필요
  • MSS 협상 실패 시 IP 단편화 발생
  • SN 기반 순서 보장 → 재조립 신뢰성 있음
4000 bytes 전송 시 단편화 예시 (MTU=1500)
# UDP 4000 bytes → IP 단편화 (MTU=1500) Packet 1 : IP(20) + UDP(8) + Data[0~1471] MF=1, Offset=0 Packet 2 : IP(20) + Data[1472~2959] MF=1, Offset=185 (1480/8) Packet 3 : IP(20) + Data[2960~3999] MF=0, Offset=370 (마지막) # TCP 4000 bytes → MSS 기반 Segment 분할 (MSS=1460) Segment 1 : SN=1, Data[0~1459] (1460 bytes) Segment 2 : SN=1461, Data[1460~2919] (1460 bytes) Segment 3 : SN=2921, Data[2920~3999] (1080 bytes) 마지막
구분UDPTCP
분할 주체IP 계층TCP 계층 → (필요 시) IP
분할 기준MTUMSS
신뢰성없음 (조각 유실 = 전체 손실)있음 (재전송 보장)
재조립 위치수신 종단수신 종단 (TCP 레벨)
02 단편화 기반 보안 공격 및 탐지

Teardrop Attack

  • Fragment Offset 값을 의도적으로 중첩되게 조작
  • 재조립 과정에서 버퍼 오버플로우 또는 커널 크래시 유발
  • 구형 OS(Windows 95, NT) 대상 구현 존재
  • 대응: OS 패치, 단편화 재조립 검증 로직

IDS/IPS 우회 — Fragmentation

  • 공격 페이로드를 작은 조각으로 분산 전송
  • IDS가 개별 조각만 검사 시 탐지 불가
  • 재조립 후 검사(Full Reassembly) 필수
  • 대응: Stateful 패킷 검사, 재조립 기반 IDS
단편화 분석 포인트
  • Fragment ID 동일 여부 — 같은 ID면 같은 원본 패킷 조각. 비정상적으로 다수의 ID 조합은 공격 의심
  • Offset 값 증가 패턴 — 순차 증가가 정상. 중첩(Overlap)이면 Teardrop 의심
  • MF 비트 확인 — 마지막 조각(MF=0) 이후에도 같은 ID 패킷 수신되면 이상
  • 재조립 실패 여부 — 타임아웃 내 모든 조각 미수신 시 전체 폐기, ICMP Time Exceeded 발생
03 패킷 스니핑 환경 구성

스니핑의 핵심은 "트래픽을 볼 수 있는 위치 확보"다. 아무리 좋은 도구도 트래픽이 지나가지 않는 위치에서는 무용지물이다.

스니핑 기본 구성 요소
구성 요소역할비고
NIC (Promiscuous Mode)자기 MAC이 아닌 패킷도 수신드라이버 수준 지원 필요
pcap 라이브러리OS 커널에서 패킷 캡처Linux: libpcap / Windows: Npcap
캡처 도구패킷 시각화 및 저장Wireshark, tcpdump, tshark
트래픽 복제 장치스위치 환경에서 미러 트래픽 생성SPAN Port, Network TAP
스위치 환경의 한계  |  스위치는 MAC Table 기반으로 목적지 포트에만 프레임을 전달한다. 따라서 일반 PC를 스위치에 연결해도 자기 트래픽만 수신 가능. 타인 트래픽 캡처를 위해서는 반드시 미러링 구조가 필요하다.
04 스위치 환경 스니핑 방법 비교
방법원리장점단점 / 한계
Port Mirroring
(SPAN)
스위치가 특정 포트 트래픽을 다른 포트로 복제 구성 간단, 추가 비용 없음, 가장 범용적 고속 트래픽에서 패킷 유실 가능, CPU 부하
Network TAP 링크에 물리적으로 삽입, 트래픽 무손실 복제 패킷 손실 최소, 네트워크 영향 없음 물리적 설치 필요, 장비 비용 발생
Aggregated TAP 여러 링크를 하나의 포트로 집계 고성능, 데이터센터 IDS/IPS 연동 최적 집계 과정에서 대역폭 초과 시 유실 가능
Hubbing Out 스위치 대신 허브 사용 → 전체 브로드캐스트 모든 트래픽 수집 가능 성능 저하, 보안 취약, 현재 거의 미사용
ARP Spoofing ARP Cache 오염으로 트래픽 자신 경유 추가 장비 불필요 공격적 기법, 보안 테스트 목적 한정
SPAN 종류

Local SPAN

  • 같은 스위치 내 포트 간 미러링
  • 가장 기본적인 구성
  • 실무 가장 많이 사용

RSPAN

  • Remote SPAN
  • 다른 스위치로 미러 트래픽 전달
  • VLAN을 통해 원격 전송

ERSPAN

  • Encapsulated RSPAN
  • GRE 터널로 L3 네트워크 경유
  • 원격 데이터센터 분석 가능
05 트래픽 수집 위치 전략

"어디서 캡처하느냐"가 분석 결과를 결정한다. 목적에 맞는 위치를 선택해야 의미 있는 패킷을 수집할 수 있다.

LAYER 1
Endpoint

특정 호스트의 송수신 트래픽 분석. 악성코드 감염 단말 포렌식

ACCESS
Access Switch

사용자 그룹 단위 트래픽. 내부 사용자 행위 분석

CORE
Core Switch

전체 네트워크 트래픽. 대규모 이상 탐지

FIREWALL 앞
Firewall 외부

인터넷에서 들어오는 원본 공격 트래픽. 필터링 전 데이터

FIREWALL 뒤
Firewall 내부

방화벽 통과 후 내부 진입 트래픽. 차단 규칙 유효성 검증

실무 핵심  |  침해사고 분석 시 Firewall 앞/뒤 패킷을 반드시 비교해야 한다. 앞에서 보이던 공격 트래픽이 뒤에도 있다면 방화벽 정책 미적용 또는 우회 성공을 의미한다.
06 Wireshark — 필터 종류 및 사용법

Capture Filter

  • 캡처 시작 전 적용
  • 지정 조건 외 패킷은 저장 자체 안 됨
  • BPF(Berkeley Packet Filter) 문법
  • 목적: 성능 최적화, 저장 공간 절약
  • 예: host 192.168.0.1

Display Filter

  • 캡처된 패킷을 필터링해 표시
  • 원본 캡처 파일은 유지됨
  • Wireshark 전용 문법
  • 목적: 분석 편의성, 조건 변경 자유로움
  • 예: ip.addr == 192.168.0.1
Display Filter 실무 필수 패턴
IP 주소 필터
ip.addr == 192.168.0.1 # 송수신 모두 포함 ip.src == 192.168.0.1 # 출발지만 ip.dst == 192.168.0.2 # 목적지만
포트 / 프로토콜 필터
tcp.port == 80 # TCP 80 포트 udp.port == 53 # DNS (UDP 53) http # HTTP 프로토콜 전체 dns # DNS 프로토콜 전체 icmp # ICMP 전체
논리 연산자 조합
ip.addr == 192.168.0.1 && tcp.port == 80 # AND http || dns # OR !arp # NOT (ARP 제외)
특정 세션 추적
ip.addr == 10.0.0.1 && ip.addr == 10.0.0.2 # 두 호스트 간 세션
보안 분석 — 공격 탐지 패턴
# SYN Flood 탐지 (ACK 없는 SYN만 필터) tcp.flags.syn == 1 && tcp.flags.ack == 0 # RST 대량 발생 (포트 스캔 결과) tcp.flags.reset == 1 # 비정상 단편화 패킷 ip.flags.mf == 1 # DNS 응답 크기 이상 (DNS Amplification 의심) dns && frame.len > 512 # ICMP Flood icmp.type == 8 # Echo Request만 필터
분석 팁  |  Statistics → Conversations로 IP/TCP 세션 목록 확인, Follow TCP Stream으로 세션 내용 재구성, Export Objects → HTTP로 전송된 파일 추출 가능. 공격 패킷 발견 시 Export Specified Packets로 증거 보존 필수.
07 보안 관점 핵심 정리
  • Teardrop Attack : Fragment Offset 중첩 조작 → 재조립 과정 커널 크래시. 대응: OS 패치, 단편화 검증 로직
  • IDS 우회 (Fragmentation) : 공격 페이로드를 조각으로 분산. 대응: Full Reassembly 기반 IDS/IPS
  • OS Fingerprinting via TTL : 수신 TTL로 OS 종류 추정. 대응: TTL 표준화
  • ARP Spoofing 스니핑 : Cache 오염으로 트래픽 자신 경유. 대응: 정적 ARP, DAI
  • 스위치 환경 스니핑 방어 : SPAN 포트 접근 권한 제한, 불필요한 미러링 포트 비활성화
  • Wireshark 증거 수집 : pcapng 형식으로 저장, SHA256 해시 기록 → 포렌식 무결성 확보