ICMP는 인터넷 제어 메시지 프로토콜Internet Control Message Protocol의 약자이다. ICMP는 인터넷 프로토콜 모음Internet Protocol Suite 중 하나로, IP 동작에서 네트워크 진단이나 제어 목적으로 사용된다. 또한 네트워크 상에서 오류가 발생했을 때 이에 대한 응답으로 만들어져 오류가 발생한 패킷을 보낸 IP 주소로 전송한다. 다음은 ICMP echo-request/reply 에 대한 취약점들이다.

 

 

1. ICMP Redirect (Sniffing)

 

  보통의 네트워크는 라우터나 게이트웨이가 하나이지만, 여러 개의 라우터를 사용할 수 밖에 없는 경우 로브 밸런싱(Load balancing)을 해야 한다.

 

  호스트가 특정한 목적지로 가야 하는데, 해당 목적지가 없거나 최단거리가 아닌 경우 ICMP 리다이렉트 패킷은 라우터를 통해서 호스트에게 최선의 경로를 알려주는데 사용된다. ICMP 리다이렉트 패킷을 공격자가 위조할 수 있다면 공격자는 호스트의 라우팅 테이블을 변경하여 특정한 트래픽이 의도하지 않은 경로를 경유하도록 만들 수 있게 된다.

 

  즉, 피해자가 DNS 서버로 접속을 하려고 할 때 라우터를 통하여 접속을 한다. 이 때 공격자는 피해자에게 자신의 경로를 경우하는 것이 최선의 경로라고 ICMP 리다이렉트 패킷을 보낸다. 이 패킷을 받은 피해자의 컴퓨터는 DNS 서버로 보내는 패킷을 공격자의 IP주소로 보내도록 라우팅 테이블이 변경된다. (공격자를 경우하는 것이 최선의 경로라고 알려주는 것이다.) 공격자는 이를 통하여 피해자의 패킷을 Sniffing 할 수 있게 된다. 이때 공격자는 받은 패킷을 포워딩 해주지 않으면 피해자쪽에서는 인터넷이 끊어지는 현상이 나타나기 때문에 Fragrouter를 해줘야 한다. (단순이 일방향으로 Fragmenting 하는 것)

 

2. ICMP Directed broadcast

 

  만약 라우터에 directed-broadcast 설정이 되어 있다면 외부에서 브로드캐스트 주소로 ping 과 같은 특정한 패킷을 발송할 경우 해당 패킷이 브로드캐스트 주소를 통해 내부의 모든 주소로 그대로 전달되게 된다. 이를테면 만약 내부에서 C Class를 사용하고 있다면 123.123.123.255 주소로 ping을 보냈다면 123.123.123.1 부터 123.123.123.254 까지 255개의 시스템에 그대로 전달된다는 것이다. 이는 일면 편리하게 사용될 수도 있는 기능이지만 DoS DDoS 공격으로 악용될 가능성이 매우 높기 때문에 반드시 사용하지 않도록 하여야 한다.

 

  정리하자면, 출발지 IP 주소를 공격대상자 IP주소로 소스 주소를 변경한 후 ICMP Echo를 보내면 공격대상자 주소로 icmp reply가 많이 날라가게 되어 공격대상자 서버가 다운되는 공격이 가능하다는 것이다. 이러한 공격을 스머프 공격(Smurf attack)이라고도 부르는 ICMP Flood 라고 한다.

 


출처

 

http://blog.daum.net/tlos6733/39

http://agz.es/Network/cdft.pdf

http://c8korea.blogspot.kr/2013/05/cisco.html

 


블로그 이미지

NCookie

,