본문 바로가기
Infra & Security Eng/Network & Security

ICMP 정의, 역할, 헤더 구조, ICMP Redirect의 동작과 한계, 공격 필수 조건

by 엔지니어 E 2026. 3. 10.
반응형

ICMP (Internet Control Message Protocol)

IP 프로토콜의 단점(전송 성공 여부를 확인하지 않음)을 보완하기 위해 사용하는 네트워크 계층의 보조 프로토콜. 네트워크 계층(3계층)에서 동작

역할

1. 상태 진단: 송신측과 수신측 사이의 연결 상태가 어떤지 확인함 
2. 에러 보고: 데이터 전송 중 문제가 발생하면 , 그 원인을 송신자에게 알려줌

 

데이터 구조

ICMP 메시지는 독립적으로 움직이지 않고, IP 데이터그램의 '데이터' 부분에 캡슐화되어 운반



오타수정: IMCP 가 아니라 ICMP 임 

아래 2번째 사진은 ICMP Message에서의 내용임


연상 암기: 타.코.채.아.쉬.워 (Ty, Co, Che, I, Se,O) 

Type(8bit): 메시지 종류(8번은 요청, 0번은 응답)
Code(8bitt): 종류 내의 상세 사유(Ping 의 경우 보통 0)
Checksum(2 byte): 데이터 오류 검사 
Identifier(2 byte): 터미널을 여러 개 띄어놨을 때 어떤 프로세스가 보낸 Ping인지 식별하는 ID
Sequence Number(2 byte): 터미너에서 Ping을 보낼 때 몇 번째로 보낸 패킷인지 매기는 순서 (응답 시간을 측정할 때 사용)
Option & Data: 추가 정보나 더미 데이터가 들어가는 공간(아무 의미도 없는 쓰레기 값)

 

ICMP Redirect의 동작과 한계

ICMP Redirect는 네트워크에 라우터가 최소 2개 이상 있을 때만 의미가 있는 기능

1. ICMP Redirect 동작 과정 

1) 패킷 전송: 호스트가 인터넷으로 패킷을 보낼 때, 설정된 디폴트 라우터인 라우터 A로 일단 보낸다 
2) 판단 및 전달: 라우터 A는 라우팅 테이블 검색 후, 직접 처리보다 라우터 B가 처리하는 것이 더 효과적이라면 패킷을 라우터 B로 전달한다 
3) 메시지 전송: 라우터 A는 이후 동일 목적지 패킷이 라우터 B로 가도록 호스트에게 ICMP 리다이렉트 패킷을 보낸다
4) 경로 최적화: 호스트는 라우팅 테이블에 해당 정보를 저장하고, 다음부터 동일 목적지 패킷은 라우터 B로 직접 보낸다

2. 기술적 한계와 보안 취약점
1) 네트워크 효율성 (존재 이유)
본래 목적은 라우터 A를 거쳐 B로 전달되는 **비효율적인 다단계 경로(PC → A → B)**를 감지하여, 호스트가 라우터 B로 직접 패킷을 보내도록 **경로를 최적화(PC → B)**하는 것임
2) 구조적 한계: 스니핑(Sniffing) 취약성
가장 큰 한계는 메시지 인증 절차가 없다는 점
- 호스트는 자신에게 날아온 ICMP Redirect 메시지가 진짜 라우터가 보낸 것인지 확인하지 않음
- 이 허점을 이용해 공격자가 라우터 A인 척 속여서 **"나(공격자)한테 보내는 게 제일 빨라"**라는 가짜 메시지를 보내면, 호스트의 패킷이 공격자에게로 흐르게 되어 데이터가 탈취(스니핑) 됨

3. 현대 OS의 방어 특성: 메시지 무시
실제 환경에서는 ICMP Redirect 메시지가 날아와도 일반적인 컴퓨터(Windows, Linux 등)는 이를 무시해버림
- 이유: 대부분의 네트워크 환경은 라우터가 1대뿐이라고 가정하고 설계되어 있음
- 따라서 갑자기 경로를 바꾸라는 날아오면, 시스템은 이를 보안 공격(경로 변조) 으로 간주하여 신뢰하지 않고 차단 하는 것임

4. 공격 성공을 위한 필수 조건: IP 포워딩과 Flagging
공격자가 스니핑을 성공시키려면 메시지를 보내는 것만으로는 부족하며, 다음 설정이 반드시 필요함

1. IP 포워딩: 가로챈 패킷을 공격자가 갖고만 있으면 호스트의 인터넷이 끊긴다. 사용자가 눈치채지 못하게 패킷을 다시 실제 라우터로 넘겨주는 포워딩 기능을 켜야 한다.
2. Flagging(식별): 공격자 PC로 들어오는 수많은 패킷 중, 내가 변조한 경로를 통해 들어오는 패킷을 정확히 식별하고 처리해야 통신 흐름을 유지하며 데이터를 훔쳐볼 수 있다