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

1. 개념

전체 Port Scan 은 한 대상의 TCP(또는 UDP) 포트 1~65535를 모두 확인하는 스캔입니다. 자주 쓰는 포트 목록만 확인하는 기본 스캔과 달리, 비표준 포트에 옮겨 둔 관리 서비스나 임의 포트에서 대기하는 백도어까지 찾아낼 수 있습니다.

관제자 입장에서 전체 스캔은 대상 하나에 대한 철저한 조사를 뜻합니다. 범위를 복원하는 일반 방법은 210. Port Range Scan에서, 소수 포트만 노리는 경우는 214. 특정 Port Scan에서 다뤘습니다.

구분자주 쓰는 포트 목록전체 포트
대상 포트 수약 1,000개65,535개
한 대상당 이벤트약 1,000건65,000건 이상
찾을 수 있는 것일반 노출 서비스비표준 포트 서비스, 백도어 대기 포트
의도전반적 조사특정 대상 정밀 조사

2. 동작 원리

전체 범위라도 포트 하나에 대한 요청·응답 원리는 같습니다(216. TCP Port Scan 특징). 차이는 규모이고, 규모가 방어 측 장비와 로그에 직접 영향을 줍니다.

한 출발지 → 한 대상, 포트 1~65535 요청
      ↓
방화벽: 대부분 차단 → 차단 로그 수만 건 생성
      │        (LOG 속도 제한·샘플링이 있으면 일부만 기록)
      ↓
IDS: 임계치 초과 Alert는 보통 초기에 1회 또는 요약 형태
      ↓
SIEM: 수집량 급증 → 저장·라이선스 한도, 검색 지연
      ↓
관제자: 서로 다른 포트 수·소요 시간·열린 포트 확인
방어 측 요소전체 스캔의 영향확인할 점
방화벽 로그대상당 수만 건로그 속도 제한으로 누락되었는지
IDS Alert1건 또는 소수의 요약 AlertAlert 건수로 규모를 판단하지 않기
SIEM 저장소일시적 수집량 증가수집 지연·버려진 이벤트 여부
상태 테이블허용 정책 포트마다 세션 생성세션 테이블 사용률

3. 주요 특징

  • 서로 다른 목적지 포트 수가 65,000 이상이면 전체 범위로 판단할 수 있습니다. 차단 로그만 세면 허용 포트가 빠져 조금 적게 나옵니다.
  • 소요 시간이 김: 같은 속도라도 기본 스캔의 약 65배 분량이므로 수 분~수 시간에 걸칩니다. 여러 날에 나눠 진행되면 하루치만 봐서는 부분 범위처럼 보입니다(225. Slow Scan).
  • UDP 전체 스캔은 드묾: UDP는 응답 판단이 느려 전체 범위를 확인하는 데 매우 오래 걸리므로 실제로는 TCP 전체 스캔이 대부분입니다(217. UDP Port Scan 특징).
  • 열린 포트 결과의 가치가 큼: 기본 목록에 없는 높은 번호 포트에서 열림 응답이 나왔다면, 관리자도 모르는 서비스일 가능성을 점검합니다.
판단 지표기본 스캔전체 스캔
distinct 목적지 포트약 1,00065,000 이상
최대 포트 번호수만 대(목록에 따라)65535 근처
포트 분포잘 알려진 포트 위주, 비연속전 구간 균일

4. 예시

실습 예시 — 본인 소유 실습망에서 Zeek conn.log로 한 출발지·대상 쌍의 포트 수와 응답 상태를 요약하는 방어 측 명령입니다(값은 환경마다 다름).

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

# 특정 쌍의 연결 상태 분포 (REJ=SYN에 RST 응답, S0=응답 없음)
zeek-cut id.orig_h id.resp_h conn_state < conn.log \
  | awk '$1=="203.0.113.45" && $2=="192.168.10.20" {s[$3]++} END {for (k in s) print k, s[k]}'

# REJ·S0가 아닌 연결(대상이 응답한 포트)만 추출
zeek-cut id.orig_h id.resp_h id.resp_p conn_state < conn.log \
  | awk '$1=="203.0.113.45" && $4!="REJ" && $4!="S0" {print $3}' | sort -n | uniq

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

65535 203.0.113.45 192.168.10.20
  998 198.51.100.7 192.168.10.21

REJ 65529
S0 2
(그 외 상태) 4

22
80
443
50022
관찰해석
한 쌍에서 65,535개 포트전체 범위 스캔
REJ가 대부분호스트가 닫힌 포트마다 RST로 응답 → 경계에서 무응답 차단이 되지 않음
REJ·S0 외 4개 포트대상이 응답한 열림 후보 → 50022처럼 목록에 없는 포트 우선 확인
다른 쌍의 998개전체가 아닌 기본 목록 스캔

5. 보안 관점

  • 전체 스캔은 "포트 번호를 바꾸면 숨길 수 있다"는 가정을 무너뜨립니다. 높은 번호 포트의 관리 서비스도 발견되므로 노출 여부 자체를 통제해야 합니다.
  • 대상이 닫힌 포트마다 RST를 돌려보내면 스캔이 빨리 끝나고 결과가 정확해집니다. 경계에서 불필요한 포트를 무응답 차단하면 상대가 얻는 정보가 줄어듭니다(204. Nmap 기본 사용법).
  • 로그 속도 제한 때문에 방화벽 로그가 일부만 남았다면, 열린 포트 판단은 허용 세션 로그나 패킷 기록으로 보완합니다.

6. SOC 관점

흔적 위치확인 내용
방화벽 차단·허용 로그대상별 distinct 포트, 허용 세션이 생긴 포트
IDS요약 Alert 시점과 출발지
Zeek·NDRconn_state 분포, 응답 있는 포트
SIEM 상태수집량 급증, 누락 이벤트

관제자가 확인할 질문

  • 대상 하나에 대해 서로 다른 포트 수와 소요 시간은 얼마인가? 여러 날에 걸쳐 나뉘었는가?
  • 열림으로 응답한 포트 중 자산 목록에 없는 서비스가 있는가?
  • 로그 속도 제한·수집 누락으로 일부 기록이 빠지지 않았는가?

오탐 주의: 인가된 취약점 점검은 전체 포트 스캔을 포함하는 경우가 많습니다. 점검 공유 내역과 대상·시간이 맞는지 확인하고, 벗어난 대상은 예외 처리하지 않습니다.


7. 핵심 정리

  • 전체 Port Scan은 1~65535를 모두 확인해 비표준 포트 서비스까지 찾는 정밀 조사입니다.
  • distinct 목적지 포트가 65,000 이상이고 전 구간에 균일하게 분포하면 전체 범위로 판단합니다.
  • 대상당 수만 건의 로그가 생기므로 로그 속도 제한·수집 누락 여부를 함께 확인합니다.
  • IDS Alert 건수는 요약된 값일 수 있어 규모 판단은 원본 로그로 합니다.
  • 기본 목록 밖 높은 번호 포트의 열림 응답은 미확인 서비스로 보고 우선 점검합니다.
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글