네트워크 보안 - Port Scan · Nmap 완전 정리

Phase 2  |  Network Security

Port Scan · Nmap 완전 정리

스캔 목적 · 유형별 동작 원리 · TCP 플래그 분석 · Nmap 옵션 · 탐지 및 방어까지

01 Port Scan 개념 및 목적

Port Scan은 공격 그 자체가 아닌 공격 준비 단계(정찰 단계)에 해당한다. MITRE ATT&CK 기준으로 TA0043 Reconnaissance 전술에 분류된다.

서비스 확인

  • 열린 포트 목록 파악
  • 실행 중인 서비스 식별
  • 서비스 버전 정보 수집

취약점 탐색

  • 버전 기반 CVE 매핑
  • 알려진 취약점 여부 분석
  • 공격 가능한 진입점 식별

네트워크 구조 파악

  • 방화벽 정책 분석
  • 필터링 방식 확인
  • 내부 구조 추론
포트 상태 3가지
OPEN
열림

서비스가 실행 중이며 연결 수락. 공격자의 주요 목표

CLOSED
닫힘

포트 접근 가능하나 서비스 없음. RST 응답 반환

FILTERED
필터됨

방화벽이 패킷 차단. 응답 없음 또는 ICMP Unreachable

02 TCP Open Scan (Connect Scan) — -sT

완전한 3-Way Handshake를 수행하는 가장 기본적인 스캔 방식. 실제 연결이 이루어지므로 서버 로그에 기록된다.

포트 OPEN 시 흐름
TCP Connect Scan — Open Port
Attacker
SYN
Target
Attacker
SYN+ACK
Target
OPEN 확인
Attacker
RST
Target
연결 즉시 해제
포트 CLOSED 시 흐름
TCP Connect Scan — Closed Port
Attacker
SYN
Target
Attacker
RST+ACK
Target
CLOSED
탐지 특징  |  완전한 TCP 연결이 수립되므로 서버 애플리케이션 로그 및 방화벽 로그에 접속 기록이 남는다. 탐지 가능성 가장 높음.
03 SYN Scan (Half-Open Scan) — -sS

가장 많이 사용되는 Stealth Scan. SYN+ACK 수신 후 ACK를 보내지 않고 RST로 연결을 즉시 해제해 완전한 연결을 맺지 않는다.

SYN Scan — Open Port
Attacker
SYN
Target
Attacker
SYN+ACK
Target
OPEN 확인
Attacker
RST
Target
연결 완료 안 함
Stealth 이유  |  ACK를 보내지 않아 3-Way Handshake가 완성되지 않으므로 구형 애플리케이션 로그에는 기록되지 않는다. 그러나 현대 IDS/방화벽은 SYN+RST 패턴을 충분히 탐지한다. Root 권한 필요(raw socket).
04 Stealth Scan 계열 — FIN / NULL / XMAS

TCP 연결을 전혀 맺지 않고 비정상 플래그 조합을 보내 포트 상태를 추론한다. RFC 793 표준에 따르면 열린 포트는 비정상 플래그를 무시하고, 닫힌 포트는 RST로 응답한다.

FIN / NULL / XMAS Scan 응답 원리 (RFC 793)
Attacker
FIN / NULL / XMAS
Open Port
무응답 → OPEN or FILTERED
Attacker
FIN / NULL / XMAS
Closed Port
RST → CLOSED
스캔 유형옵션전송 플래그특징
FIN Scan -sF FIN FIN만 설정. 연결 종료 패킷처럼 위장
NULL Scan -sN 플래그 없음 (0x00) 모든 플래그 비활성. 가장 비정상적인 패킷
XMAS Scan -sX FIN+PSH+URG 크리스마스 트리처럼 여러 플래그 동시 설정
한계  |  Windows 계열 OS는 RFC 793을 엄격히 준수하지 않아 열린 포트도 RST를 반환하는 경우가 있다. 따라서 이 스캔 유형은 Linux/Unix 대상에서만 신뢰도 높음.
05 ACK Scan · UDP Scan

ACK Scan — -sA

  • 포트 Open/Closed 판별이 목적이 아님
  • 방화벽 규칙 및 필터링 정책 파악이 목적
  • ACK 전송 시 RST 응답 → Unfiltered
  • 응답 없음 → Filtered (방화벽 존재)
  • 방화벽 우회 가능 여부 사전 조사에 사용

UDP Scan — -sU

  • UDP는 연결 기반이 아니므로 판별 어려움
  • UDP 전송 후 응답 없음 → Open or Filtered
  • ICMP Port Unreachable 수신 → Closed
  • 속도 매우 느림 (타임아웃 대기)
  • DNS(53), SNMP(161) 등 UDP 서비스 탐지
