ICMP란 무엇인가요?
인터넷 제어 메시지 프로토콜 정의
인터넷 제어 메시지 프로토콜(ICMP)이란? 인터넷 제어 메시지 프로토콜(Internet Control Message Protocol, ICMP)은 네트워크 장치에서 네트워크 통신 문제를 진단하는 데 사용하는 네트워크 계층 프로토콜입니다. ICMP는 주로 데이터가 의도한 대상에 적시에 도달하는지 여부를 확인하는 데 사용됩니다. 이 프로토콜을 통해 디바이스는 네트워크 오류를 통신할 수 있으며, 일반적으로 네트워크 진단에서 다양한 문제를 해결하고 보고하는 데 사용됩니다.
일반적인 ICMP 메시지는 ICMP 헤더와 ICMP 데이터의 두 가지 주요 부분으로 구성된 데이터 조각입니다. ICMP 번호는 1이며, 이는 ICMP 패킷이 ICMP 헤더 섹션의 숫자 1로 식별된다는 것을 의미합니다.
헤더에는 메시지 유형과 같은 중요한 정보(매개변수)도 포함되어 있습니다. 예를 들어 ICMP 유형 0은 에코 응답에 사용되며, 유형 3은 연결할 수 없는 대상에 사용됩니다.
OSI 모델에서 ICMP는 네트워크 계층인 레이어 3을 차지합니다. 이 계층은 데이터 패킷 라우팅 및 전달을 담당합니다.
ICMP와 TCP 비교
인터넷 제어 메시지 프로토콜은 다른 프로토콜과 다릅니다:
- TCP 또는 UDP와 달리 ICMP는 메시지를 전송하기 위해 설정된 연결이 필요하지 않습니다. 다른 프로토콜은 두 장치가 통신할 준비가 되었는지 확인하기 위해 연결을 형성해야 할 수 있습니다.
- ICMP 포트는 존재하지 않습니다. 이 프로토콜은 이러한 포트를 사용하지 않으며, ICMP와 연결된 포트도 없습니다.
인터넷 제어 메시지 프로토콜(ICMP)의 기능은?
인터넷 제어 메시지 프로토콜은 네트워크 진단 및 사이버 보안 에 널리 사용됩니다. 주요 기능은 네트워크 문제를 보고하는 것입니다. 장치에서 데이터 패킷을 전송한 후 라우터가 수신하지만 패킷이 너무 크거나 기타 결함이 있는 등의 이유로 거부되면 라우터는 오류를 보고하는 ICMP 메시지를 다시 보냅니다.
ICMP는 네트워크의 상태를 파악하고 디바이스가 데이터를 적시에 올바르게 교환할 수 있는지 확인하는 데 도움이 됩니다. 이 작업을 수행하는 두 가지 일반적인 방법은 추적 경로 유틸리티와 핑(ping) 명령입니다. 컴퓨터의 명령 프롬프트를 사용하여 이 두 가지를 테스트하고 작동 방식을 확인할 수 있습니다.
추적 경로와 핑 명령은 모두 ICMP 패킷을 특정 목적지로 보내고 패킷이 목적지에 도달했는지 여부와 속도를 사용자에게 알려줍니다.
- 1.추적 경로 도구는 좀 더 상세합니다. 이 도구는 데이터의 이동 경로에 대한 정보, 즉 ICMP 패킷이 목적지에 도달하기 위해 통과해야 했던 모든 연결된 라우터와 각 라우터 간에 데이터를 전송하는 데 필요한 시간을 반환합니다.
- 2.핑 유틸리티는 더 간단합니다. ICMP 패킷이 특정 목적지까지 얼마나 빨리 이동하여 응답을 트리거할 수 있는지 측정합니다.
관리자는 두 가지 ICMP 기능 유형을 모두 사용하여 네트워크를 테스트하고 오류의 잠재적 원인을 찾습니다. 네트워크가 제대로 작동하지 않는 경우, 이러한 도구를 먼저 사용하여 문제가 정확히 어디서(데이터 이동의 어느 단계에서) 발생하는지 파악하는 경우가 많습니다.
그러나 ICMP는 DDoS (디도스) 공격을 시작하는 데에도 사용될 수 있습니다. 다음 내용에서 ICMP의 작동 원리를 이해하고 해커가 이 프로토콜을 악용하는 방법에 대해 자세히 알아보세요.
ICMP는 어떻게 작동하나요?
다른 프로토콜과 달리 ICMP는 디바이스가 메시지를 전송하는 데 연결이 설정되어 있지 않아도 됩니다. 이것이 바로 "무연결 프로토콜"이라고 불리는 이유입니다. TCP와 같은 일부 다른 프로토콜은 통신하기 전에 연결을 설정하기 위해 여러 단계의 ‘핸드셰이크’(‘악수’의 영어 단어로 프로토콜 내 정보 처리 동의 과정을 의미함)가 필요합니다.
핑 명령을 예로 들어 네트워킹에서 ICMP가 어떻게 작동하는지 살펴보겠습니다:
- 1.핑(ping) 명령이 전송되면 디바이스는 대상에게 ICMP 에코 요청을 보냅니다.
- 2.대상이 이를 수신하면 ICMP 에코 응답 메시지가 다시 전송됩니다.
- 3.핑 도구는 이 응답을 수신하는 데 걸리는 시간을 측정하고 보고합니다.
- 4.어떤 이유로 인해 대상이 ICMP 에코 요청 패킷을 삭제해야 하는 경우, 문제를 보고하는 메시지를 다시 보냅니다.
DDoS 공격에서 ICMP는 어떻게 사용되나요?
인터넷 제어 메시지 프로토콜은 가장 중요한 프로토콜 중 하나이지만 해커는 이를 악용하여 DDoS 공격을 시작할 수 있습니다.
디도스 공격은 해커가 공격 대상에 대량의 데이터를 쏟아붓는 공격 유형입니다. 이러한 트래픽 폭주는 네트워크와 컴퓨터에 과부하를 일으켜 속도가 느려지거나 충돌을 일으켜 쓸모없게 만드는 경우가 많습니다.
잘못 다운 받은 멀웨어를 통해 디도스 공격이 자행되는 경우가 많습니다. 이러한 공격을 선제적으로 방지하기 위해서는 바이러스 및 위협 방지Pro 같은 안티멀웨어 소프트웨어를 사용하는 것이 좋습니다.
ICMP 플러드(또는 플러딩) 공격
ICMP 플러드 공격(핑 플러딩 공격)은 ICMP의 핑 기능을 사용합니다. 이 공격에서 공격자는 대량의 ICMP 에코 요청으로 표적에 폭주시킵니다.
인터넷 제어 메시지 프로토콜은 대상 컴퓨터가 에코 응답 메시지를 전송하여 각 요청에 응답하도록 요구합니다. 각 응답은 컴퓨터 리소스와 네트워크 대역폭의 아주 작은 부분을 차지합니다. 에코 요청이 수천 또는 수백만 건에 달하면 표적 기기에 과부하가 걸리고 충돌이 발생할 수 있습니다.
ICMP 플러드공격을 수행하는 해커는 이전에 멀웨어에 감염된 컴퓨터 네트워크인 봇넷 을 사용하여 사용자 모르게 작업을 수행하는 경우가 많습니다.
죽음의 핑
죽음의 핑은 핑 도구를 사용하지만 ICMP 플러드보다 더 정교하고 교묘한 방식으로 사용되는 오래된 공격입니다. 이 경우 공격자는 작지만 표적 컴퓨터에서 재조립하면 훨씬 커지는 조작된 조각난 ICMP 패킷을 보냅니다.
각 IPv4 패킷은 65,535바이트 이하여야 합니다. 이는 핑 메시지에도 적용됩니다. 그러나 해커는 악성 패킷을 '잘라내어' 표적 컴퓨터에서 재조립할 때 크기 제한을 초과할 수 있습니다. 이 경우 65,535바이트보다 큰 데이터 패킷을 처리하도록 설계되지 않은 디바이스가 충돌하게 됩니다.
스머프 공격
스머프 공격은 ICMP 플러드 공격과 유사하지만, 이 경우 공격자는 스푸핑된 IP 주소를 사용합니다. 작동 방식은 다음과 같습니다:
- 1.해커가 피해자의 IP 주소를 확보한 후 이를 사용하여 대규모 컴퓨터 네트워크에 대량의 에코 요청을 보냅니다.
- 2.이를 수신한 디바이스는 에코 응답을 보내지만, 첫 번째 ICMP 메시지에 도용된 IP 주소로 위조된 헤더가 포함되어 있기 때문에 응답이 피해자에게 전송됩니다.
- 3.요청이 많으면 피해자는 악성 트래픽으로 넘쳐나게 됩니다.
ICMP 리다이렉트 공격
리디렉션은 라우터가 패킷이 잘못 라우팅되고 있다고 판단하여 발신자에게 동일한 목적지로 전송되는 후속 패킷에 대해 다른 라우터를 사용해야 함을 알리고자 할 때 사용됩니다. 주로 ICMP 리디렉션 메시지는 라우팅 프로세스를 보다 효율적으로 만드는 데 사용됩니다.
네트워크 세그먼트에 라우터가 두 대 있다고 가정해 보겠습니다. 한 라우터는 네트워크 세그먼트의 기본 게이트웨이이고 다른 라우터는 특정 대상 네트워크/호스트에 대한 더 나은 경로를 가지고 있습니다. ICMP 리디렉션 메시지는 첫 번째 홉 라우터가 네트워크 세그먼트 내부의 컴퓨터에 동일한 네트워크 세그먼트에 패킷을 특정 대상 네트워크/호스트로 더 효율적으로 전달할 수 있는 다른 라우터가 있음을 알리기 위해 전송됩니다.
하지만 공격자는 ICMP 리디렉션을 사용하여 피해자의 라우팅을 변경할 수 있습니다. 호스트가 ICMP 리디렉션 메시지를 수신하면 메시지에 따라 라우팅 테이블을 수정합니다. 유효성 검사가 없기 때문에 공격자는 피해자가 라우팅 정보를 특정 방식으로 설정하기를 원할 경우 스푸핑된 ICMP 리디렉션 메시지를 피해자에게 보내고 피해자가 라우팅 테이블을 수정하도록 속일 수 있습니다.
ICMP의 장점은 무엇인가요?
오용 가능성에도 불구하고 ICMP는 여전히 전체 인터넷에 매우 중요합니다. 이 기능은 사이버 보안 전문가와 네트워크 관리자를 위한 진단 도구로 사용되어 네트워크 진단 및 문제 해결을 가능하게 합니다. 많은 네트워크 모니터링 솔루션이 ICMP 프로토콜을 사용합니다.
자주 묻는 질문
ICMP는 핑과 같은 건가요?
ICMP는 네트워크 계층 프로토콜이며, 핑(ping) 명령은 그 기능 중 하나입니다. 핑 도구를 사용하면 데이터 패킷이 목적지에 도달했는지 여부와 응답을 받는 데 걸리는 시간을 빠르게 확인할 수 있습니다. Ping은 네트워크의 지정된 인터페이스로 ICMP 에코 요청을 전송하고 응답을 기다리는 방식으로 작동합니다.
ICMP 핑은 어떻게 작동하나요?
ping 명령은 대상 장치에 ICMP 에코 요청을 보냅니다. 장치가 이를 수신하면 ICMP 에코 응답을 다시 보냅니다. 핑 유틸리티는 요청을 보내고 응답을 받을 때까지의 시간을 측정합니다.
ICMP와 TCP의 차이점은 무엇인가요?
ICMP는 메시지를 보내기 위해 연결이 설정되어 있지 않아도 되지만, TCP는 장치 간 통신을 허용하기 전에 '핸드셰이크’를 수행해야 합니다. 또한 ICMP는 특정 포트를 타겟팅하는 것도 허용하지 않습니다.
ICMP는 IP를 통한 것인가요?
ICMP는 마치 상위 프로토콜인 것처럼 IP의 기본 지원을 사용하지만 실제로는 IP의 필수적인 부분입니다. ICMP 메시지가 표준 IP 패킷에 포함되어 있기는 하지만, ICMP 메시지는 일반적으로 일반 IP 처리와 구별되는 특수한 경우로 처리됩니다.
ICMP 포트를 어떻게 찾나요?
ICMP는 포트 개념이 없습니다. ICMP 메시지는 IP 헤더의 일부로 전달되며, 일반적인 TCP 또는 UDP와 같은 포트 번호가 없습니다.
클릭 한 번으로 온라인 보안을 시작해 보세요.
세계 최고의 VPN으로 보안을 유지하세요