📚 네트워크 · 패킷 분석 › 05. 네트워크 스캔 징후 분석 — 227편
이전 글: 226. 단일 IP에 대한 다중 Port 접근 · 다음 글: 228. 내부망 정찰
다수 IP에 대한 Port 접근 은 한 출발지가 여러 대상 호스트의 같은 포트(또는 소수 포트) 에 접근하는 패턴으로, 수평 스캔(Horizontal Scan, Sweep)의 모양입니다. 특정 서비스를 운영하는 호스트를 대역에서 찾아낼 때 나타나며, 웜의 확산 전 탐색도 이 모양입니다.
수직형(226. 단일 IP에 대한 다중 Port 접근)이 "한 서버를 깊게"라면 수평형은 "많은 서버를 얕게" 입니다. 대상 하나당 이벤트가 1~2건이라 대상별 로그로는 보이지 않고, 출발지 기준 집계에서 드러납니다. 포트 조합으로 의도를 추정하는 방법은 214. 특정 Port Scan에서 다뤘습니다.
| 지표 | 계산 | 의미 |
|---|---|---|
| distinct DST | 한 출발지의 서로 다른 목적지 IP 수 | 수평 규모 |
| 커버리지 | distinct DST ÷ 대역 크기 | 대역 전체 훑기 여부 |
| 미사용 IP 비율 | 자산 목록에 없는 IP로의 시도 ÷ 전체 | 정상 사용자는 없는 IP에 접속하지 않음 |
| 응답 비율 | 연결 성립·응답 대상 ÷ 전체 | 상대가 찾은 호스트 수 |
출발지 A ── 445/tcp ──→ 192.168.10.1
── 445/tcp ──→ 192.168.10.2
── 445/tcp ──→ 192.168.10.3 ... (대역 전체)
↓
대상별 로그: 각 1건 → 대상 단위 임계치 미달
↓
출발지 기준 집계: 같은 DPT, distinct DST 수백 → 수평 스캔 판단
↓
자산 목록과 대조
├─ 존재하지 않는 IP로의 시도 다수 → 목록 없이 훑는 탐색 (정상 사용자와 구별되는 강한 단서)
└─ 응답한 IP → 해당 서비스 운영 호스트 = 상대가 확보한 대상 목록
↓
후속: 응답 호스트로 인증 시도·공격 요청이 이어졌는가?
미사용 IP로의 시도는 특히 유용한 단서입니다. 정상 사용자는 DNS나 설정으로 알게 된 실제 서버에만 접속하므로, 할당되지 않은 주소에 연결을 시도할 이유가 없습니다. 이 원리를 이용해 사용하지 않는 주소 대역을 감시하는 방식을 다크넷(Darknet) 또는 텔레스코프 모니터링이라고 부릅니다.
정상 다중 목적지 트래픽과의 구분 기준입니다.
| 출발지 유형 | 모양 | 구분 기준 |
|---|---|---|
| 모니터링·NMS | 등록된 서버 목록의 같은 포트, 주기적 | 미사용 IP 없음, 일정 주기, 예외 목록 |
| 백업·배포 서버 | 관리 대상 서버로 정해진 포트 | 연결 성립, 데이터 대량 |
| 도메인 컨트롤러·관리 도구 | 가입된 단말로 관리 포트 | 자산 목록 일치, 인가 작업 일정 |
| 수평 스캔 | 대역 전체, 미사용 IP 포함 | 연결 대부분 실패, 일회성 |
실습 예시 — 본인 소유 실습망의 방화벽(iptables LOG) 로그와 자산 목록 파일을 대조해 미사용 IP 비율을 계산하는 방어 측 명령입니다. Rocky는 /var/log/messages, Ubuntu는 /var/log/kern.log이며, assets.txt는 사용 중인 IP 목록(한 줄에 하나)입니다. 값은 환경마다 다릅니다.
SRC=192.168.10.77; PORT=445
sudo grep "SRC=$SRC " /var/log/kern.log | grep "DPT=$PORT " \
| grep -o 'DST=[0-9.]*' | cut -d= -f2 | sort -u > /tmp/dst.txt
echo "distinct DST: $(wc -l < /tmp/dst.txt)"
echo "미사용 IP 시도: $(grep -vxFf assets.txt /tmp/dst.txt | wc -l)"
결과 형식 예시(값은 환경마다 다름):
distinct DST: 253
미사용 IP 시도: 214
| 관찰 | 해석 |
|---|---|
| 내부 단말이 445로 253개 대상 | 내부 수평 스캔, 커버리지 약 100% |
| 미사용 IP 214개 포함 | 자산을 알고 접속하는 정상 사용이 아님 |
| 출발지가 일반 사용자 단말 | 파일 서버 접속 외 대역 전체 SMB 시도 이유 없음 → EDR 확인 |
| 흔적 위치 | 확인 내용 |
|---|---|
| 방화벽(경계·내부) | 출발지별 같은 DPT의 distinct DST, 커버리지 |
| 자산 목록 | 미사용 IP 시도 비율 |
| NDR·Zeek | 연결 성립 대상, 대상별 conn_state |
| EDR(내부 출발지) | 연결을 만든 프로세스와 사용자 |
관제자가 확인할 질문
오탐 주의: NMS·백업·배포·보안 솔루션은 정상적으로 다수 대상에 접근합니다. 예외 목록과 대조하되, 예외 출발지라도 평소와 다른 포트나 미사용 IP 시도가 섞이면 확인합니다.