セキュリティテスト

Nmap えぬまっぷ

ポートスキャンネットワーク探索脆弱性診断オープンソースセキュリティ監査ホスト検出
Nmapについて教えて

簡単に言うとこんな感じ!

Nmapはネットワーク上のコンピューターを「ドアをノックして回る」ツールだよ!「どのポート(玄関)が開いてる?」「どんなOSが動いてる?」を自動で調べてくれるんだ。セキュリティ診断の定番中の定番ツールってこと!


Nmapとは

Nmap(Network Mapper) は、ネットワーク上のホスト(機器)を発見し、開放されているポートやサービス・OSの種類を調査するオープンソースのネットワーク探索・セキュリティ監査ツールです。1997年にGordon Lyon(Fyodor)によって開発され、現在も活発にメンテナンスが続けられています。

セキュリティ担当者がシステムの「現状把握」をするときの第一歩として使われることが多く、「どのサーバーが何のサービスを公開しているか」「意図せず開放されているポートはないか」を素早く確認できます。たとえばシステムを新しくリリースする前の セキュリティチェックリスト の中で、「Nmapでスキャンして不要なポートが開いていないことを確認する」という手順が含まれることは珍しくありません。

Nmapはセキュリティ診断(ペネトレーションテスト)の現場で使われる一方、ネットワーク管理者が社内インフラの棚卸しをする目的でも広く使われています。無断で他人のネットワークにスキャンをかけると不正アクセスになる可能性があるため、必ず自分が管理権限を持つ環境・または明示的に許可を得た環境でのみ使用する ことが大前提です。


Nmapの主な機能と使い方

Nmapは非常に多機能ですが、実務でよく使われる機能は以下の通りです。

機能概要主なオプション
ホスト検出ネットワーク上で稼働している機器を探す-sn(Ping スキャン)
ポートスキャン開いているポート番号を特定する-sS(SYNスキャン)-sTTCPスキャン)
サービス検出ポートで動いているソフトウェアとバージョンを調べる-sV
OS検出対象機器のOSの種類とバージョンを推測する-O
スクリプト実行NSEスクリプトで脆弱性チェックを自動化する--script
出力保存結果をXML・テキスト・grepable形式で保存-oX -oN -oG

よく使うコマンド例

# 基本的なポートスキャン(対象ホストの開放ポートを確認)
nmap 192.168.1.1

# よく使われる1000ポートをSYNスキャン+サービスバージョン検出
nmap -sS -sV 192.168.1.1

# ネットワーク全体のホスト一覧を取得(Pingスキャン)
nmap -sn 192.168.1.0/24

# OS検出+サービス検出+デフォルトスクリプト実行(定番の組み合わせ)
nmap -A 192.168.1.1

# 結果をXMLファイルに保存
nmap -oX result.xml 192.168.1.1

ポートの状態(スキャン結果の読み方)

Nmapはポートの状態を6種類に分類します。

状態意味
open(開放)サービスが動いており接続可能
closed(閉鎖)ポートはアクセス可能だがサービスが動いていない
filtered(フィルター)ファイアウォールなどにより応答がない
unfiltered(非フィルター)アクセス可能だが状態不明
open|filtered開放かフィルター済みか判断できない
closed|filtered閉鎖かフィルター済みか判断できない

歴史と背景

  • 1997年 — Gordon Lyon(ハンドルネーム:Fyodor)がNmapを開発・公開。Phrack誌に論文として掲載されたのが起源
  • 1998年 — OS検出機能が追加され、単なるポートスキャナーを超えた総合ツールへ進化
  • 2003年NSE(Nmap Scripting Engine) の前身となるスクリプト機能の実験が始まる
  • 2006年 — NSEが正式実装され、スクリプトによる脆弱性チェックが可能に
  • 2009年 — 映画「マトリックス リローデッド」などでも使用シーンが登場し、一般知名度が向上
  • 2012年 | IPv6対応が強化され、現代のネットワーク環境に対応
  • 現在 | GitHub上で継続的にメンテナンスされ、数百のNSEスクリプトが公式配布されている

Nmapと関連ツールの比較・位置づけ

Nmapはセキュリティテストの「偵察フェーズ」を担うツールです。他のツールと組み合わせることで、より深い診断が可能になります。

セキュリティテストのフェーズとツール ① 偵察・探索 Nmap / Masscan ② 脆弱性スキャン Nessus / OpenVAS ③ 侵入テスト Metasploit ④ 報告・対策 レポーティング 主要ツール比較 ツール 主な用途 特徴 ライセンス Nmap ポートスキャン・ホスト探索 軽量・高速・多機能 OSS(GPL) Masscan 大規模ポートスキャン 超高速・シンプル OSS(AGPL) Nessus 脆弱性スキャン CVEベースの詳細診断 商用(無料枠あり) OpenVAS 脆弱性スキャン Nessusのオープン版 OSS(GPL) Metasploit 侵入テスト・エクスプロイト 脆弱性の実証に特化 商用/OSS併存 ※ Nmapは「まず何があるか調べる」偵察フェーズの定番。脆弱性の詳細はNessus/OpenVASで深掘りする ※ 無断スキャンは不正アクセス禁止法に抵触する可能性があります。必ず許可を取ること

NSE(Nmap Scripting Engine)について

NSEはNmapに内蔵されたスクリプトエンジンで、Lua言語で書かれたスクリプトを実行できます。公式で提供される 600以上のスクリプト を使うと、以下のような診断が自動化できます。

# HTTPサーバーのヘッダー情報を取得
nmap --script http-headers 192.168.1.1

# SSHの認証方式を確認
nmap --script ssh-auth-methods 192.168.1.1

# よく知られた脆弱性チェック(SMBの脆弱性など)
nmap --script vuln 192.168.1.1

# デフォルトスクリプト群を実行(安全なものだけ)
nmap -sC 192.168.1.1

関連する規格・RFC

規格・RFC番号内容
RFC 793TCP(Transmission Control Protocol)の仕様。Nmapのポートスキャンの基礎
RFC 792ICMP(Internet Control Message Protocol)。Pingスキャンで使用
RFC 768UDP(User Datagram Protocol)。UDPスキャン(-sU)の基礎プロトコル
RFC 9293TCPの更新版仕様(RFC 793の廃止・置き換え)

関連用語

  • ポート番号 — TCP/UDP通信の「入口」を識別する番号。Nmapが調査する対象
  • ファイアウォール — 不正なポートアクセスをブロックするセキュリティ機構
  • ペネトレーションテスト — 攻撃者視点でシステムの脆弱性を検証するセキュリティ診断
  • 脆弱性スキャンCVEなどの既知脆弱性を自動で検出するツール・手法
  • TCP/IP — Nmapがスキャンに使う通信プロトコルの基盤
  • ICMP — Pingスキャンで使用するネットワーク診断プロトコル
  • CVE — 脆弱性の共通識別番号。NmapのNSEスクリプトが参照する情報源
  • Kali Linux — Nmapをはじめセキュリティツールを多数収録したペネトレーションテスト向けLinuxディストリビューション