IT/네트워크

Ping이란 무엇인가?(Ping Flood/Smurf Attack/Ping of Death)

ByteGuard 2025. 4. 18. 16:14

Ping

  • 네트워크 진단 도구
  • ICMP (Internet Control Message Protocol) 를 이용해서 네트워크 상의 다른 장치가 연결되어 있는지와 응답 시간(latency) 을 측정
  • Ping은 기본적으로 ICMP Echo Request 패킷을 보내고, 상대가 ICMP Echo Reply 패킷을 보내오는 걸 기다려서 통신 상태를 체크하는 방식

 

ICMP

 

  • ICMP는 IP 패킷 내부에 포함되어 전송되는 제어 메시지 프로토콜
  • ICMP는 데이터를 전송하는 프로토콜이 아님
  • TCP나 UDP처럼 데이터를 주고받지는 않고, 네트워크 문제를 진단하거나 에러를 알리기 위해 사용
  • ICMP는 IP 계층에서 작동하는데, "신호"나 "에러 리포트"용으로 만들어짐
  • ICMP는 IP 프로토콜 스택 내의 보조 프로토콜이고, L3(Network Layer)에 속함
  • TCP/UDP처럼 포트 번호가 없음 → 방화벽에서 제어하려면 L4가 아니라 L3/L4 조합 규칙이 필요

IP Header
└─ ICMP Header
    ├─ Type (8: Echo Request, 0: Echo Reply)
    ├─ Code (보통 0)
    ├─ Checksum (오류 검사)
    ├─ Identifier (프로세스 ID 등)
    └─ Sequence Number
       Payload (보통 timestamp 또는 56바이트 dummy)

 

 

  • Identifier + Sequence Number로 각 요청을 구분 → RTT 측정 가능
  • 리눅스 ping은 이 필드들을 이용해 요청/응답을 정렬

 


 

타입 번호 이름 설명
0 Echo Reply Ping 응답 (상대가 "들었다"고 보냄)
8 Echo Request Ping 요청 (우리가 먼저 보냄)

 

 


작동 방식 (Ping의 흐름)

  1. 사용자가 ping 명령어를 입력해 특정 IP 주소나 도메인에 요청을 보냄.
  2. 컴퓨터는 ICMP Echo Request 패킷을 목적지로 보냄.
  3. 목적지가 이 패킷을 받으면, ICMP Echo Reply 패킷을 되돌려 보냄.
  4. 출발지 컴퓨터는 왕복 시간(RTT: Round Trip Time)을 측정함.
  5. 패킷 손실이 있는지, 지연이 심한지 등을 분석할 수 있음.
ping [대상 IP나 도메인]

 

시스템 옵션 설명
Linux/Unix -c [횟수] 보낼 ping 횟수 지정
Windows -n [횟수] 보낼 ping 횟수 지정
모두 -t (Windows) or -i (Linux) 지속적으로 ping (무한 반복 또는 인터벌 설정)

 

  • ttl (Time To Live) : 패킷이 네트워크를 몇 번 경유할 수 있는지
  • time : 왕복 지연 시간(RTT)

 

 

 

Ping은 ICMP 프로토콜로 Echo Request를 보내고 Echo Reply를 받아서 네트워크 상태를 진단하는 것. 명령어로 쉽게 사용할 수 있으며, 결과를 통해 응답 시간과 네트워크 품질을 측정할 수 있다.

 


Ping Flood (ICMP Flood)

  • 공격자가 다량의 ICMP Echo Request 패킷을 대상에게 빠르게 반복적으로 전송
  • 대상 시스템은 매 요청마다 응답(Echo Reply)을 하려 하므로, CPU와 네트워크 자원이 소모됨

 

  1. 일반적으로는 raw socket을 사용해 수천~수만 개의 ICMP 요청을 지속적으로 전송
  2. 요청의 크기는 작지만 수가 많기 때문에, 대상 시스템의 처리 능력을 초과시키면 서비스 지연 발생
  3. 반응을 안 하면 시스템은 CPU가 덜 소모되지만, 인터넷 게이트웨이 장비(방화벽, 라우터)가 병목될 수도 있음

 

대응

  • ICMP rate limiting (초당 응답 제한)
  • Ping 요청 필터링 (iptables, cloud firewall)
  • 이상 트래픽 감지 및 차단 (IDS/IPS)

Smurf Attack

  • 공격자가 스푸핑된 IP(즉, 피해자 IP)를 출발지 주소로 넣은 ICMP Echo Request브로드캐스트 주소로 보냄
  • 브로드캐스트 주소를 받은 네트워크상의 모든 호스트들이 피해자에게 Echo Reply를 보내기 때문에, 피해자는 다수에게서 동시에 트래픽을 받게 됨

 

  1. 공격자는 출발지 IP를 피해자의 IP로 조작하여 ping 192.168.0.255 같은 브로드캐스트를 실행
  2. 해당 서브넷 내 모든 시스템이 피해자 IP에 Echo Reply를 보냄
  3. 피해자는 엄청난 양의 응답을 받아 트래픽이 몰려 마비됨 (증폭 공격, amplification)

 

대응

  • 라우터/스위치에서 브로드캐스트 ICMP 차단
  • 내부 시스템이 브로드캐스트 Echo Request에 응답하지 않도록 설정
  • Ingress/Egress Filtering (RFC 2827): 스푸핑 방지

Ping of Death

  • 과거 OS들이 65535바이트보다 큰 IP 패킷을 조각(fragment)으로 받은 후, 재조립할 때 버퍼 오버플로우가 발생함
  • 결과적으로 시스템이 다운되거나 리부팅됨

 

  1. 공격자는 IP 패킷을 정상 범위(<=65535 byte)보다 크게 조각화하여 전송
  2. 대상 시스템이 재조립할 때 메모리 버퍼를 초과하여 메모리 손상 → 커널 패닉, 크래시
  3. 대표적으로 Windows 95/NT, Unix 90년대 시스템이 취약했음

 

대응

  • 현대 OS는 조각된 ICMP 조립 시 크기 검사 수행
  • 대부분의 최신 커널은 이 문제에 패치됨
  • 과거 네트워크 장비와 구형 임베디드 기기에서는 여전히 잠재적 위험

Ping 기반 DDoS 공격 비교

 

공격 기법 핵심 개념 작동 원리 피해 범위 주요 방어 기법 현재 위협도
Ping Flood 과도한 ICMP 요청 다량의 Echo Request로 리소스 고갈 대상 서버 또는 라우터 ICMP rate limit, ping 차단 높음
Smurf Attack 스푸핑 + 브로드캐스트 증폭 스푸핑된 Echo Request를 브로드캐스트로 전송 → 많은 응답이 피해자에 집중 피해자에게 집중된 응답 트래픽 브로드캐스트 필터링, 응답 차단, 스푸핑 방지 낮음 (브로드캐스트 제한으로 거의 사라짐)
Ping of Death 버퍼 오버플로우 ICMP 조각을 조작해 과대 재조립 유도 → 시스템 크래시 시스템 다운 또는 리부팅 최신 OS 업데이트, MTU 검사 매우 낮음

 

  • Ping Flood는 단순하지만 여전히 유효해서 방화벽에서 기본적으로 감시
  • Smurf증폭형 DDoS의 시조로, 구조적 허점을 악용하던 전통 공격
  • Ping of Death고전적인 메모리 취약점 공격으로, 현대 시스템에서는 거의 재현 불가