ICMP 리다이렉트 공격
IT위키
더 많은 작업
ICMP 리다이렉트 공격(ICMP Redirect Attack)은 ICMP Redirect 메시지를 위조해 피해 호스트에게 공격자의 시스템이 목적지로 가는 더 나은 라우터라고 알려, 피해 호스트의 패킷이 공격자를 거쳐 나가도록 경로를 바꾸는 네트워크 계층 공격이다.
ICMP Redirect(타입 5)는 원래 라우터가 같은 네트워크의 호스트에게 "이 목적지로는 다른 라우터로 보내는 편이 빠르다" 고 알려 주는 정상 메시지다. 호스트는 이 메시지를 받으면 라우팅 테이블에 해당 목적지의 경로를 새로 기록한다. ICMP 는 인증 기능이 없으므로, 공격자가 기본 게이트웨이를 사칭해 이 메시지를 만들어 보내면 피해 호스트는 그대로 믿고 공격자를 그 목적지의 라우터로 등록한다.
그 뒤로 피해 호스트가 그 목적지로 보내는 패킷은 공격자에게 먼저 간다. 공격자는 패킷을 엿본 뒤 진짜 게이트웨이로 넘겨 주므로 통신은 끊기지 않고, 피해자는 가로채기를 알아채기 어렵다. 그래서 주로 스니핑의 수단으로 쓰인다.
- 공격자가 피해 호스트와 같은 네트워크에 있다
- 공격자가 출발지를 기본 게이트웨이 주소로 위조한 ICMP Redirect 메시지를 피해 호스트에 보낸다. "목적지 X 로 가는 더 나은 라우터는 공격자의 IP" 라는 내용이다
- 피해 호스트가 라우팅 테이블에 목적지 X → 공격자 경로를 추가한다
- 피해 호스트의 X 행 패킷이 공격자를 거친다. 공격자는 IP 포워딩을 켜 두고 패킷을 진짜 게이트웨이로 넘긴다
| 공격 | 계층 | 속이는 것 | 결과 |
|---|---|---|---|
| ICMP 리다이렉트 | 3계층(네트워크) | ICMP Redirect 메시지로 라우팅 테이블 | 특정 목적지의 패킷이 공격자를 거친다 |
| ARP 리다이렉트 | 2계층 | ARP 응답으로 ARP 캐시(게이트웨이 IP 에 공격자 MAC) | 게이트웨이로 가는 모든 프레임이 공격자에게 온다 |
| IP 스푸핑 | 3계층 | 패킷의 출발지 IP 주소 | 다른 호스트로 가장해 신뢰 관계를 악용한다 |
| DNS 스푸핑 | 응용 계층 | DNS 응답(도메인의 IP 주소) | 사용자가 공격자의 서버로 접속한다 |
| 이메일 스푸핑 | 응용 계층 | 메일의 발신자 주소 | 다른 사람이 보낸 메일처럼 보이게 한다 → 이메일 인증 |
"스니핑 시스템을 네트워크의 또 다른 라우터라고 알려 패킷 흐름을 바꾸는 네트워크 계층 공격" 은 ICMP 리다이렉트다. 라우터인 척하는 점은 ARP 리다이렉트도 같지만 ARP 리다이렉트는 2계층에서 MAC 주소를 속인다.
- 호스트가 ICMP Redirect 를 받아들이지 않게 한다. 리눅스는
net.ipv4.conf.all.accept_redirects = 0,net.ipv4.conf.all.secure_redirects = 0 - 라우터가 아닌 호스트는 Redirect 를 보내지도 않게 한다(
send_redirects = 0) - 방화벽에서 외부·내부의 ICMP 타입 5 를 막는다
- 라우팅 테이블(
route,ip route)에 모르는 경로가 생겼는지 점검한다