정보보안 - 네트워크 ICMP 프로토콜
- ICMP 프로토콜
- 개요
- 3계층 프로토콜
- IP : 신뢰할 수 없는 프로토콜
- ICMP : 에러발생 원인, 네트워크 상태 등 리포트
- 기능
- Error Message 기능
- Query Message (네트워크 상태 조회)
- Type 필드 (Meesage 종류)
- Code 필드 (Type 에 속하는 세부 내용)
- 3계층 프로토콜
- 헤더 구조
- Type : 8bit : ICMP 메시지 유형/용도
- Type 3 : Destination Unreachable
- Code : 8bit : ICMP 메시지의 세부 내용
- Code 3 : Port Unreachable (상대방 UDP 포트가 열려있지 않음 등)
- checksum : 16bit : ICMP 메시지 자체 오류에 대한 검사를 위함
- Rest of header : 타입, 코드에 따라 추가되는 헤더가 있을 경우
- Data Section : 데이터 영역
- Type : 8bit : ICMP 메시지 유형/용도
- 메시지 유형
- Error Message
- Type 3 : Destination Unreachable
- Code 1 (Host Unreachable) : 목적지 호스트로 패킷 전송 실패
- Code 2 (Protocol Unreachable) : 목적지에서 특정 프로토콜을 사용할 수 없을 때
- Code 3 (Port Unreachable) : UDP 포트가 열려있지 않을 때
- Code 4 (Fragmentation needed) : DF Flag bit 이 1로 설정되어 있을 때 단편화를 해야만 하는 경우 리턴 메시지
- Type 5 : Redirection : 라우팅 경로가 잘못되어 새 경로로 보내야 할 경우
- ICMP Redirect 공격 시 이용할 수 있는 Msg
- Type 11 : Time exceeded : 시간초과
- 시간 초과 시 패킷 전부 폐기
- Code 0 : TTL = 0
- Code 1 : Fragment Reassembly time exceeded
- Type 3 : Destination Unreachable
- Query Message
- Type 8 : Echo (ping) Request
- Identifier : 식별자
- Sequence number : 메시지 순번
- Type 0 : Echo (ping) Reply
- Identifier : 식별자
- Sequence number : 메시지 순번
- Request 와 쌍이 맞아야 함
- Type 8 : Echo (ping) Request
- Error Message
- 개요
- ICMP Redirect 공격
- 개요
- ICMP Redirection Message (Type5)를 이용
- 패킷의 경로를 재설정
- 해당 메시지를 수신한 호스트는 자신의 라우팅 테이블을 변경
- 이러한 특성을 이용하여 ICMP Redirect 메시지를 공격자가 만듦
- 패킷이 자신에게 오도록 유도하여 스니핑을 함
- ARP Redirect 공격과의 비교
- ARP Cache Table을 변경, 스니핑
- 예시
- 공격자 IP : 192.168.120.110
- 수신자
- IP : 192.168.120.100
- Default Gateway : 192.168.120.1
- ICMP Redirection Message : 라우팅 경로가 잘못 되었을 때 Host 에게 알려주는 메시지
- IP Packet을 Router / Gateway 가 전달 받고 경로가 잘못되었을 때 ICMP Redirection Message 를 송신
- 공격자는 Src IP를 게이트웨이 IP (192.168.120.1) 로 위조하고 수신자 (192.168.120.100) 에게 ICMP Redirection 메시지를 전송
- 메시지의 목적지 주소 (예: 10.10.10.10) 의 Gateway 주소를 자신의 주소 (192.168.120.110) 으로 설정하여 전송
- 수신자는 공격을 받은 이후 Routing table 에 잘못된 정보를 생성
- Dest: 10.10.10.10
- Netmask : 255.255.255.255
- Gateway : 192.168.120.110
- Interface : 192.168.120.100
- 대처방법
- ICMP Redirect (Type 5) 메시지 자체에 취약점을 가지고 있음
- ICMP Redirect Message 에 라우팅 테이블이 변경되지 않도록 설정 (옵션해제)
- 리눅스
sysctl
(커널 매개변수 변경 등) (런타임 적용)- vi 편집기로
/etc/sysctl.conf
변경 후sysctl -p
로 적용 #echo "net.ipv4.conf.[all|eth0|lo].accept_redirects=0" >> /etc/sysctl.conf
- 송신 차단 :
send_redirects
- 송신 차단 :
- 리눅스
- sysctl
- 커널의 매개변수 변경 등에 사용
sysctl [옵션] [커널매개변수]
-a
: 모든 변수 표시-w
: write -> 변수값 설정-p
: 수정된 파일의 적용
- 예 : ping 신호 차단
sysctl -w net.ipv4.icmp_echo_ignore_all=1
- vi 편집기로
/etc/sysctl.conf
의net.ipv4.icmp_echo_ignore_all=1
설정 #echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf
- 개요
댓글남기기