ARP 欺骗攻撃の詳細#
ARP とは?#
ARP(アドレス解決プロトコル)は、ネットワーク層の IP アドレスをデータリンク層の MAC アドレスに解決するためのプロトコルです。これは、イーサネットなどのデータリンク層プロトコルが MAC アドレスを使用して通信するため、LAN(ローカルエリアネットワーク)で重要な役割を果たします。
動作原理:#
- デバイスが別のデバイスと通信する必要があるとき、ターゲット IP アドレスを確認します。
- ターゲットデバイスが同じ LAN 内にある場合、送信者はターゲットデバイスの MAC アドレスを知る必要があります。
- 送信者がターゲットデバイスの MAC アドレスを知らない場合、ARP リクエスト(「この IP アドレスを持っているのは誰ですか?」)をブロードキャストします。ターゲットデバイスはその MAC アドレスを返答します。
- 送信者は受信した IP-MAC マッピングをローカルの ARP キャッシュテーブルに保存し、以降の通信に備えます。
ARP 欺骗攻撃とは?#
ARP 欺骗(ARP スプーフィング)は、LAN に対する攻撃技術で、偽の ARP 応答パケットを生成してターゲットデバイスの ARP キャッシュテーブルを改ざんし、中間者攻撃(Man-in-the-Middle Attack)を実現します。この攻撃の主な目的は、LAN 内の通信トラフィックを傍受、改ざん、または盗聴することです。
攻撃原理:#
攻撃者はターゲットデバイスに偽の ARP 応答パケットを送り、攻撃者の MAC アドレスが特定の合法的なデバイスの IP アドレスに対応していると主張します。ターゲットデバイスは偽の ARP 応答を受信すると、その ARP キャッシュテーブルを更新し、合法的なデバイスの IP アドレスを攻撃者の MAC アドレスにマッピングします。その結果、本来合法的なデバイスに送信されるべきデータパケットが誤って攻撃者に転送されます。
攻撃結果:#
- 中間者攻撃:攻撃者はターゲットデバイスと他のデバイス間の通信内容を傍受し、改ざんすることができます。
- トラフィックハイジャック:攻撃者はユーザー名、パスワード、銀行口座情報などの機密情報を盗むことができます。
- サービス拒否:攻撃者が偽の ARP 応答を継続的に送信すると、ターゲットデバイスが正常に通信できなくなる可能性があります。
ARP 欺骗攻撃の作業フロー#
準備段階:#
- 攻撃者はまずターゲットデバイスとゲートウェイデバイスの IP アドレスと MAC アドレスを特定します。
- 攻撃者はターゲット LAN にアクセスでき、偽の ARP パケットを送信する能力を持っている必要があります。
偽の ARP 応答の生成:#
攻撃者は偽の ARP 応答パケットを構築し、自分の MAC アドレスがターゲットデバイスまたはゲートウェイデバイスの IP アドレスに対応していると主張します。
例えば:
- 攻撃者はターゲットデバイスに偽の ARP 応答を送り、攻撃者の MAC アドレスがゲートウェイの IP アドレスに対応していると主張します。
- 攻撃者はゲートウェイデバイスに偽の ARP 応答を送り、攻撃者の MAC アドレスがターゲットデバイスの IP アドレスに対応していると主張します。
ARP キャッシュテーブルの改ざん:#
ターゲットデバイスが偽の ARP 応答を受信すると、その ARP キャッシュテーブルを更新し、ゲートウェイの IP アドレスを攻撃者の MAC アドレスにマッピングします。
ゲートウェイデバイスもその ARP キャッシュテーブルを更新し、ターゲットデバイスの IP アドレスを攻撃者の MAC アドレスにマッピングします。
トラフィックの傍受:#
ターゲットデバイスとゲートウェイデバイス間の通信トラフィックが攻撃者にリダイレクトされます。攻撃者は:
- パッシブにトラフィックを傍受し、機密情報を盗むことができます。
- アクティブにトラフィック内容を改ざんし、悪意のあるコードを注入したり、データを改ざんしたりできます。
- 通信を遮断し、サービス拒否を引き起こすことができます。
ARP 欺骗攻撃の種類#
一方向 ARP 欺骗:#
攻撃者はターゲットデバイスにのみ偽の ARP 応答を送り、ターゲットデバイスがゲートウェイの IP アドレスを攻撃者の MAC アドレスにマッピングします。
攻撃者はターゲットデバイスから発信されるすべてのトラフィックを傍受できますが、ターゲットデバイスに送信されるトラフィックを傍受することはできません。
双方向 ARP 欺骗:#
攻撃者はターゲットデバイスとゲートウェイデバイスの両方に偽の ARP 応答を送信します。
ターゲットデバイスとゲートウェイデバイスは互いの ARP キャッシュテーブルを更新し、相手の IP アドレスを攻撃者の MAC アドレスにマッピングします。
攻撃者はターゲットデバイスとゲートウェイデバイス間の双方向通信を完全に制御できます。
ARP 欺骗攻撃の危害#
- プライバシーの漏洩:攻撃者はターゲットデバイスの機密情報(ログイン資格情報、クレジットカード情報など)を盗むことができます。
- データの改ざん:攻撃者は送信中のデータパケットを変更し、悪意のあるコードを注入したり、内容を改ざんしたりできます。
- サービス拒否:攻撃者は偽の ARP 応答を継続的に送信することで、ターゲットデバイスが正常に通信できなくなる可能性があります。
- ネットワークの麻痺:大規模なネットワークでは、ARP 欺骗攻撃が LAN 全体の通信中断を引き起こす可能性があります。
ARP 欺骗攻撃を検出する方法#
手動で ARP キャッシュテーブルを確認:#
コマンドを使用して ARP キャッシュテーブルを表示します(例:arp -a
またはip neigh
)。
同じ MAC アドレスに複数の IP アドレスがマッピングされているかどうかを確認します。
ネットワーク監視ツール:#
専門のネットワーク監視ツール(例:Wireshark)を使用してネットワークトラフィックをキャプチャし、分析します。
異常な ARP 応答パケットや重複する MAC アドレスを検出します。
侵入検知システム(IDS):#
IDS(例:Snort)を展開して、ネットワーク内の異常な行動をリアルタイムで監視します。
ARP 欺骗攻撃を防ぐ方法#
-
静的 ARP テーブル:手動で固定の IP-MAC マッピングを設定し、ARP キャッシュテーブルの改ざんを防ぎます。
欠点:維持コストが高く、大規模ネットワークには適していません。 -
ARP 保護機能を有効にする:多くのスイッチは動的 ARP 保護機能(例:Cisco の DAI、Dynamic ARP Inspection)をサポートしています。
これらの機能は ARP パケットの合法性を検証し、偽の ARP パケットをブロックします。 -
暗号化プロトコルを使用する:HTTPS、SSH などの暗号化プロトコルを使用し、トラフィックが傍受されても容易に解読できないようにします。
-
ネットワークセグメンテーション:ネットワークを複数のサブネットに分割し、攻撃者の活動範囲を制限します。
-
ファイアウォールを展開する:不要なトラフィックの出入りを制限するファイアウォールルールを設定します。
-
定期的にネットワークを監査する:ネットワークデバイスの ARP キャッシュテーブルとログを定期的に確認し、異常な行動を発見します。
まとめ#
ARP 欺骗攻撃は、ARP プロトコルの無状態性と検証メカニズムの欠如を利用して、LAN 内で簡単に中間者攻撃を実施することができます。ARP プロトコル自体にはセキュリティ上の脆弱性がありますが、適切なセキュリティ対策(静的 ARP テーブル、動的 ARP 保護、暗号化通信など)を講じることで、このような攻撃を効果的に防ぐことができます。ネットワークセキュリティ管理者にとって、ARP 欺骗攻撃の原理と防御方法を理解することは、LAN の安全性を確保するために重要です。