보안

[보안점검도구] Nmap(Network Mapper)

타우루스 2026. 2. 22. 20:33

Nmap은 네트워크 탐색 및 보안 감사를 위해 전 세계적으로 가장 널리 사용되는 오픈소스 기반의 네트워크 스캐너입니다. 관리자나 보안 전문가가 네트워크에 연결된 기기(호스트), 제공 중인 서비스(포트), 운영체제(OS), 방화벽 상태 등을 파악하는 데 주로 활용됩니다.

1. 작동 원리

Nmap은 대상 네트워크나 호스트를 향해 특별하게 조작된 원시 IP 패킷(Raw IP Packets)을 전송합니다. 이후 대상으로부터 돌아오는 응답 패킷(예: TCP SYN/ACK, RST, ICMP 응답 등)의 패턴을 분석하여 네트워크 구조와 호스트의 상태를 역추적(추론)하는 방식으로 작동합니다. TCP/IP 프로토콜의 표준 규격과 각 운영체제별 네트워크 스택 구현의 미세한 차이를 이용해 정확한 정보를 수집합니다.

2. 주요 기능

  • 호스트 탐지 (Host Discovery): 네트워크상에 현재 켜져 있고 통신이 가능한 기기(PC, 서버, 라우터 등)가 무엇인지 찾아냅니다. (흔히 '핑 스캔'이라고 부릅니다.)
  • 포트 스캐닝 (Port Scanning): 특정 호스트에서 외부와 통신하기 위해 열어둔 포트 번호를 확인합니다. 이를 통해 어떤 서비스가 실행 중인지 유추할 수 있습니다.
  • 서비스 및 버전 탐지 (Version Detection): 단순히 포트가 열려 있다는 것을 넘어, 해당 포트에서 동작 중인 애플리케이션의 정확한 이름과 버전 정보까지 알아냅니다. (예: 80번 포트에서 Apache 2.4.41 실행 중)
  • 운영체제 탐지 (OS Detection): 수집된 패킷의 지문(Fingerprint)을 Nmap의 내부 데이터베이스와 대조하여 대상 기기의 운영체제 종류와 버전을 추정합니다.
  • 스크립트 엔진 (NSE, Nmap Scripting Engine): 루아(Lua) 프로그래밍 언어로 작성된 스크립트를 이용하여, 네트워크 취약점 탐지, 백도어 확인, 고급 정보 수집 등의 복잡한 작업을 자동화합니다.

3. Nmap이 판별하는 포트의 상태

포트 스캐닝 결과, Nmap은 포트의 상태를 크게 다음 세 가지 주요 상태로 분류합니다.

상태 (State) 설명 원인 및 의미
Open (열림) 애플리케이션이 해당 포트에서 연결(TCP)이나 패킷(UDP)을 적극적으로 수용하고 있는 상태입니다. 보안 점검 시 가장 주의 깊게 살펴봐야 할 포트입니다.
Closed (닫힘) 포트에 접근은 가능(응답이 옴)하지만, 현재 수신 대기 중인 애플리케이션이 없는 상태입니다. 호스트가 살아있음을 증명하지만, 제공하는 서비스는 없습니다.
Filtered (필터링됨) 방화벽, 라우터 규칙 등에 의해 패킷이 차단되어 Nmap이 포트의 개방 여부를 판단할 수 없는 상태입니다. 대상 포트로 보낸 패킷이 버려지거나(Drop) 접근 제한 메시지를 받은 경우입니다.

4. 구체적인 사용 예시

명령어 인터페이스(CLI)를 기준으로, 목적에 따른 대표적인 Nmap 사용 예시는 다음과 같습니다.

  • 기본 스캔: nmap 192.168.0.1
    • 가장 널리 쓰이는 상위 1,000개의 포트를 대상으로 대상 IP의 포트 상태를 확인합니다.
  • 특정 포트 지정 스캔: nmap -p 80,443,8080 192.168.0.1
    • 웹 서비스와 관련된 80(HTTP), 443(HTTPS), 8080 포트만 집중적으로 스캔하여 시간을 단축합니다.
  • 대역 전체 호스트 탐지 (핑 스캔): nmap -sn 192.168.0.0/24
    • C클래스 네트워크(192.168.0.0 ~ 192.168.0.255) 전체를 대상으로 포트 스캔 없이 활성화된 IP만 빠르게 찾아냅니다.
  • 공격적/종합적 스캔 (Aggressive Scan): nmap -A 192.168.0.1
    • OS 탐지, 버전 탐지, 기본 스크립트 스캔(NSE), 경로 추적(Traceroute) 기능을 한 번에 모두 실행합니다. 대상에 대한 가장 풍부한 정보를 얻을 수 있지만, 스캔 시간이 오래 걸리고 보안 장비에 탐지될 확률이 매우 높습니다.