📚 네트워크 · 패킷 분석 › 05. 네트워크 스캔 징후 분석 — 215편
이전 글: 214. 특정 Port Scan · 다음 글: 216. TCP Port Scan 특징
전체 Port Scan 은 한 대상의 TCP(또는 UDP) 포트 1~65535를 모두 확인하는 스캔입니다. 자주 쓰는 포트 목록만 확인하는 기본 스캔과 달리, 비표준 포트에 옮겨 둔 관리 서비스나 임의 포트에서 대기하는 백도어까지 찾아낼 수 있습니다.
관제자 입장에서 전체 스캔은 대상 하나에 대한 철저한 조사를 뜻합니다. 범위를 복원하는 일반 방법은 210. Port Range Scan에서, 소수 포트만 노리는 경우는 214. 특정 Port Scan에서 다뤘습니다.
| 구분 | 자주 쓰는 포트 목록 | 전체 포트 |
|---|---|---|
| 대상 포트 수 | 약 1,000개 | 65,535개 |
| 한 대상당 이벤트 | 약 1,000건 | 65,000건 이상 |
| 찾을 수 있는 것 | 일반 노출 서비스 | 비표준 포트 서비스, 백도어 대기 포트 |
| 의도 | 전반적 조사 | 특정 대상 정밀 조사 |
전체 범위라도 포트 하나에 대한 요청·응답 원리는 같습니다(216. TCP Port Scan 특징). 차이는 규모이고, 규모가 방어 측 장비와 로그에 직접 영향을 줍니다.
한 출발지 → 한 대상, 포트 1~65535 요청
↓
방화벽: 대부분 차단 → 차단 로그 수만 건 생성
│ (LOG 속도 제한·샘플링이 있으면 일부만 기록)
↓
IDS: 임계치 초과 Alert는 보통 초기에 1회 또는 요약 형태
↓
SIEM: 수집량 급증 → 저장·라이선스 한도, 검색 지연
↓
관제자: 서로 다른 포트 수·소요 시간·열린 포트 확인
| 방어 측 요소 | 전체 스캔의 영향 | 확인할 점 |
|---|---|---|
| 방화벽 로그 | 대상당 수만 건 | 로그 속도 제한으로 누락되었는지 |
| IDS Alert | 1건 또는 소수의 요약 Alert | Alert 건수로 규모를 판단하지 않기 |
| SIEM 저장소 | 일시적 수집량 증가 | 수집 지연·버려진 이벤트 여부 |
| 상태 테이블 | 허용 정책 포트마다 세션 생성 | 세션 테이블 사용률 |
| 판단 지표 | 기본 스캔 | 전체 스캔 |
|---|---|---|
| distinct 목적지 포트 | 약 1,000 | 65,000 이상 |
| 최대 포트 번호 | 수만 대(목록에 따라) | 65535 근처 |
| 포트 분포 | 잘 알려진 포트 위주, 비연속 | 전 구간 균일 |
실습 예시 — 본인 소유 실습망에서 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개 | 전체가 아닌 기본 목록 스캔 |
| 흔적 위치 | 확인 내용 |
|---|---|
| 방화벽 차단·허용 로그 | 대상별 distinct 포트, 허용 세션이 생긴 포트 |
| IDS | 요약 Alert 시점과 출발지 |
| Zeek·NDR | conn_state 분포, 응답 있는 포트 |
| SIEM 상태 | 수집량 급증, 누락 이벤트 |
관제자가 확인할 질문
오탐 주의: 인가된 취약점 점검은 전체 포트 스캔을 포함하는 경우가 많습니다. 점검 공유 내역과 대상·시간이 맞는지 확인하고, 벗어난 대상은 예외 처리하지 않습니다.