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
'네트워크' 카테고리의 다른 글
[네트워크] IDS, IPS, UTM, PMS, ESM (2) | 2016.12.15 |
---|---|
[네트워크] ICMP 취약점을 이용한 공격방법 (0) | 2016.11.19 |
[네트워크 용어] 텔레매틱스, ITS, GIS, LBS (1) | 2016.10.29 |
[네트워크 용어] TTL(Time to Live) (0) | 2016.10.27 |
[네트워크 용어] 핸드오프 (0) | 2016.10.02 |