[네트워크 보안] ICMP 프로토콜
1. ICMP Protocol
1) 등장배경
□ IP 프로토콜의 비신뢰성
□ 전송 상태에 대한 관리가 이루어지지 않음
2) 기능
□ Error-Reporting Message : 전송 중 오류 발생 시, 에러 메시지 생성 및 응답
□ Query Message : 네트워크 상태 진단을 위한 쿼리 요청 및 응답
3) 구조
□ 32 bit * 3행
□ 1행
Type(8bit) | Code(8bit) | CheckSum(16bit) |
- Type : ICMP 메시지 유형
* Type 3 - Code : Destination Unreachable - 왜 목적지에 도착할 수 없었는지에 대한 세부 내용
* Type 5 : Redirection(라우팅 경로가 잘못 되었다는 것을 이전 경유지 혹은 호스트에게 알려주는 내용)
* Type 11 - Code : Time Exceeded(타임 아웃으로 인해 IP Packet 폐기) - 0(by TTL) or 1(by 재조합 과정에서 발생)
* Type 8: Echo Request(ping 유틸리티 프로그램에 사용, 종단 노드 간에 네트워크 및 호스트 상태 진단 목적)
* Type 0 : Echo Reply(ping 유틸리티 프로그램에 사용, 종단 노드 간에 네트워크 및 호스트 상태 진단 목적)
- Code : Type 의 세부 내용
- CheckSum : ICMP 메시지의 오류 검사를 위한 값
□ 2행
Rest of the Header(32bit) |
- Rest of the Header : Type, Code 에 따라 추가되는 헤더
□ 3행
Data Section(32bit) |
2. ICMP Redirect
1) 개념
□ ICMP Redirect 패킷을 이용하여 패킷 경로를 악의적으로 재설정하는 공격
2) 동작 원리
□ ICMP Redirect 패킷은 그냥 상식적으로 생각해보면 게이트웨이 or 라우터에서 오는 메시지
□ 공격자는 본인의 IP를 게이트웨이의 IP 인 마냥 속여서 Redirect 메시지를 보냄
□ 좀 풀어서 얘기하면 공격대상자한테 "마! 니가 1.1.1.1 IP로 전송하고 싶어? 그러면 Gateway IP가 2.2.2.2(공격자 호스트 IP 주소) 인 놈으로 보내!" 라고 하는 것
□ 즉, 희생자의 라우팅 테이블을 변조하는 공격
□ 이를 통해 스니핑 실시
3) 대응 방법
□ ICMP Redirection 옵션 해제 : sysctl -w net.ipv4.conf.all.accept_redirects=0
3. IGMP
1) 개념
□ 멀티캐스트(미리 지정한 다수의 컴퓨터에 데이터를 전송하는 기능)를 지원하는 라우터가 멀티캐스트 그룹에 가입한 네트워크 내의 호스트를 관리하기 위해 사용하는 프로토콜
2) 특징
□ IGMP를 수행하는 호스트와 멀티캐스트를 허용하는 라우터 사이에서만 이루어지기 때문에 TTL은 1
□ report , query 메시지 사용