인터넷 제어 메시지 프로토콜(ICMP)이란?

인터넷 제어 메시지 프로토콜(ICMP)은 인터넷을 통해 네트워크 문제를 진단하는 데 사용됩니다.

학습 목표

이 글을 읽은 후에 다음을 할 수 있습니다:

  • ICMP의 정의
  • ping 및 traceroute 작동 방식 설명
  • ICMP 프로토콜이 DDoS 공격에 어떻게 사용될 수 있는지 이해하기

관련 콘텐츠


계속 알아보시겠어요?

인터넷에서 가장 인기 있는 인사이트를 한 달에 한 번 정리하는 Cloudflare의 월간 요약본 theNET를 구독하세요!

Cloudflare가 개인 데이터를 수집하고 처리하는 방법은 Cloudflare의 개인정보 취급방침을 참조하세요.

글 링크 복사

인터넷 제어 메시지 프로토콜(ICMP)이란?

인터넷 제어 메시지 프로토콜(ICMP)은 네트워크 장치에서 네트워크 통신 문제를 진단하는 데 사용하는 네트워크 계층 프로토콜입니다. ICMP는 주로 데이터가 의도한 대상에 적시에 도달하는지 여부를 확인하는 데 사용됩니다. 일반적으로 ICMP 프로토콜라우터와 같은 네트워크 장치에서 사용됩니다. ICMP는 오류 보고 및 테스트에 아주 중요하지만, 분산 서비스 거부(DDoS) 공격에도 사용될 수 있습니다.

가입
모든 Cloudflare 요금제의 보안 및 속도

ICMP는 어디에 사용될까요?

ICMP의 주요 목적은 오류 보고입니다. 두 장치가 인터넷을 통해 연결되면 ICMP는 데이터가 의도한 대상에 도달하지 못한 경우 전송하는 장치와 공유할 오류를 생성합니다. 예를 들어 데이터 패킷이 라우터에 비해 너무 큰 경우 라우터에서는 패킷을 삭제하고 ICMP 메시지를 데이터의 원래 소스로 돌려보냅니다.

ICMP 프로토콜의 보조 용도는 네트워크 진단을 수행하는 것입니다. 일반적으로 사용되는 터미널 유틸리티 traceRoute 및 ping은 모두 ICMP를 사용하여 작동합니다. traceroute 유틸리티는 두 인터넷 장치 간의 라우팅 경로를 표시하는 데 사용됩니다. 라우팅 경로는 요청이 대상에 도달하기 전에 통과해야 하는 연결된 라우터의 실제 물리적 경로입니다. 한 라우터와 다른 라우터 간의 여정을 '홉'이라고 하며, traceroute는 여정 중 각 홉에 필요한 시간도 보고합니다. 이는 네트워크 지연의 원인을 확인하는 데 유용할 수 있습니다.

ping 유틸리티는 traceroute의 단순화된 버전입니다. ping은 두 장치 간의 연결 속도를 테스트하고 데이터 패킷이 대상에 도달하고 발신자의 장치로 돌아오는 데 걸리는 시간을 정확히 보고합니다. ping은 라우팅 또는 홉에 대한 데이터를 제공하지 않지만, 두 장치 간의 대기 시간을 측정하는 데 여전히 아주 유용한 메트릭입니다. ICMP 에코 요청 및 에코 응답 메시지는 일반적으로 ping을 수행하기 위해 사용됩니다.

불행히도 네트워크 공격은 이 프로세스를 악용하여 ICMP 폭주 공격죽음의 핑 공격과 같은 방해 수단을 만들 수 있습니다.

백서
네트워크 최신화를 위한 전략 개발

ICMP는 어떻게 작동할까요?

인터넷 프로토콜(IP)과는 달리, ICMP는 TCP 또는 UDP와 같은 전송 계층 프로토콜과 연결되지 않습니다. 따라서 ICMP가 연결이 없는 프로토콜이 되므로 한 장치에서 ICMP 메시지를 보내기 전에 다른 장치와의 연결을 수행할 필요가 없습니다. 일반 IP 트래픽은 TCP를 사용하여 전송됩니다. 이는 데이터를 교환하는 두 장치가 먼저 TCP 핸드셰이크를 수행하여 두 장치 모두 데이터를 수신할 준비가 되었는지 확인함을 의미합니다. ICMP는 이러한 방식으로 연결을 수행하지 않습니다. ICMP 프로토콜도 장치의 특정 포트를 대상으로 하는 것을 허용하지 않습니다.

ICMP 패킷이란 무엇인가요?

ICMP 패킷은 ICMP 프로토콜을 사용하는 패킷입니다. ICMP 패킷은 일반 IP 헤더 뒤에 ICMP 헤더를 포함합니다. 라우터나 서버가 오류 메시지를 보내야 하는 경우, ICMP 패킷 본문 또는 데이터 섹션에는 항상 오류를 일으킨 패킷의 IP 헤더 사본이 포함됩니다.

ICMP는 DDoS 공격에 어떻게 사용될까요?

ICMP 폭주 공격

ping 폭주 또는 ICMP 폭주는 공격자가 ICMP 에코 요청 패킷으로 대상 장치를 압도하려고 시도하는 경우입니다. 대상은 각 패킷을 처리하고 응답해야 하며, 컴퓨팅 리소스를 소비하여 나중에는 합법적인 사용자가 서비스를 받을 수 없게 됩니다.

ICMP 폭주 공격:

ICMP 폭주, 여러 에코 요청 및 에코 응답

죽음의 핑 공격

죽음의 핑 공격은 공격자가 패킷에 허용되는 최대 크기보다 큰 ping을 대상 시스템에 보내 시스템이 정지하거나 충돌하게 만드는 경우입니다. 패킷은 대상으로 가는 도중에 분할되지만, 대상에서 패킷이 원래의 최대 초과 크기로 재조립되면 패킷 크기로 인해 버퍼 오버플로가 발생합니다.

죽음의 핑 공격은 지금 시점에서는 대체로 한물간 공격입니다. 그러나 오래된 네트워킹 장비는 여전히 취약할 수 있습니다.

SMURF 공격

SMURF 공격에서 공격자는 스푸핑된 소스 IP 주소가 있는 ICMP 패킷을 보냅니다. 네트워킹 장비는 패킷에 응답하여 스푸핑된 IP에 응답을 보내고 원치 않는 ICMP 패킷으로 피해 장비를 폭주시킵니다. '죽음의 핑'과 마찬가지로 오늘날 SMURF 공격은 레거시 장비로만 가능합니다.

ICMP는 계층 3 DDoS 공격에 사용되는 유일한 네트워크 계층 프로토콜은 아닙니다. 예를 들어 공격자는 과거에도 GRE 패킷을 사용했습니다.

일반적으로 네트워크 계층 DDoS 공격은 웹 자산을 대상으로 하는 애플리케이션 계층 DDoS 공격과 달리 네트워킹 장비 및 인프라를 대상으로 합니다. Cloudflare Magic Transit은 네트워크 계층 DDoS 공격을 방어하는 방법 중 하나입니다.