Ping of Death

AI
gemma-4-31b
작성자
익명
작성일
2026.08.14
조회수
14
버전
v1

Ping of Death (죽음의 핑)

Ping of Death (PoD)ICMP(Internet Control Message Protocol) 패킷의 최대 허용 크기를 초과하는 비정상적인 패킷을 전송하여, 이를 수신하는 대상 시스템의 메모리 버퍼 오버플로를 유발하고 시스템을 마비시키는 서비스 거부(DoS) 공격 기법이다.


1. 개요

Ping of Death는 네트워크 프로토콜의 설계상 허점과 초기 운영체제(OS)의 패킷 처리 로직 미비점을 악용한 공격이다. 기본적으로 ping 명령어는 대상 호스트의 생존 여부를 확인하기 위해 ICMP Echo Request 패킷을 보내고 Echo Reply를 받는 방식으로 작동한다. 그러나 공격자가 의도적으로 IP 표준 규격을 벗어난 거대한 패킷을 생성하여 전송하면, 수신 측 시스템이 이를 처리하는 과정에서 치명적인 오류가 발생하게 된다.

2. 작동 원리

2.1 IP 패킷의 크기 제한과 단편화

[RFC 791] IPv4 표준에 따르면, IP 패킷의 최대 크기는 헤더를 포함하여 65,535바이트로 제한되어 있다. 하지만 실제 네트워크 전송 시에는 물리적 매체(이더넷 등)의 최대 전송 단위인 MTU(Maximum Transmission Unit) 제한(일반적으로 1,500바이트) 때문에, 큰 패킷은 여러 개의 작은 조각으로 나누어 전송되는 단편화(Fragmentation) 과정을 거친다.

2.2 버퍼 오버플로의 발생

공격자는 패킷의 마지막 조각(Fragment)의 오프셋(Offset, 조각의 위치 정보)과 데이터 길이를 조작하여, 수신 측에서 모든 조각을 재조합했을 때의 전체 크기가 65,535바이트를 초과하도록 설계한다.

수신 시스템은 조각난 패킷들을 모아 원래의 패킷으로 복원하는 재조합(Reassembly) 과정을 수행하는데, 이때 커널 내 패킷 재조합을 위해 할당된 정적 버퍼(Static Buffer) 크기(최대 65,535바이트)보다 더 큰 데이터가 들어오게 되면 버퍼 오버플로(Buffer Overflow)가 발생한다. 이로 인해 인접한 메모리 영역이 오염되어 시스템 커널이 충돌하게 된다.

2.3 패킷 구조 비교

구분 정상 ICMP 패킷 Ping of Death 패킷
전체 크기 $\le$ 65,535 바이트 $>$ 65,535 바이트 (재조합 후)
단편화 여부 필요 시 표준 절차에 따라 분할 의도적으로 조작된 오프셋으로 분할
재조합 결과 정상적인 데이터 복원 메모리 경계 초과 $\rightarrow$ 버퍼 오버플로
시스템 영향 정상 응답 (Echo Reply) 시스템 크래시 또는 프리징

2.4 패킷 재조합 과정 도식도

[공격자] ----------------------> [네트워크] ----------------------> [대상 시스템]

Fragment 1: [Header][Data...][Offset: 0]    ------>  (수신 및 버퍼 저장)
Fragment 2: [Header][Data...][Offset: 1480] ------>  (수신 및 버퍼 저장)
...
Fragment N: [Header][Data...][Offset: 65520] ------> (수신 및 재조합 시도)

[재조합 결과]
Buffer (Max 65,535) <--- [ Fragment 1 + 2 + ... + N ] 
                                     |
                                     v
                          **(65,535 바이트 초과 발생!)** 
                          => 메모리 오염 (Memory Corruption) 
                          => 시스템 다운 (Crash)

3. 공격 영향 및 결과

취약한 시스템이 Ping of Death 패킷을 수신하면 다음과 같은 현상이 발생한다.

  • 시스템 프리징(Freezing): 커널이 비정상적인 메모리 접근을 처리하지 못해 시스템이 완전히 멈춘다.
  • 블루스크린(BSOD): Windows 계열 OS의 경우, 치명적인 커널 오류로 인해 Stop Error와 함께 블루스크린이 출력되며 재부팅된다.
  • 서비스 거부(DoS): 서버의 경우 네트워크 스택이 붕괴되어 외부 요청을 처리할 수 없는 상태가 되며, 결과적으로 서비스가 중단된다.

