정보보안-이론/XX에 대하여

ICMPv4에 대하여

CEH(Certified Ethical Hacker)를 공부하며 네트워크 프로토콜에 대한 공부를 또 열심히 하고 있다. 한 때 상어 좀 썼던 사람으로 ICMP에 대해 공부한 내용을 공유한다.


ICMP

ICMP는 네트워크 상에서 오류 메시지를 전송하는데 사용하는 프로토콜이다.(예를 데이터 전송 목적으로 사용하지는 않는다.) RFC 792에 정의되어 있으며 프로토콜 넘버는 1번이다.(와 첫 빠따) 

* 흔히 볼 수 있는 ICMP를 발생시키는 메시지는 영원한 네트워크 관리자의 친구 PING이다.(ICMP 0, 8) IP 다이어그램을 사용하는 패킷의 TTL이 0이 되면 시간초과(ICMP 11)이 발생한다.

 

 

ICMP의 구조

ICMP는 IPv4의 헤더 뒤에서 시작된다. 고정된 8바이트의 헤더와 나머지는 가변된 길이를 가지고 있다. 

 

  • offset 0byte : 타입
  • offset 1byte : 코드(서브타입)
  • offset 2~3byte : CheckSum
  • offset 4~byte : offset 0byte인 타입에 따라 길이, 내용이 다름

 

ICMP 제어 타입

ICMP는 v4와 v6를 포함하여 예약된 번호인 37-255를 제외 0~36의 37개의 타입이 존재한다. 

각 타입은 ICMP헤더 offset 1의 서브타입으로 타입별 세부적인 정보를 지시할 수 있다.
흔하게 사용되는 ICMPv4에는 다음과 같은 ICMP 타입과 그에 따른 서브타입이 존재한다.

  • ICMP Type 0 : Echo Reply(Ping의 응답, Type 8과 같이 쓰인다.)
  • ICMP Type 3 : Destination Unreachable(목적지 도달 불가)
    ICMP Type 3-0 : Network Unreachable(목적지로 가는 경로가 없을 때)
    ICMP Type 3-1 : Host Unreachable(최종 목적지 호스트에 도달할 수 없을 때)
    ICMP Type 3-2 : Protocol Unreachable(목적지 호스트에서 지정된 프로토콜을 사용할 수 없을 때)
    ICMP Type 3-3 : Port Unreachable(목적지 호스트에 특정 포트번호를 사용할 수 없을 때)
    ICMP Type 3-4 : Fragmentation Needed(단편화<Fragmentation>이 필요한데, Defragmentation Flag가 설정된 경우)
  • ICMP Type 4 : Source Quench(현재는 사용하지 않는다. 통신량의 폭주로 목적지나 라우터의 버퍼를 초과한 경우 발생된다.)
  • ICMP Type 5 : Redirect(패킷을 받은 라우터가 목적지로 가는 더 짧은 경로를 갖는 라우터를 알고 있을 때 사용됨)
    ICMP Type 5-0 : Redirect for Destination Network
    ICMP Type 5-1 : Redirect for Destination Host
    ICMP Type 5-2 : Redirect for Destination Network Based on ToS(Type of Service)
    ICMP Type 5-3 : Redirect for Destination Host Based on ToS(Type of Service)
  • ICMP Type 8 : Echo Request(Ping의 요청, Type 0와 같이 쓰인다.)
  • ICMP Type 9 : Router Advertisement(자신이 라우터임을 주기적으로 알리는 네트워크 메시지)
  • ICMP Type 10 : Router Solicitation(라우터 탐색용 질의 메시지, Type 9번으로 응답하거나 한다.)
  • ICMP Type 11 : Time Exceed(패킷이 TTL을 넘어갈때 << 루프나 스톰 발생 / TTL이 너무 낮은 경우) 

CheckSum
송신자와 수신자는 모두 1의 보수연산을 한 체크섬으로 패킷의 무결성을 보증한다. 만약 체크섬이 일치하지 않는 겨우 패킷은 DROP 된다.

'정보보안-이론 > XX에 대하여' 카테고리의 다른 글

CAM Table에 대하여  (0) 2021.05.14
OLE에 대하여  (0) 2021.05.13
Cavity Virus에 대하여  (0) 2021.05.12
USBDumper에 대하여  (0) 2021.05.12
정규표현식에 대하여  (0) 2021.04.17