はじめに
ホスト探索戦略の実験へようこそ!
セキュリティ専門家やネットワーク管理者がシステムの脆弱性を分析する前に、まずはどのシステムがオンラインで応答しているかを把握する必要があります。このプロセスは「ホスト探索(Host Discovery)」または「Pingスイープ(Ping Sweeping)」と呼ばれます。
ホスト探索は、システムの「露出」ではなく「存在」を確認するためのものです。この段階では、「どのサービスが脆弱か」ではなく、「どのIPアドレスが稼働しているように見えるか」を問いかけます。これらの問いを分けることで、スキャンをより制御しやすく、かつ目立たないように行うことができます。
この実験では、業界標準のネットワークスキャンツールであるNmapを使用して、ターゲットネットワークの境界をマッピングする方法を学びます。攻撃的なポートスキャンを無効化し、ステルス性の高いARP pingやICMPスイープを実行して、稼働中のホストを効率的に特定する手法を練習します。
ポートスキャンの無効化 (-sn)
このステップでは、ホスト探索の最も基本的な概念である「Nmapに対して、稼働中のホストを探すことのみを指示し、ポートスキャンフェーズをスキップさせる」方法を学びます。
デフォルトでは、NmapにIPアドレスを指定すると、まずホストが稼働しているかを確認し、稼働していれば自動的にポートスキャン(通常は一般的な上位1000ポート)に進みます。ポートスキャンは有用ですが、ノイズが多く、時間がかかり、ファイアウォールや侵入検知システム(IDS)によって容易に検知されてしまいます。
探索と列挙を分けることは、専門家の間では一般的なワークフローです。まずは稼働中のホストを見つけ、その後にどのホストを詳細に調査すべきかを判断します。
ネットワークをマッピングし、どのIPアドレスがアクティブかを確認することが目的であれば、ポートスキャンを無効にするべきです。これには -sn フラグ(「Pingスキャン」または「ポートスキャンなし」を意味します)を使用します。
実験環境で確実に動作するように、ローカルマシンに対して基本的なホスト探索スキャンを実行してみましょう。デフォルトの作業ディレクトリ ~/project にいることを確認してください。
ターミナルで以下のコマンドを実行します。
nmap -sn 127.0.0.1
以下のような出力が表示されるはずです。
Starting Nmap 7.80 ( https://nmap.org ) at 2026-10-25 10:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up.
Nmap done: 1 IP address (1 host up) scanned in 0.02 seconds
出力には「Host is up(ホストが稼働中)」であることと、レイテンシのみが表示されていることに注目してください。ポートの開閉状況はリストアップされないため、スキャンは非常に高速かつステルスに行われます。
ARP Pingスキャンの実行
このステップでは、ARP(Address Resolution Protocol)Pingスキャンを実行する方法を学びます。
ローカルネットワーク(自分と同じルーターやスイッチに接続されているデバイス)をスキャンする場合、ホストを特定する最も効率的で信頼性の高い方法はARPを使用することです。ARPはOSI参照モデルの第2層(データリンク層)で動作します。「このIPアドレスを持っているのは誰ですか?MACアドレスを教えてください」とネットワークに問いかけます。
ARPはローカル通信の基本であるため、この方法は非常に有効です。デバイスがPingを無視することはあっても、ローカルネットワークに参加するためにはARPに応答する必要があるからです。
ARPはローカルネットワーク通信に不可欠であるため、ファイアウォールでブロックされることはほとんどありません。そのため、ARP pingはローカルホストの探索において非常に正確です。Nmapでは -PR フラグを使用してARP pingを指定します。
注意: ARPリクエストはインターネットを越えてルーティングすることはできません。そのため、ローカルアドレスに対してテストする必要があります。実際のシナリオでは、192.168.1.0/24 のようなローカルサブネットをスキャンすることになります。
生のネットワークパケット(カスタムARPリクエストなど)を作成するには管理者権限が必要なため、このコマンドには sudo を使用する必要があります。
以下のコマンドを実行して、ローカルマシンに対してARP pingを実行します。
sudo nmap -sn -PR 127.0.0.1
出力は以下のようになり、内部的にARPリクエストを優先してホストの稼働状況を判断します。
Starting Nmap 7.80 ( https://nmap.org ) at 2026-10-25 10:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00008s latency).
Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds
社内ネットワークや家庭のWi-Fiネットワークを監査する際には、-PR の使用を強く推奨します。
ICMPエコースイープの実行
このステップでは、ICMPエコースイープの手法を探ります。
ARPはローカルネットワークには最適ですが、ルーターを越えることはできません。異なるサブネット内のターゲットをスキャンする場合は、第3層(ネットワーク層)のプロトコルを使用する必要があります。最も一般的な方法は、標準の ping コマンドと同じメカニズムであるICMPエコーリクエストを送信することです。
これは、ネットワーク層の実践的な重要性を示す良い例です。ターゲットが遠くにあるほど、探索手法はローカルリンクのメカニズムではなく、ルーティング可能なプロトコルに依存するようになります。
Nmapでは -PE フラグを使用して、明示的にICMPエコーpingを要求できます。この実験では、例を完結させるために 127.0.0.1 に対して練習しますが、-PE はローカルリンク外の到達可能なホストを確認する際に特に有用です。
ローカルマシンに対してICMPエコースイープをテストしてみましょう。
sudo nmap -sn -PE 127.0.0.1
ターゲットがICMPプローブに応答したことを確認する、おなじみの出力が表示されます。
Starting Nmap 7.80 ( https://nmap.org ) at 2026-10-25 10:10 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up.
Nmap done: 1 IP address (1 host up) scanned in 0.02 seconds
多くの最新のファイアウォールやWindowsマシンは、探索を防ぐためにデフォルトでICMPエコーリクエストをブロックしていることに注意してください。したがって、ホストが -PE に応答しない場合でも、オンラインである可能性はあります。単にPingを無視しているだけかもしれません。
発見したホストのリスト保存
このステップでは、ホスト探索スキャンの結果をファイルに保存する方法を学びます。
大規模なネットワークをスキャンする場合、数十から数百の稼働中ホストが見つかることがあります。ターミナルの出力だけに頼るのは現実的ではありません。これらのIPアドレスをファイルに保存し、他のツールに渡したり、後で詳細なポートスキャンを実行したりできるようにする必要があります。
Nmapはいくつかの出力形式を提供しています。-oN フラグは、ターミナルに表示されるものと全く同じ「標準(Normal)」の人間が読める形式で出力を保存します。フラグの後に希望するファイル名を指定するだけです。
127.0.0.1 に対して基本的なPingスキャンを実行し、結果を ~/project ディレクトリ内の live_hosts.txt というファイルに保存してみましょう。
nmap -sn 127.0.0.1 -oN live_hosts.txt
スキャンが完了したら、cat コマンドを使用してファイルの内容を確認できます。
cat live_hosts.txt
保存されたスキャン結果が表示されます。
## Nmap 7.80 scan initiated Wed Oct 25 10:15:00 2026 as: nmap -sn -oN live_hosts.txt 127.0.0.1
Nmap scan report for localhost (127.0.0.1)
Host is up.
## Nmap done at Wed Oct 25 10:15:00 2026 -- 1 IP address (1 host up) scanned in 0.02 seconds
結果を保存しておくことで、ネットワークマッピングフェーズの明確な記録を保持できます。これはセキュリティ評価における重要なベストプラクティスです。
まとめ
おめでとうございます!「ホスト探索戦略」の実験を無事に完了しました。
この実験では、ノイズの多いポートスキャンをトリガーすることなく、稼働中のホストを特定してネットワークを効率的にマッピングする方法を学びました。ポートスキャンを無効にする -sn フラグの使用、高精度なローカルARP pingのための -PR の活用、そして標準的なICMPエコースイープのための -PE の適用を練習しました。最後に、-oN フラグを使用してスキャン結果をファイルに保存し、調査結果を記録する方法を学びました。
これらの基礎スキルは、ターゲット環境の偵察を行うネットワーク管理者やセキュリティ専門家にとって不可欠なものです。



