📚 네트워크 · 패킷 분석 › 05. 네트워크 스캔 징후 분석 — 217편
이전 글: 216. TCP Port Scan 특징 · 다음 글: 218. ICMP Scan

1. 개념

UDP 스캔의 응답 판단(UDP 응답, ICMP Port Unreachable, 무응답)은 209. UDP Scan에서 다뤘습니다. 이 글은 그 원리를 바탕으로 UDP 스캔이 로그·통계 수준에서 TCP 스캔과 어떻게 다르게 보이는지, 그리고 비슷해 보이는 다른 UDP 이상 트래픽과 어떻게 구분하는지를 정리합니다.

비교TCP 포트 스캔UDP 포트 스캔
연결 개념Handshake로 상태 명확없음, 방화벽이 가상 세션으로 추적
닫힘 응답RST (TCP 안에서 처리)ICMP Type 3 Code 3 (다른 프로토콜로 응답)
속도빠름대상의 ICMP 속도 제한 때문에 느림
대상 포트 수수백~전체수십~수백 개 위주
방화벽 로그TCP 차단·세션UDP 차단 + 아웃바운드 ICMP

2. 동작 원리

UDP 스캔의 흔적은 요청(UDP)과 응답(ICMP)이 서로 다른 프로토콜로 기록된다는 점이 핵심입니다. 로그를 프로토콜별로 따로 보면 연결이 보이지 않으므로, 방향과 시간을 맞춰 묶어야 합니다.

[외부 출발지] ── UDP 여러 포트 ──→ [경계 방화벽] ──→ [대상 서버]
                                    │                    │
                         인바운드 UDP 허용·차단 로그     닫힌 포트: ICMP 3/3 생성
                                    │                    │
                                    ↓                    ↓
                         아웃바운드 ICMP 로그 ←──── 서버 → 출발지 ICMP
                                    ↓
SIEM: (출발지 UDP 요청) + (대상 → 출발지 ICMP 3/3)을 같은 시간대로 결합
                                    ↓
      UDP 응답이 나간 포트 = 열림 확인 → 노출 서비스 점검

자주 확인되는 UDP 포트와 응답 시 노출되는 정보는 다음과 같습니다.

포트서비스응답 시 드러날 수 있는 것추가 위험
53DNS재귀 질의 허용 여부, 버전 문자열(설정 시)반사·증폭
123NTP시각 서비스 존재, 관리 질의 응답반사·증폭
137NetBIOS Name호스트명·작업그룹내부 정보 노출
161SNMP장비 정보(커뮤니티 문자열 취약 시)설정 정보 노출
500IKEVPN 장비 존재VPN 대상 공격 준비
1900SSDP장치 종류·서비스 목록반사·증폭

3. 주요 특징

  • 느리고 길게 이어짐: 대상 서버가 ICMP 오류 전송 속도를 제한하면 UDP 스캔은 TCP보다 훨씬 오래 걸립니다. 짧은 시간 창의 임계치 탐지에서는 건수가 적어 보일 수 있습니다.
  • 요청 데이터의 두 모양: 빈 UDP(데이터 0바이트) 요청과, 잘 알려진 포트에 보내는 프로토콜 형식 요청(DNS 질의, SNMP 요청 등)이 섞입니다.
  • TCP 스캔과 함께 발생: 실제로는 TCP 스캔 후 소수의 UDP 포트만 추가로 확인하는 경우가 많아, 같은 출발지의 TCP 스캔 기록과 이어서 봅니다.

UDP 이상 트래픽 세 가지는 모양이 비슷하므로 구분 기준이 필요합니다.

기준UDP 스캔UDP Flood반사 공격 흔적(피해 측)
목적지 포트여러 포트, 포트당 1~2회소수 포트에 대량우리 쪽 임의 포트
출발지보통 실제 주소 1개다수·위조 가능53·123·1900 등 서비스 포트에서 옴
패킷 크기작음다양, 대역폭 소모큰 응답 패킷
목적열린 포트 확인서비스 거부서비스 거부(제3자 경유)

