📚 네트워크 · 패킷 분석 › 05. 네트워크 스캔 징후 분석 — 209편
이전 글: 208. SYN Scan · 다음 글: 210. Port Range Scan

1. 개념

UDP Scan 은 UDP 포트에 데이터그램을 보내고, 돌아오는 응답 종류로 포트 상태를 판단하는 방식입니다. UDP에는 연결 수립 과정이 없기 때문에 TCP처럼 SYN/ACK·RST로 판단할 수 없고, ICMP 오류 메시지와 서비스 응답에 의존합니다.

DNS(53), NTP(123), SNMP(161), NetBIOS(137), IKE(500), SSDP(1900) 같은 UDP 서비스는 설정이 잘못되면 정보 노출이나 증폭 공격에 악용될 수 있어, 정찰에서 따로 확인하는 대상입니다. UDP 스캔 유형 전반의 특징 비교는 217. UDP Port Scan 특징에서 다루고, 이 글은 한 호스트에 대한 UDP 포트 확인이 남기는 흔적에 집중합니다.

대상 응답판단방어 측에서 보이는 것
UDP 응답open서비스가 응답 패킷 전송
ICMP Type 3, Code 3 (Port Unreachable)closed대상 호스트가 ICMP 오류를 내보냄
ICMP Type 3, 기타 Code(1, 2, 9, 10, 13)filtered라우터·방화벽이 ICMP 오류 전송
무응답open|filtered차단 로그 또는 아무 기록 없음

2. 동작 원리

스캐너 ── UDP → 대상:53  (DNS 질의 형식 데이터)  ──→ DNS 응답        → open
스캐너 ── UDP → 대상:69  (빈 데이터)             ──→ ICMP 3/3        → closed
스캐너 ── UDP → 대상:161 (빈 데이터)             ──→ 무응답          → open|filtered
                                                    (서비스는 형식이 맞지 않는 요청을 무시)
        ↓
대상 커널: 닫힌 포트마다 ICMP Port Unreachable 생성 → 대상의 "출발" ICMP가 대량 발생
        ↓
대상 커널의 ICMP 오류 발생 속도 제한 → 스캔이 느려지고 오래 지속됨

두 가지 점이 방어자에게 중요합니다.

  • 흔적이 대상 쪽 출발 트래픽에도 남습니다. 닫힌 포트가 많을수록 대상 호스트가 스캐너에게 ICMP Port Unreachable을 대량으로 보냅니다. 경계 방화벽의 아웃바운드 ICMP 로그가 UDP 스캔의 단서가 됩니다.
  • 서비스별 프로브: 열린 UDP 서비스는 형식이 맞는 요청에만 응답하므로, 스캔 도구는 잘 알려진 포트에 DNS 질의, SNMP 요청, NTP 요청 같은 프로토콜 형식을 갖춘 데이터를 보내기도 합니다. 이 때문에 서비스 로그에 정상처럼 보이는 요청이 한 건씩 남을 수 있습니다.

Linux 등 많은 운영체제는 ICMP 오류 메시지 발생 속도를 제한합니다. 그래서 UDP 스캔은 TCP 스캔보다 훨씬 느리게, 오래 이어지는 모양으로 나타나는 경우가 많습니다.


3. 주요 특징

기준정상 UDP 통신UDP Scan
목적지 포트서비스 포트 1~2개(53, 123 등)여러 포트, 닫힌 포트 다수 포함
ICMP Port Unreachable가끔(응답 지연 후 클라이언트 포트 닫힘)한 출발지를 향해 대량
요청 데이터프로토콜 형식에 맞음빈 데이터 또는 최소 형식 프로브
지속 시간짧은 질의·응답 반복속도 제한 때문에 길게 이어짐
  • 판단 불확실성: 무응답은 열림과 필터링을 구분할 수 없으므로, 공격자도 확신을 얻기 어렵습니다. 반대로 방어 측에서는 무응답 차단 로그만 남아 규모 파악이 쉽지 않습니다.
  • UDP 서비스 로그: SNMP 에이전트는 잘못된 커뮤니티 문자열 요청을 로그나 인증 실패 트랩으로 남길 수 있고, DNS 서버는 쿼리 로그에 기록할 수 있습니다(설정에 따라 다름).

4. 예시

실습 예시 — 본인 소유 실습망 서버에서 UDP 스캔 흔적을 확인하는 방어 측 명령입니다(Rocky/Ubuntu 공통, 값은 환경마다 다름).

