미니시리 2024. 8. 25. 23:00

ICMP(Internet Control Message Protocol, 인터넷 제어 메시지 프로토콜)는 네트워크 장치에서 네트워크 통신 문제를 진단하는 데 사용하는 네트워크 계층 프로토콜이다. ICMP가 사용되는 주요 방법은 데이터가 목적지에 잘 도달하는지, 도달 시간이 적절한지를 확인하는 것이다.

 

ICMP 용도

ICMP의 주요 용도는 오류보고이다. 두 장치가 인터넷을 통해 연결되면 ICMP를 사용하여 데이터가 의도한 대상에 도달하지 못한 경우, 수신 장치에서 전송장치로 전달할 수 있는 오류를 생성할 수 있다. 다만 데이터에 대한 정보를 전달하기 위한 프로토콜이지만, 데이터 자체를 관리하지는 않는다.

 

ICMP 작동 방식

ICMP는 메시지를 보내기 전에 다른 장치와의 연결을 할 필요가 없다. 인터넷 프로토콜(IP)와 달리 ICMP는 TCP, UDP와 같은 전송 계층 프로토콜과 연결되지 않는다. 

 

ICMP 악용 사례

ICMP 플러드 공격, Ping of Death 공격, SMURF 공격 등을 통해 공격에 사용되기도 한다.

 

DDos 공격

ICMP를 이용한 DDoS 공격자는 대상 장치가 ICMP 패킷을 모두 처리할 수 없도록 매우 많은 양의 ping을 보내려고 시도한다. 패킷마다 각각 처리 및 응답이 필요하기 때문에 장치의 리소스가 고갈되어 실제 사용자가 장치를 사용할 수 없게 된다.

 

Ping of Death 공격

PoD 공격은 대상 장치가 처리할 수 없는 패킷에 허용되는 최대 크기보다 큰 ping을 대상 시스템에 보내 시스템이 정지하거나 충돌하게 만드는 공격이다. 

데이터 패킷은 타겟에 향하면서 조가고하 되지만, 재조립하는 프로세스 중 다시 결합하여 타겟에 도착하면 버퍼 오버플로우가 발생하여 장치가 오작동하게 됩니다.
지금 시점에서는 한물 간 공격이지만, 레거시 장치에서는 여전히 취약할 수 있다고 한다.

 

traceroute

traceroute 명령어는 패킷이 목적지에 도달할 때까지 거치는 경로(라우터)를 추적하는 데 사용된다. 

네트워크 경로에서 각 홉에서 발생하는 지연시간을 확인할 수 있다.

  • 패킷이 목적지에 도달할 때까지 거치는 모든 라우터를 나열한다.
  • 각 홉에서의 왕복시간을 측정하여 네트워크 지연 시간을 확인할 수 있다.
  • 특정 경로에서의 장애 지점을 식별하여 네트워크 문제를 진단할 수 있다.
traceroute 3.39.xxx.xxx

3.39.xxx.xxx로 traceroute 명령을 시도했다.
홉 1~3 . 홉 8~15에서 거치는 IP 주소, 응답 시간을 확인할 수 있다.
이외에는 응답이 없다. 일부 라우터가 ICMP 패킷에 응답하지 않도록 설정되어 있기 때문이다.
대상 시스템이 3초 동안 응답하지 않을 경우 (*)과 함께 표시된다.
이 부분의 라우터가 ICMP 패킷에 응답하지 않았다는 뜻이다.