4. 예시

실습 예시 — 본인 소유 실습망의 Zeek conn.log에서 출발지별 UDP 목적지 포트 수와 응답 여부를 요약하는 방어 측 명령입니다(값은 환경마다 다름).

# UDP만: 출발지·대상 쌍별 서로 다른 목적지 포트 수
zeek-cut proto id.orig_h id.resp_h id.resp_p < conn.log \
  | awk '$1=="udp"' | sort -u \
  | awk '{c[$2" "$3]++} END {for (k in c) print c[k], k}' | sort -rn | head

# 대상이 UDP로 응답한 포트 (resp_bytes > 0)
zeek-cut proto id.orig_h id.resp_p resp_bytes < conn.log \
  | awk '$1=="udp" && $2=="203.0.113.45" && $4>0 {print $3}' | sort -n | uniq

결과 형식 예시(값은 환경마다 다름):

100 203.0.113.45 192.168.10.20
  2 192.168.10.15 192.168.10.2

53
161
관찰해석
한 쌍에서 UDP 목적지 포트 100개UDP 포트 스캔 형태
내부 단말 → DNS 서버 2개 포트정상 질의(53) 등, 스캔 아님
53·161에서 응답 데이터 발생DNS·SNMP가 외부 출발지에 응답 → 노출 의도·설정 점검

5. 보안 관점

  • UDP 서비스는 TCP보다 관리 대상에서 빠지기 쉽습니다. 스캔에 응답한 UDP 포트는 정보 노출과 증폭 공격 반사기 악용 두 측면에서 점검합니다.
  • SNMP가 외부 출발지에 응답했다면 커뮤니티 문자열이 기본값이거나 약한지 즉시 확인합니다.
  • 경계에서 불필요한 UDP를 무응답 차단하고 서버의 ICMP Port Unreachable이 외부로 나가지 않도록 하면 상대의 판단이 open|filtered로 흐려집니다.

6. SOC 관점

흔적 위치확인 내용
방화벽인바운드 UDP 다수 포트, 아웃바운드 ICMP 3/3
Zeek·NetFlowUDP 목적지 포트 수, 응답 바이트가 있는 포트
서비스 로그DNS 쿼리 로그, SNMP 인증 실패
IDSUDP 스캔 임계치, SNMP·DNS 프로브 Alert

관제자가 확인할 질문

  • 같은 출발지의 TCP 스캔 기록이 앞뒤로 있는가?
  • UDP로 응답이 나간 포트는 무엇이며, 외부 노출이 의도된 것인가?
  • 짧은 시간 창에서는 건수가 적더라도, 몇 시간 단위로 보면 목적지 포트가 누적되는가?

오탐 주의: DNS 서버가 여러 권한 서버에 질의할 때나 VoIP·게임·P2P 프로그램은 UDP로 다양한 포트와 통신합니다. 이 경우 실제 데이터 교환이 이어지고 목적지가 다수의 외부 주소라는 점이 다릅니다. traceroute의 UDP 사용과의 구분은 209. UDP Scan을 참고합니다.


7. 핵심 정리

  • UDP 스캔은 요청(UDP)과 닫힘 응답(ICMP)이 다른 프로토콜로 기록되므로 방향·시간을 맞춰 결합해 봐야 합니다.
  • ICMP 속도 제한 때문에 느리고 길게 이어져 짧은 시간 창 탐지에서 놓치기 쉽습니다.
  • 실제로는 TCP 스캔 뒤 소수 UDP 포트를 추가 확인하는 경우가 많습니다.
  • UDP Flood, 반사 공격 흔적과는 포트 분포, 출발지, 패킷 크기로 구분합니다.
  • 응답한 UDP 서비스는 정보 노출과 증폭 악용 두 측면에서 우선 점검합니다.
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글