# 서버가 내보내는 ICMP Port Unreachable 캡처
sudo tcpdump -nn -i ens33 'icmp[icmptype] == icmp-unreach and icmp[icmpcode] == 3'

# 캡처 파일에서 ICMP 오류 안에 담긴 원래 UDP 목적지 포트 분포 (Wireshark가 내부 헤더를 해석)
tshark -r /tmp/udp.pcapng -Y 'icmp.type == 3 && icmp.code == 3' \
  -T fields -e ip.dst -e udp.dstport | sort -u | awk '{c[$1]++} END {for (s in c) print c[s], s}'

tcpdump 출력 형식 예시(값은 환경마다 다름):

11:02:13.401 IP 192.168.10.20 > 192.168.10.50: ICMP 192.168.10.20 udp port 69 unreachable, length 36
11:02:14.402 IP 192.168.10.20 > 192.168.10.50: ICMP 192.168.10.20 udp port 111 unreachable, length 36
11:02:15.403 IP 192.168.10.20 > 192.168.10.50: ICMP 192.168.10.20 udp port 137 unreachable, length 36
관찰해석
서버 → 한 출발지로 Port Unreachable 연속그 출발지가 여러 UDP 포트를 확인 중
약 1초 간격서버의 ICMP 오류 속도 제한이 적용된 모양일 수 있음
내부 헤더의 포트가 계속 바뀜수직형 UDP 포트 확인

Wireshark에서는 icmp.type == 3 && icmp.code == 3 필터 후 패킷 상세의 내부 UDP 헤더를 펼쳐 원래 목적지 포트를 확인합니다.


5. 보안 관점

  • 외부에 열린 UDP 서비스는 정보 노출(SNMP 기본 커뮤니티, NetBIOS 이름 정보)이나 반사·증폭 공격의 반사기로 악용될 수 있습니다. UDP 스캔에 open으로 응답한 포트는 노출 의도를 우선 점검합니다.
  • 서버가 닫힌 포트마다 ICMP를 보내는 것 자체가 정보 노출입니다. 경계에서 불필요한 UDP를 무응답 차단하면 정찰 결과가 open|filtered로 흐려집니다.
  • 내부에서 SNMP·NetBIOS 포트로의 UDP 확인이 대량 발생하면 내부 자산 정보 수집 시도일 수 있습니다.

6. SOC 관점

흔적 위치확인 내용
경계 방화벽인바운드 UDP 다수 포트 차단, 아웃바운드 ICMP Type 3 Code 3
IDSUDP 포트 스캔, SNMP·DNS 프로브 관련 Alert
서비스 로그SNMP 인증 실패, 비정상 DNS 질의
패킷 캡처ICMP 오류 내부 헤더의 원래 포트

관제자가 확인할 질문

  • 우리 서버가 한 출발지로 ICMP Port Unreachable을 몇 건, 몇 개 포트에 대해 보냈는가?
  • UDP 응답이 나간 포트(open)가 있는가? 그 서비스는 외부 노출이 의도된 것인가?
  • 스캔 이후 같은 출발지의 SNMP·DNS 요청이 증가했는가?

오탐 주의: traceroute(Linux 기본)는 33434번부터 증가하는 UDP 포트로 요청을 보내므로 UDP 스캔처럼 보입니다. 하지만 TTL이 1부터 증가하고 중간 라우터의 ICMP Time Exceeded(Type 11)가 함께 보인다는 점이 다릅니다. 응답이 늦게 도착한 DNS 응답 때문에 클라이언트가 Port Unreachable을 보내는 경우도 흔합니다.


7. 핵심 정리

  • UDP Scan은 Handshake가 없어 UDP 응답, ICMP Port Unreachable, 무응답으로 포트 상태를 판단합니다.
  • 닫힌 포트가 많으면 대상 호스트가 ICMP Type 3 Code 3을 대량으로 내보내므로 아웃바운드 ICMP가 단서입니다.
  • ICMP 오류 속도 제한 때문에 UDP 스캔은 느리고 오래 지속되는 모양으로 나타나는 경우가 많습니다.
  • 열림으로 응답한 SNMP·DNS·NTP 등은 정보 노출·증폭 악용 여부를 우선 점검합니다.
  • traceroute는 TTL 증가와 Time Exceeded 응답으로 UDP 스캔과 구분합니다.
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글