IP 단편화 공격의 원리와 방화벽 우회 대응
IP 단편화의 재조립 취약점을 악용하는 Teardrop, Tiny Fragmentation, Overlap 공격과 네트워크 방어 방안을 정리한다.
2026-08-14 · 최초 발행 2025-06-28
MTU를 넘는 패킷이 조각으로 나뉠 때 생기는 공격면
MTU(Maximum Transmission Unit)보다 큰 IP 패킷은 전송을 위해 여러 단편으로 분할된다. 수신 측은 이를 다시 조립해 원본 데이터를 복원한다. 단편화 공격은 이 정상적인 처리 과정에 비정상적인 오프셋, 길이, 단편 크기를 넣어 재조립 오류, 자원 고갈, 보안 장비 우회를 유도한다.
IP 헤더에서는 다음 필드가 단편의 관계와 재조립 순서를 관리한다.
- Identification: 같은 원본 패킷에서 나온 단편을 구분한다.
- Fragment Offset: 원본 데이터 안에서 해당 단편이 차지하는 위치를 나타낸다.
- More Fragment(MF) 플래그: 뒤에 이어지는 단편이 있는지를 표시한다.
- Don't Fragment(DF) 플래그: 패킷 단편화 금지 여부를 나타낸다.
문제는 수신 시스템이 단편의 조합을 신뢰할 수 없는 입력으로 받아야 한다는 데 있다. 조각의 위치와 범위를 의도적으로 충돌시키거나 지나치게 잘게 쪼개면, 재조립 로직과 중간 보안 장비의 해석 차이가 공격 경로가 된다.
겹치는 오프셋으로 재조립을 흔드는 Teardrop
Teardrop은 IP 단편의 중첩, 즉 오버랩을 악용한다. 공격자는 두 번째 단편의 오프셋을 첫 번째 단편 내부로 지정해 서로 겹치는 조각을 전송한다. 수신 시스템이 이를 조립하려 할 때 메모리 버퍼 오버플로우나 시스템 충돌이 발생할 수 있다.
Windows 95, NT와 일부 Linux 배포판은 이 공격에 취약했으며, 1997년 널리 알려진 뒤 많은 시스템은 단순히 재부팅해야만 복구할 수 있었다. 현대 운영체제 대부분은 관련 취약점을 패치했지만, 레거시 시스템은 여전히 위험할 수 있다.
작은 조각을 대량으로 보내는 Tiny Fragmentation
Tiny Fragmentation은 데이터가 극도로 작은 패킷 단편으로 나뉘도록 만들어 처리 자원을 소모시키는 방식이다. 공격자는 8바이트 등의 데이터를 담은 단편을 다수 생성한다. 이런 작은 단편은 네트워크 장비와 방화벽의 필터링을 우회할 수 있고, 대상 시스템은 단편을 관리하고 재조립하느라 CPU와 메모리를 과도하게 사용하게 된다.
저사양 장비나 IoT 디바이스에서는 특히 DoS(서비스 거부) 조건으로 이어질 수 있다. 방화벽의 비정상적으로 작은 단편 탐지·차단 기능을 사용하고, 단편의 최소 크기와 허용 단편 수를 제한하는 방식으로 대응할 수 있다.
장비마다 다른 재조립 정책을 노리는 Overlap
Fragmentation Overlap 공격도 오프셋과 길이를 조작해 단편 간 중첩 영역을 만든다. 다만 중첩 구간에 서로 다른 데이터를 넣어, 어떤 데이터를 채택할지에 대한 시스템별 정책 차이를 이용한다.
방화벽은 첫 번째 단편을 기준으로 검사하지만 대상 시스템은 마지막 단편을 우선할 수 있다. 이 차이가 방화벽과 IDS 우회의 기반이 된다. 단편 처리 방식이 시스템마다 다르다는 점은 보안 검사를 피하는 공격 벡터가 될 수 있으며, 정보 유출과 권한 상승 공격의 기반으로도 이어질 수 있다.
재조립 전후를 함께 보는 방어 체계
단편화 공격 대응은 네트워크 장비의 검사와 운영체제의 처리 제한을 함께 구성해야 한다.
네트워크 측에서는 비정상적인 단편화 패턴을 필터링하고, 방화벽이나 IDS가 패킷을 재조립한 뒤 검사하도록 설정한다. 단편 최소 크기와 최대 수량을 제한하고, 모든 단편화 패킷을 추적해 완전히 재조립한 상태에서 검사하는 상태 기반 검사도 필요하다.
시스템 측에서는 운영체제와 네트워크 스택의 보안 업데이트를 유지한다. 불필요한 IP 프로토콜 스택 기능을 비활성화하고, 자원을 과도하게 소모하는 단편화 패킷의 처리를 제한해야 한다. 비정상 단편화 패턴을 찾을 수 있도록 네트워크 로그와 모니터링도 운영 범위에 포함한다.
도구 측면에서는 Snort, Suricata 같은 IDS에 단편화 공격 탐지 규칙을 적용할 수 있다. IPS는 비정상 단편화 패턴을 실시간으로 차단하며, Wireshark는 패킷 단편화 패턴을 확인하는 데 사용한다. 보안 방화벽에서는 단편화 공격 전용 방어 기능을 활성화한다.
알려진 취약 사례가 남긴 운영상 경계점
2018년에 발견된 CVE-2018-4878은 특정 방식의 단편화 패킷이 Windows 시스템에서 메모리 손상을 일으키는 취약점이다. 원격 코드 실행으로 이어질 수 있었고, Microsoft는 긴급 보안 패치를 배포했다.
보안 연구자들은 Fragmentation Overlap을 이용해 상용 방화벽 제품의 검사를 우회하는 방법을 시연했다. 방화벽은 첫 번째 단편만 검사하고, 대상 시스템은 중첩 영역에서 마지막 단편의 데이터를 우선하는 동작 차이를 이용한 방식이었다.
2019년에는 특정 IoT 라우터가 Tiny Fragmentation에 취약하다는 사실이 발견됐다. 공격자는 수천 개의 작은 단편을 전송해 디바이스 메모리를 고갈시키고 서비스 장애를 유발했다.
레거시 시스템, IoT 디바이스, 복잡한 네트워크 환경에서는 IP 단편화가 오래된 기능이라는 이유만으로 위험을 낮게 볼 수 없다. 이상 단편 탐지와 필터링, 재조립 검사, 패치 관리를 함께 유지해야 한다.