📚 네트워크 · 패킷 분석 › 05. 네트워크 스캔 징후 분석 — 226편
이전 글: 225. Slow Scan · 다음 글: 227. 다수 IP에 대한 Port 접근

1. 개념

단일 IP에 대한 다중 Port 접근 은 한 출발지가 한 대상 호스트의 여러 포트에 접근하는 패턴으로, 201. 네트워크 스캔이란 무엇인가에서 소개한 수직 스캔(Vertical Scan)의 모양입니다. 상대가 특정 서버 하나에 관심을 두고 그 서버의 노출 서비스를 조사할 때 나타납니다.

이 글은 이 패턴을 발견했을 때 스캔인지 정상 사용인지 판단하고, 상대가 무엇을 알아냈는지 평가하는 분석 절차를 다룹니다. 포트 범위 복원은 210. Port Range Scan, 여러 대상으로 퍼지는 수평형은 227. 다수 IP에 대한 Port 접근에서 다룹니다.

분석 요소확인 내용
출발지내부·외부, 역할, 예외 목록 여부
대상서버 역할, 중요도, 외부 노출 여부
포트서로 다른 포트 수, 범위, 서비스군
결과허용·차단, 응답 종류, 연결 성립 여부
후속열린 포트로의 인증·요청 시도

2. 동작 원리

수직형 접근은 대상 하나에 대해 포트를 바꿔 가며 요청하므로, 로그에서 출발지·목적지 쌍은 고정되고 목적지 포트만 계속 바뀌는 모양이 됩니다. 분석은 다음 순서로 진행합니다.

Alert 또는 이상 징후 (출발지 A → 대상 B, 다수 포트)
      ↓
① 출발지 확인: 예외 목록(점검·자산관리 서버)인가? 내부인가 외부인가?
      ↓
② 쌍 단위 집계: distinct DPT, 기간, 허용/차단 비율
      ↓
③ 정상 다중 포트 사용 가능성 배제 (아래 표 기준)
      ↓
④ 결과 평가: 허용 세션·SYN/ACK·서비스 응답이 있었던 포트 = 상대가 확인한 열린 포트
      ↓
⑤ 후속 행위: 열린 포트로 인증 시도·공격 요청이 이어졌는가?
      ↓
판단: 종결(정상·인가) / 모니터링 / 대응(차단·에스컬레이션)

3. 주요 특징

정상적인 서비스 사용도 한 서버의 여러 포트를 쓸 수 있으므로, 포트 수만으로 판단하지 않습니다.

기준정상 다중 포트 사용수직 스캔
포트 구성서비스가 정의한 포트 묶음(예: 웹 80·443)서비스와 무관한 다양한 포트
연결 결과대부분 성립, 데이터 교환대부분 차단·RST, 데이터 없음
반복성매일 같은 포트 조합한 번 넓게 훑고 끝남
동적 포트협상된 포트만 사용(FTP 패시브, RPC 동적 포트)협상 없이 무작위 높은 포트
  • 동적 포트 서비스 주의: FTP 패시브 모드나 Windows RPC는 제어 연결에서 협상한 높은 번호 포트로 데이터 연결을 엽니다. 이 경우 선행 제어 연결(21, 135)이 있고 협상된 포트만 쓰인다는 점이 스캔과 다릅니다.
  • 결과 로그가 판단을 좌우: 차단 로그만 보면 허용된 포트가 빠집니다. 허용 세션 로그를 합쳐야 상대가 실제로 도달한 포트를 알 수 있습니다.

4. 예시

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

A=203.0.113.45; B=192.168.10.30
# 쌍의 distinct 포트 수와 연결 상태 분포
zeek-cut id.orig_h id.resp_h id.resp_p conn_state < conn.log \
  | awk -v a=$A -v b=$B '$1==a && $2==b {p[$3]=1; s[$4]++}
      END {n=0; for (k in p) n++; print "distinct_ports="n; for (k in s) print k, s[k]}'

# 데이터가 오간 연결(상대가 서비스 응답을 받은 포트)
zeek-cut id.orig_h id.resp_h id.resp_p service resp_bytes < conn.log \
  | awk -v a=$A -v b=$B '$1==a && $2==b && $5>0'

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

distinct_ports=1000
REJ 996
S0 1
SF 3
203.0.113.45  192.168.10.30  22    ssh   41
203.0.113.45  192.168.10.30  80    http  612
203.0.113.45  192.168.10.30  3306  -     95
관찰해석
distinct 1,000, 대부분 REJ수직 스캔, 닫힌 포트는 RST로 응답
22·80·3306에서 응답 데이터상대가 세 포트의 서비스 존재를 확인
3306 응답DB 포트가 외부 출발지에 응답 → 노출 의도 즉시 확인

5. 보안 관점

  • 수직형 접근은 특정 서버를 겨냥한 조사이므로, 대상 서버의 중요도에 따라 우선순위를 높입니다.
  • 상대가 확인한 열린 포트 중 외부 노출이 의도되지 않은 것(DB, 원격관리)이 있으면 스캔 대응보다 노출 차단이 먼저입니다.
  • 스캔 직후 같은 출발지가 열린 포트로 인증을 시도하면 무차별 대입 단계로 넘어간 것일 수 있습니다(233. Brute Force와 Scan 구분).

6. SOC 관점

흔적 위치확인 내용
방화벽쌍 단위 distinct DPT, 허용·차단 비율
Zeek·NDRconn_state 분포, 응답 데이터가 있는 포트
서비스 로그열린 포트의 인증 시도·요청
자산 정보대상 서버 역할·중요도

관제자가 확인할 질문

  • 출발지는 예외 대상인가? 대상 서버는 어떤 역할이며 외부 노출 대상인가?
  • 상대가 도달해 응답을 받은 포트는 무엇인가? 의도된 노출인가?
  • 스캔 이후 같은 출발지의 후속 접근(인증, 공격 요청)이 있었는가?

오탐 주의: 인가된 점검, 모니터링 시스템의 다중 서비스 점검, 동적 포트를 쓰는 정상 서비스가 같은 모양을 만듭니다. 포트 구성·연결 결과·반복성을 위 표 기준으로 먼저 확인합니다.


7. 핵심 정리

  • 단일 IP에 대한 다중 Port 접근은 출발지·대상 쌍이 고정되고 목적지 포트만 바뀌는 수직형 패턴입니다.
  • 분석은 출발지 확인 → 쌍 단위 집계 → 정상 사용 배제 → 결과 평가 → 후속 행위 확인 순서로 합니다.
  • 정상 다중 포트 사용과는 포트 구성, 연결 결과, 반복성, 동적 포트 협상 여부로 구분합니다.
  • 응답 데이터가 있었던 포트가 상대가 확인한 정보이며, 차단·허용 로그를 합쳐야 정확합니다.
  • 의도하지 않은 열린 포트는 스캔 대응보다 노출 차단을 먼저 합니다.
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글