📚 네트워크 · 패킷 분석 › 05. 네트워크 스캔 징후 분석 — 227편
이전 글: 226. 단일 IP에 대한 다중 Port 접근 · 다음 글: 228. 내부망 정찰

1. 개념

다수 IP에 대한 Port 접근 은 한 출발지가 여러 대상 호스트의 같은 포트(또는 소수 포트) 에 접근하는 패턴으로, 수평 스캔(Horizontal Scan, Sweep)의 모양입니다. 특정 서비스를 운영하는 호스트를 대역에서 찾아낼 때 나타나며, 웜의 확산 전 탐색도 이 모양입니다.

수직형(226. 단일 IP에 대한 다중 Port 접근)이 "한 서버를 깊게"라면 수평형은 "많은 서버를 얕게" 입니다. 대상 하나당 이벤트가 1~2건이라 대상별 로그로는 보이지 않고, 출발지 기준 집계에서 드러납니다. 포트 조합으로 의도를 추정하는 방법은 214. 특정 Port Scan에서 다뤘습니다.

지표계산의미
distinct DST한 출발지의 서로 다른 목적지 IP 수수평 규모
커버리지distinct DST ÷ 대역 크기대역 전체 훑기 여부
미사용 IP 비율자산 목록에 없는 IP로의 시도 ÷ 전체정상 사용자는 없는 IP에 접속하지 않음
응답 비율연결 성립·응답 대상 ÷ 전체상대가 찾은 호스트 수

2. 동작 원리

출발지 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) 또는 텔레스코프 모니터링이라고 부릅니다.


3. 주요 특징

  • 대상당 1~2건: 대상 서버 관리자 입장에서는 눈에 띄지 않습니다. 경계·내부 방화벽의 출발지 기준 집계가 필요합니다.
  • 짧은 간격, 넓은 범위: 대상당 요청이 적어 대역 전체를 빠르게 훑습니다. 순서는 순차일 수도, 무작위일 수도 있습니다(223. Sequential Scan, 224. Random Scan).
  • 내부 출발지일 때 위험도 상승: 내부 단말이 445·3389·22로 대역을 훑는 것은 감염 확산이나 측면 이동 준비의 전형적 모양입니다.

정상 다중 목적지 트래픽과의 구분 기준입니다.

출발지 유형모양구분 기준
모니터링·NMS등록된 서버 목록의 같은 포트, 주기적미사용 IP 없음, 일정 주기, 예외 목록
백업·배포 서버관리 대상 서버로 정해진 포트연결 성립, 데이터 대량
도메인 컨트롤러·관리 도구가입된 단말로 관리 포트자산 목록 일치, 인가 작업 일정
수평 스캔대역 전체, 미사용 IP 포함연결 대부분 실패, 일회성

4. 예시

실습 예시 — 본인 소유 실습망의 방화벽(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 확인

5. 보안 관점

  • 수평형 접근은 서비스 단위 대상 수집입니다. 결과 목록은 곧 공격 대상 목록이므로 응답한 호스트의 패치·노출 상태를 우선 점검합니다.
  • 내부 수평 스캔은 확산형 악성코드와 관련이 깊습니다. 출발지 격리 판단을 빠르게 할 수 있도록 내부 방화벽·NDR 가시성을 확보합니다(228. 내부망 정찰).
  • 사용하지 않는 주소로의 시도를 별도 탐지 규칙으로 두면 오탐이 적은 조기 경보가 됩니다.

6. SOC 관점

흔적 위치확인 내용
방화벽(경계·내부)출발지별 같은 DPT의 distinct DST, 커버리지
자산 목록미사용 IP 시도 비율
NDR·Zeek연결 성립 대상, 대상별 conn_state
EDR(내부 출발지)연결을 만든 프로세스와 사용자

관제자가 확인할 질문

  • 이 출발지가 같은 포트로 접근한 서로 다른 대상은 몇 개이며, 미사용 IP가 포함되었는가?
  • 응답한 대상은 몇 개이고, 그 대상들로 후속 접근이 있었는가?
  • 내부 출발지라면 어떤 프로세스가 연결을 만들었고, 같은 시각 다른 이상 행위가 있는가?

오탐 주의: NMS·백업·배포·보안 솔루션은 정상적으로 다수 대상에 접근합니다. 예외 목록과 대조하되, 예외 출발지라도 평소와 다른 포트나 미사용 IP 시도가 섞이면 확인합니다.


7. 핵심 정리

  • 다수 IP에 대한 Port 접근은 같은 포트로 여러 대상을 얕게 훑는 수평형 패턴입니다.
  • 대상당 1~2건이라 대상 단위로는 보이지 않고 출발지 기준 distinct DST 집계로 드러납니다.
  • 미사용 IP로의 시도는 정상 사용자와 구별되는 강한 단서입니다.
  • 내부 출발지의 수평 스캔은 확산·측면 이동 준비로 보고 우선순위를 높입니다.
  • 응답한 대상 목록과 후속 접근 여부가 대응 범위를 결정합니다.
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글