본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

TCP NULL 스캔(TCP NULL Scan)은 TCP 헤더의 플래그를 전혀 설정하지 않은 패킷을 이용하여 대상 시스템의 포트 상태를 확인하는 포트 스캐닝 기법이다. 비정상적인 TCP 패킷에 대한 응답 차이를 이용하여 열린 포트와 닫힌 포트를 구분한다.

TCP NULL 스캔은 포트 스캐닝 기법 중 하나로, TCP 플래그를 모두 비활성화한 상태의 패킷을 대상 포트에 전송하여 응답 여부를 분석한다.

일반적인 TCP 통신에서는 SYN, ACK, FIN 등의 플래그가 사용되지만, NULL 스캔에서는 어떤 플래그도 설정하지 않는다. 이러한 비정상 패킷에 대한 시스템의 반응을 이용하여 포트 상태를 추정한다.

일부 환경에서는 탐지 로그가 적게 남을 수 있어 은밀한 스캐닝 기법으로 사용되기도 한다.

TCP NULL 스캔은 RFC 793의 TCP 표준 동작을 기반으로 한다.

RFC 기준에서는 다음과 같이 동작한다.

  • 닫힌 포트(Closed Port)
RST 패킷을 반환한다.
  • 열린 포트(Open Port)
패킷을 무시하고 응답하지 않는다.

따라서 응답 여부를 분석하여 포트 상태를 추정한다.

  1. 공격자는 TCP 플래그가 모두 비활성화된 패킷을 대상 포트로 전송한다.
  2. 대상 시스템의 응답을 분석한다.
  3. RST 응답이 오면 닫힌 포트로 판단한다.
  4. 응답이 없으면 열린 포트 또는 필터링된 포트로 판단한다.
  • TCP 플래그를 전혀 사용하지 않는다.
  • TCP 연결을 수립하지 않는다.
  • 일부 환경에서는 탐지가 어려울 수 있다.
  • RFC 기반 TCP 동작을 이용한다.
  • 운영체제별로 동작 차이가 존재한다.
  • 완전한 TCP 연결을 수행하지 않음
  • 일부 방화벽 우회 가능
  • 로그 기록이 적을 수 있음
  • 비교적 은밀한 스캐닝 가능
  • Windows 계열 시스템에서는 정확도가 낮음
  • 응답이 없는 경우 필터링 여부 구분이 어려움
  • 최신 IDS/IPS에서는 탐지 가능
  • 일부 네트워크 장비에서 비정상 패킷으로 차단 가능

Windows 환경 문제

편집 원본 편집

RFC 793 기준에서는 열린 포트가 응답하지 않아야 하지만, 일부 Windows 계열 운영체제는 열린 포트와 닫힌 포트 모두에 대해 RST 응답을 반환한다.

이 때문에 NULL 스캔은 Windows 시스템에 대해 정확한 포트 판별이 어려운 경우가 많다.

방화벽과의 관계

편집 원본 편집

일부 단순 방화벽은 SYN 패킷 위주로 탐지 규칙을 구성하기 때문에 NULL 스캔이 탐지를 우회하는 경우가 있었다.

그러나 최신 보안 장비는 비정상 TCP 플래그 패턴을 탐지할 수 있으므로 효과가 제한적이다.

TCP 연결을 완전히 수립하지 않는 Half-open 방식 스캔이다.

FIN 플래그를 사용하여 응답 여부를 분석하는 방식이다.

FIN, PSH, URG 플래그를 동시에 설정하여 사용하는 방식이다.

Nmap에서는 다음과 같은 옵션으로 NULL 스캔을 수행할 수 있다.

nmap -sN 대상IP
  • NULL 스캔은 TCP 플래그를 모두 비활성화한 패킷을 사용한다.
  • 열린 포트는 일반적으로 응답하지 않는다.
  • 닫힌 포트는 일반적으로 RST 응답을 반환한다.
  • TCP 연결을 완전히 수립하지 않는다.
  • Windows 계열 운영체제에서는 정확도가 낮을 수 있다.
  • NULL 스캔은 비정상 TCP 패킷을 이용한 스캐닝 방식이다.