nmapとは
nmap(Network Mapper)は、Gordon Lyon氏によって開発された、広く知られるセキュリティスキャナです。ネットワーク上の機器やサービスを調査し、その構成を「地図」のように把握することからこの名前が付けられました。
ポートスキャンに加え、動作しているサービスの種類やバージョン、OSとそのバージョンを特定する高度な機能を持っています。
nmapは、セキュリティ専門家だけでなく、システム管理者やネットワークエンジニアにも利用されており、その多機能性と柔軟性から、非常に人気のあるツールとなっています。LinuxQuestion.org主催のネットワークアプリケーション部門のベストアプリケーション賞を5年以上連続で受賞するなど、業界からの評価も非常に高いです。
nmapの歴史
nmapの誕生は、作者であるGordon Lyon氏(当時はFyodorという名前を使用)が、自身が求めていたポートスキャナが見つからなかったことから、自ら開発を始めたことに端を発します。1997年、Fyodor氏は初期のnmapをソースコード付きでPhrackという雑誌に投稿し、その存在が広く知られることとなりました。
初期のnmapは、TCP SYNスキャン、TCP FINスキャンなど、複数の
ポートスキャン方法をサポートしていました。その後、OS検出機能が追加され、TCP/IPスタックの差異を利用してOSとバージョンを特定するという、当時としては画期的な手法が導入されました。これは、従来のようなサービスバナーに頼るのではなく、より正確なOSの特定を可能にしました。
さらに、nmapは
Luaスクリプト言語で記述されたスクリプトを実行できる「Nmap Scripting Engine(NSE)」を搭載しました。これにより、ユーザーはスキャン動作をカスタマイズし、より柔軟な調査が可能になりました。
nmapの主な機能
nmapは、以下のスキャン機能を中心に、多岐にわたる機能を備えています。
TCPスキャン
TCP connect()スキャン: TCPのconnect()
システムコールを利用し、実際に接続を試みることでポートの状態を判断します。root権限などを必要としないため手軽に利用できますが、ログが残る可能性があります。
TCP SYNスキャン: TCPの3ウェイハンドシェイクを途中で中断することで、より効率的なスキャンを行います。ログも残りにくく、速度も速いです。
TCP FINスキャン、TCP Nullスキャン、TCP Xmasスキャン: 特定のTCPフラグを立てたパケットを送信し、その応答からポートの状態を判断します。
ステルス性が高い反面、一部のシステムでは利用できません。
TCP ACKスキャン: ACKフラグのみを立てたパケットを送信し、
ファイアウォールの挙動を調べます。
TCPウィンドウスキャン: OSの実装の違いを利用して、ポートの状態を判断します。
TCP Maimonスキャン: FIN/ACKパケットに対する応答の違いを利用してポートを判断します。
カスタムTCPスキャン: TCPフラグを自由に設定し、カスタマイズされたスキャンを行います。
UDPスキャン
UDP write() / UDP recvfrom()スキャン: UDPパケットを送信し、応答からポートの状態を判断します。TCPに比べると判断が難しいですが、一部のサービスはUDPを使用します。
ICMPスキャン
ICMP echoスキャン: pingによる死活確認を行います。ネットワーク内のホストを探索する際に役立ちます。
SCTPスキャン
SCTPスキャン: SCTPプロトコルにおける
ポートスキャンを行います。
その他機能
スキャン速度の自動調整: 相手サーバーの応答状況に応じてスキャン速度を調整し、効率的なスキャンを実現します。
TCP/IP stack fingerprinting: TCP/IPスタックの差異を利用してOSとバージョンを特定します。
Nmap Scripting Engine (NSE): Luaスクリプトによる柔軟なスキャンを可能にします。
nmapの活用
nmapは、以下のような用途で活用されています。
セキュリティ監査: ネットワークの脆弱性を評価し、セキュリティ対策を強化するために利用されます。
ネットワーク管理: ネットワークに接続されている機器やサービスを把握し、管理を効率化します。
トラブルシューティング: ネットワークの障害の原因を特定し、解決策を見つけるために利用されます。
ペネトレーションテスト: 攻撃者の視点からシステムを評価し、脆弱性を発見します。
nmapは、単なるポートスキャナを超えた多機能なセキュリティツールであり、その柔軟性と強力な機能は、セキュリティ分野において不可欠な存在となっています。
関連情報
Netcat: TCP/IP接続のための汎用ツール。
ping: ネットワーク接続のテストツール。
sshnuke: SSHサービスに対する攻撃ツール(攻撃対象への使用は厳禁)。
外部リンク
nmap公式サイト
nmap初期公開版
*
Matrix nmap - YouTube