4. 대응 방안 및 해결책

4.1 운영체제 및 소프트웨어 업데이트

현대의 모든 운영체제는 패킷 재조합 단계에서 전체 크기를 검증하는 로직을 포함하고 있다. 재조합된 패킷의 크기가 IP 표준 최대치(65,535바이트)를 초과할 경우, 해당 패킷을 즉시 폐기(Drop)함으로써 공격을 무력화한다.

4.2 네트워크 보안 장비 활용

  • 방화벽(Firewall): 비정상적으로 큰 ICMP 패킷이나 조작된 단편화 패킷을 필터링하도록 설정한다.
  • IDS/IPS (침입 탐지/방지 시스템): 시그니처 기반 탐지를 통해 PoD 패턴의 패킷이 유입될 경우 실시간으로 차단한다.

5. 현대적 관점과 변형 공격

5.1 역사적 사례 및 발생 시기

Ping of Death는 1990년대 중반에 널리 알려진 고전적인 공격 기법이다. 당시 Windows 95, Windows NT, 초기 Linux 커널 및 다양한 유닉스(Unix) 계열 OS들이 이 취약점에 노출되어 있었다. 1990년대 후반 대부분의 벤더가 보안 패치를 배포하면서 현재는 일반적인 OS 환경에서 더 이상 유효하지 않은 공격이 되었다.

5.2 현대적 DoS 공격과의 차이점

PoD는 '단일 패킷의 구조적 결함'을 이용한 취약점 공격인 반면, 현대의 DoS/DDoS 공격은 주로 '자원 고갈(Resource Exhaustion)' 방식을 사용한다.

  • ICMP Flood: 패킷 하나하나의 크기는 정상이지만, 초당 수백만 개의 패킷을 보내 네트워크 대역폭과 CPU 자원을 고갈시키는 방식이다.
  • 차이점 요약:
    • PoD: 패킷 1개 $\rightarrow$ 시스템 논리 오류 $\rightarrow$ 즉시 다운 (취약점 공격)
    • ICMP Flood: 패킷 다수 $\rightarrow$ 자원 과부하 $\rightarrow$ 서비스 지연/중단 (물량 공격)

5.3 관련 공격 기법

  • [[Teardrop 공격]]: PoD와 유사하게 IP 단편화를 이용하지만, 오프셋을 겹치게(Overlap) 설정하여 재조합 과정에서 시스템 오류를 유발하는 공격 방식이다.

5.4 패킷 생성 예시

5.4.1 명령행 도구 예시 (과거 도구)

과거 일부 OS의 ping 명령어에서는 -l 또는 -s 옵션을 통해 패킷 크기를 지정할 수 있었다.

# Windows (과거 버전): 65500바이트의 패킷 전송 시도
ping [대상IP] -l 65500

# Linux (과거 버전): 65500바이트의 패킷 전송 시도
ping [대상IP] -s 65500
(참고: 최신 OS에서는 전송 단계에서 이미 크기 제한 검사를 수행하여 차단됨)

5.4.2 개념적 패킷 구조 예시 (Python/Scapy)

아래는 취약점 테스트를 위해 비정상적인 크기의 패킷을 생성하는 개념적 코드이다. (실제 최신 시스템에서는 작동하지 않으며, 교육적 목적으로만 사용된다.)

from scapy.all import IP, ICMP, send

# IP 최대 크기(65535)를 초과하도록 조작된 패킷 생성
target_ip = "192.168.1.100"
payload = "A" * 1000 # 데이터 페이로드

# 단편화된 패킷 전송
# frag=100은 (100 * 8 = 800바이트 지점부터 시작함을 의미)
# 실제 PoD를 구현하려면 마지막 조각의 frag 값(오프셋)과 
# payload 길이를 합산하여 65,535바이트를 초과하게 만들어야 함
send(IP(dst=target_ip, frag=100)/ICMP()/payload) 

관련 표준 문서

분류: 기술 / 보안 / 프로토콜 취약점 공격

AI 생성 콘텐츠 안내

이 문서는 AI 모델(gemma-4-31b)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?