ネットワークセキュリティにおいて、中間者攻撃(MitM)の代表的な手法であるARPスプーフィングは、依然として大きな脅威であり続けています。
通信の盗聴や改ざんを引き起こすこの攻撃を早期に発見するためには、ネットワークトラフィックの正確な解析が不可欠です。
本記事では、オープンソースのパケット解析ツールであるWiresharkを使用し、ARPスプーフィングを検知するための具体的な手順や解析フィルター、異常パケットの特定手法について詳しく検討します。
ARPスプーフィングのメカニズムと検知の重要性
ARP(Address Resolution Protocol)は、IPアドレスからMACアドレスを導き出すためのプロトコルですが、認証の仕組みを持たないという脆弱性があります。
攻撃者はこの脆弱性を悪用し、偽のARP応答(ARP Reply)をネットワーク上に送出することで、ターゲット端末のARPキャッシュを書き換えます。
これにより、本来ルーターや他のサーバーに送られるべきパケットが攻撃者の端末を経由するようになり、情報の窃取が行われます。
企業ネットワークにおいてこのような事態を放置することは、機密情報の漏洩や通信の可用性低下を招く重大なリスクとなります。
そのため、ネットワーク管理者はWiresharkなどのツールを駆使して、定常的なトラフィックの中に潜む不審なARPパケットを特定する能力を養う必要があります。
ARPキャッシュポイズニングの仕組み
ARPキャッシュポイズニングは、ターゲットとなる端末に対して「私はゲートウェイです」という偽の情報を送り込むことで成立します。
通常、ARP応答はリクエストがあった際に行われますが、リクエストがないにもかかわらず送られる「Gratuitous ARP」も攻撃に悪用されます。
攻撃者が継続的に偽の応答を送信し続けることで、ターゲットのARPテーブルは攻撃者のMACアドレスを正解として保持し続けます。
この一連の動作をパケットレベルで観察することが、検知の第一歩となります。
Wiresharkによるパケットキャプチャの基本設定
WiresharkでARPスプーフィングを正確に検知するためには、適切なキャプチャ環境の構築が必要です。
まず、解析対象となるネットワークセグメントに接続されたインターフェースを選択します。
多くの場合、自身の端末に届くパケットだけでなく、ネットワーク上の広範なトラフィックを監視するために「プロミスキャスモード(Promiscuous Mode)」を有効にする必要があります。
スイッチングハブ環境では、自分宛て以外のパケットは通常届かないため、スイッチのポートミラーリング(SPAN)設定などを併用することが推奨されます。
キャプチャを開始する際は、不要なトラフィックを除外するために、キャプチャフィルターでarpと指定しておくのも有効な手段です。
解析を容易にするための基本カスタマイズ
Wiresharkのデフォルト画面では、多くの情報が表示されすぎて異常を見落とす可能性があります。
ARPパケットの解析に特化するために、パケット一覧リストに「Sender MAC Address」や「Sender IP Address」などの列を追加すると視認性が向上します。
これにより、1つのIPアドレスに対して複数のMACアドレスが紐付いている状況を素早く把握できるようになります。
ARPスプーフィング検知に有効な解析フィルター
大量のパケットから異常を見つけ出すには、Wiresharkのディスプレイフィルター機能を活用することが不可欠です。
特定の条件に合致するパケットのみを抽出することで、攻撃の痕跡を浮き彫りにできます。
重複するIPアドレスを特定するフィルター
ARPスプーフィングが発生している場合、同じIPアドレスを主張する異なるMACアドレスが存在することになります。
Wiresharkには、IPアドレスの重複を検知した際に警告を出す内部ロジックが備わっています。
以下のフィルターを使用することで、システムが異常と判断したARPパケットを抽出できます。
arp.duplicate-address-detected
このフィルターでヒットしたパケットがある場合、同一ネットワーク内でIPアドレスの競合が発生していることを意味します。
攻撃者がゲートウェイのIPを偽装している場合、このフィルターは非常に強力な検知手段となります。
ARP応答パケットのみに絞り込む方法
ARP攻撃の多くはリクエストではなく「リプライ(応答)」として送られます。
そのため、以下のフィルターで応答パケットに注目することが有効です。
arp.opcode == 2
特に、要求(Request)が行われていないにもかかわらず送信される「Unsolicited ARP Reply」は、攻撃の典型的な兆候です。
これを確認するには、Wiresharkの「Expert Information」を活用するのが最も効率的です。
エキスパート情報を活用した異常パケットの特定
Wiresharkには、キャプチャしたパケットの矛盾を自動的に分析する「Expert Information(エキスパート情報)」という機能があります。
メニューの「Analyze」から「Expert Information」を選択することで、エラーや警告の一覧を確認できます。
ARPスプーフィングが行われている際、ここには「Duplicate IP address configured」や「ARP moves from [MAC A] to [MAC B]」といったメッセージが表示されます。
これは、特定のIPアドレスに対応するMACアドレスが頻繁に切り替わっていることを示しており、攻撃の決定的な証拠となります。
「ARP moves」メッセージの意味
「ARP moves from…」というメッセージは、Wiresharkが以前に記録したARPエントリが新しいMACアドレスで更新されたことを意味します。
通常、ネットワーク機器の入れ替えがない限り、短時間にMACアドレスが変更されることはありません。
このメッセージが頻出している場合は、攻撃者が標的のキャッシュを上書きしようとパケットを連射している可能性が極めて高いと判断できます。
特定のMACアドレスから送信される不審な挙動の調査
攻撃を特定した後は、その攻撃元(MACアドレス)がどの端末であるかを特定する必要があります。
Wiresharkの「Statistics」メニューから「Endpoints」を選択し、送信パケット数を確認してください。
短時間で異常に多くのARPパケットを送信しているホストがあれば、それが攻撃端末である可能性が高いです。
また、ベンダーID(MACアドレスの上位3バイト)を確認することで、攻撃に使われている端末のメーカーを特定できる場合もあります。
不自然なGratuitous ARPの検知
Gratuitous ARP(GARP)は、自身のIPアドレスが重複していないか確認したり、自身のMACアドレスの変更を通知したりするために使われる正常なパケットです。
しかし、攻撃者はこれを「強制的なキャッシュ更新」の手段として悪用します。
ディスプレイフィルターで以下のコマンドを入力し、GARPパケットを詳しく調査します。
arp.isgratuitous == 1
もし、特定の端末から継続的に異なるIPアドレスに対するGARPが送出されているのであれば、それはスキャン攻撃やスプーフィング攻撃の一環であると考えられます。
解析結果に基づく事後対応とネットワーク保護
WiresharkでARPスプーフィングを検知した後は、迅速なネットワーク保護策を講じる必要があります。
まず、攻撃元として特定されたMACアドレスを物理ポートレベル、あるいは無線アクセスポイントの制御機能で遮断します。
また、攻撃の影響を受けた端末のARPキャッシュを手動でクリア、あるいは正しい情報を静的に登録することで通信の正常化を図ります。
動的ARP検査(DAI)の導入検討
Wiresharkでの検知はあくまで事後的な、あるいは監視目的の手法です。
抜本的な対策としては、L2スイッチに備わっている「Dynamic ARP Inspection(DAI)」機能を有効にすることが最も効果的です。
DAIは、DHCPスヌーピングなどの情報を基に、不正なARPパケットをスイッチのハードウェアレベルで破棄します。
これにより、たとえ攻撃者が偽のARP応答を送信しても、ネットワーク全体に被害が広がるのを未然に防ぐことが可能になります。
Wiresharkによる定常監視の運用方法
単発の調査だけでなく、定期的なキャプチャデータのサンプリングを行うことで、ネットワークの健全性を維持できます。
tsharkなどのコマンドラインツールを利用して、ARPパケットの統計を自動的に収集するスクリプトを運用するのも一つの手です。
例えば、以下のコマンドラインを実行することで、ARPトラフィックの概要をリアルタイムで監視できます。
# tsharkを使用してARPパケットをリアルタイム監視する例
tshark -i 1 -f "arp" -T fields -e frame.time -e eth.src -e arp.src.proto_ipv4 -e arp.dst.proto_ipv4
May 11, 2026 10:00:01.123 00:0c:29:ab:cd:ef 192.168.1.1 192.168.1.100
May 11, 2026 10:00:02.456 00:0c:29:ab:cd:ef 192.168.1.1 192.168.1.101
このようにして得られたログを分析し、特定のMACアドレスが複数のIPアドレスを代表しているような挙動があれば、即座に詳細解析へ移行する体制を整えましょう。
まとめ
Wiresharkを用いたARPスプーフィングの検知は、パケットレベルでネットワークの真実を知るための非常に有効な手段です。
本記事で紹介したディスプレイフィルターやエキスパート情報の活用は、異常なトラフィックを迅速に特定する上で大きな助けとなります。
「arp.duplicate-address-detected」や「arp.moves」といったキーワードを意識するだけで、検知の精度は劇的に向上します。
しかし、ツールによる検知はあくまで守りの一部であり、最終的にはセキュアなネットワーク設計が重要です。
Wiresharkでの検証を通じて自社ネットワークの脆弱性を把握し、DAIの導入やポートセキュリティの強化といった根本的な対策へと繋げてください。
日頃から正常時のパケットの流れを把握しておくことが、異常をいち早く察知するための最大の鍵となります。