UDP Scan 응답 원리
Attacker
UDP Packet
Open Port
무응답 → Open or Filtered
Attacker
UDP Packet
Closed Port
ICMP Unreachable → Closed
06 Decoy Scan — IP 은닉

여러 가짜 출발지 IP(Decoy)와 함께 실제 공격자 IP를 섞어 스캔해 IDS/IPS가 진짜 공격자를 특정하기 어렵게 만드는 기법이다.

# Decoy Scan 예시 — -D 옵션 nmap -D 192.168.1.10,192.168.1.20,ME target_ip # ME = 실제 공격자 IP # 타겟은 여러 IP에서 동시에 스캔 받는 것처럼 보임 # 랜덤 Decoy 자동 생성 nmap -D RND:10 target_ip
한계  |  Decoy IP들도 실제로 패킷을 전송하므로 해당 IP가 라우팅 불가능하면 탐지될 수 있다. 또한 TTL 값과 IP 패턴 분석으로 실제 공격자를 추려낼 수도 있다.
07 Nmap 주요 옵션 정리
-sT
TCP Connect Scan

3-Way Handshake 완료. 로그 남음

-sS
SYN Scan

Half-open. 가장 많이 사용. Root 필요

-sF
FIN Scan

FIN 플래그만. Unix 대상 유효

-sN
NULL Scan

플래그 없음. 가장 비정상적 패킷

-sX
XMAS Scan

FIN+PSH+URG. 트리 모양 플래그

-sU
UDP Scan

UDP 포트 탐지. 속도 느림

-sA
ACK Scan

방화벽 필터링 정책 파악용

-O
OS Detection

TTL, TCP 특성으로 OS 추정

-sV
Version Detection

서비스 버전 정보 수집

-D
Decoy Scan

가짜 IP 혼합으로 공격자 은닉

-p
Port 지정

-p 80,443 or -p 1-1000

-A
Aggressive Scan

OS+Version+Script+Traceroute 종합

# 실무 자주 쓰는 조합 nmap -sS -sV -O 192.168.0.1 # 스텔스 + 버전 + OS nmap -sS -p 1-65535 192.168.0.0/24 # 전 포트 서브넷 스캔 nmap -sU -p 53,161,123 192.168.0.1 # 주요 UDP 포트만 nmap -A 192.168.0.1 # 종합 분석
08 스캔 유형 종합 비교
스캔 유형전송 패킷Open 응답Closed 응답로그 기록탐지 난이도
Connect (-sT) SYN SYN+ACK RST 기록됨 낮음 (쉽게 탐지)
SYN (-sS) SYN SYN+ACK → RST RST 부분 기록 중간
FIN (-sF) FIN 무응답 RST 미기록 높음 (Unix만)
NULL (-sN) 없음(0x00) 무응답 RST 미기록 높음 (Unix만)
XMAS (-sX) FIN+PSH+URG 무응답 RST 미기록 높음 (Unix만)
UDP (-sU) UDP 무응답 ICMP Unreachable 부분 기록 중간 (느림)
ACK (-sA) ACK RST (Unfiltered) RST 부분 기록 중간 (목적 다름)
09 Port Scan 탐지 및 방어
  • IDS/IPS 규칙 : 짧은 시간 내 다수 포트로 SYN 패킷 → 포트 스캔으로 판단. Snort/Suricata 룰로 탐지
  • 방화벽 기본 거부 정책 : Default Deny 적용, 허용 포트만 화이트리스트. FILTERED 상태 증가로 공격자 정보 수집 어렵게
  • 포트 허니팟 : 사용하지 않는 포트에 가짜 서비스 구동 → 접근 시 즉시 스캔 탐지 알림
  • Rate Limiting : 동일 IP에서 초당 SYN 패킷 수 제한. iptables --hashlimit, --connlimit 활용
  • SYN Flood 동시 탐지 : 포트 스캔과 SYN Flood는 패턴 유사 → 함께 탐지 규칙 구성
  • 서비스 최소화 : 불필요한 포트/서비스 비활성화. 공격 표면 자체를 줄이는 것이 근본 대책
# iptables — SYN 스캔 Rate Limiting 예시 iptables -A INPUT -p tcp --syn \ -m hashlimit \ --hashlimit-name syn_scan \ --hashlimit-above 20/sec \ --hashlimit-mode srcip \ -j DROP # Snort 룰 — SYN Scan 탐지 예시 alert tcp any any -> $HOME_NET any \ (flags:S; \ threshold: type threshold, track by_src, count 20, seconds 1; \ msg:"Port Scan Detected"; sid:1000001;)