ARPポイズニング(ARP Poisoning)とは、ネットワーク上での通信を盗聴したり、不正に操作したりする目的で行われる「中間者攻撃(Man-in-the-Middle攻撃)」の一種です。ARPポイズニングは、LAN(ローカルエリアネットワーク)内のデバイス間で通信を行うためのARP(Address Resolution Protocol)を悪用して行われ、通常、攻撃者が偽のARPメッセージを送信して、他のデバイスに誤ったMACアドレス情報を登録させることによって実行されます。
ARPポイズニングによって、通信データが本来の送信先ではなく攻撃者のデバイスに転送されるため、攻撃者はそのデータを盗聴し、場合によっては改ざんすることも可能です。この手法は、LAN環境で比較的容易に実行できるため、企業ネットワークや公共Wi-Fiなどの安全性が不十分な環境で多用される攻撃手法です。
ARPポイズニングの仕組み
ARPポイズニングは、ARPの仕組みとその脆弱性を悪用して行われます。
- ARPの基本的な役割
ARPは、IPアドレス(論理アドレス)をMACアドレス(物理アドレス)に変換するプロトコルであり、LAN内のデバイスが通信を行う際に必要です。例えば、あるデバイスが別のデバイスにデータを送信する際、相手のIPアドレスを基にARPを使用して相手のMACアドレスを取得し、正しい送信先にデータを届けます。 - ARPテーブルの更新
各デバイスは、ARPによって取得したIPアドレスとMACアドレスのペアを「ARPテーブル」に保存し、後に同じデバイスに通信を行う際に再利用します。このARPテーブルは定期的に更新されますが、ARPメッセージを受信するたびにその内容が書き換えられるため、悪意のある情報にも容易に上書きされるという弱点があります。 - 偽のARPメッセージ送信によるポイズニング
攻撃者は、標的のデバイスに対して偽のARPメッセージを送信し、「特定のIPアドレスが攻撃者のMACアドレスである」と誤認させます。この結果、標的デバイスは本来の送信先の代わりに攻撃者のデバイスへとデータを送信するようになり、攻撃者が通信内容を盗聴したり、改ざんしたりできるようになります。
ARPポイズニングの例
- ターゲットAとターゲットBが同じLAN内にいる
- 攻撃者がターゲットAに「ターゲットBのIPアドレスは攻撃者のMACアドレスである」という偽のARPメッセージを送信
- ターゲットAのARPテーブルに誤った情報が登録される
- ターゲットAからターゲットBへの通信が攻撃者を経由する
このようにして、攻撃者が通信内容を盗聴する中間者攻撃が成立します。
ARPポイズニングの攻撃手法と用途
ARPポイズニングは、以下のような用途や手法で実行されることが多いです。
1. スニッフィング(盗聴)
ARPポイズニングによって通信が攻撃者を経由するようになった場合、攻撃者はスニッフィング(パケット盗聴)を行い、平文で送信される情報を取得します。これにより、ユーザー名やパスワード、クレジットカード情報などの機密情報が盗まれる可能性があります。
2. 中間者攻撃(MITM)
ARPポイズニングは、中間者攻撃の一環としても使用され、攻撃者は通信内容を改ざんすることができます。例えば、銀行の振込先口座を改ざんすることで、ユーザーが誤って攻撃者の口座に送金するよう誘導することが可能です。
3. DoS攻撃(サービス妨害)
攻撃者がARPポイズニングを使用して特定のIPアドレスを誤ったMACアドレスにマッピングさせると、デバイスが正しい通信相手に接続できなくなり、ネットワークが停止することがあります。これにより、サービス停止を目的としたDoS攻撃が実行される場合があります。
4. セッションハイジャック
ユーザーのセッションIDを盗み出し、不正にアクセスを行うためにARPポイズニングが使用されることもあります。例えば、攻撃者がユーザーのウェブセッションを乗っ取ることで、アカウント情報を取得したり、アクセス制限のあるデータに不正アクセスしたりすることが可能です。
ARPポイズニングの検出方法
ARPポイズニングの検出には、以下の方法が有効です。
- ARPテーブルの監視
デバイスのARPテーブルを定期的に監視し、同一のIPアドレスに対して異なるMACアドレスが繰り返し登録されている場合、ARPポイズニングの疑いがあります。異常なエントリが検出された際には、ネットワーク管理者が早急に対処することが推奨されます。 - IDS/IPSの導入
侵入検知システム(IDS)や侵入防止システム(IPS)は、ARPポイズニングを含むネットワーク攻撃をリアルタイムで検出し、通知や対策を行うことが可能です。これにより、ARPポイズニング攻撃の検出精度が向上します。 - アクティブ監視ツールの利用
Wiresharkなどのネットワーク監視ツールを使うと、ネットワークトラフィックの異常を検知することが可能です。ARPリクエストの異常な増加や、同一IPからの多数のARPリクエストなどが見られる場合、ARPポイズニングの兆候と考えられます。
ARPポイズニングの対策
ARPポイズニングに対する対策には、次のような方法が有効です。
- 静的ARPエントリの設定
静的ARPエントリを設定することで、特定のIPアドレスとMACアドレスの対応を固定することができます。これにより、偽のARPメッセージによる誤登録を防ぐことができます。ただし、大規模なネットワークでは静的設定が困難な場合があります。 - セキュアなプロトコルの利用
通信にHTTPSやVPNなどの暗号化プロトコルを使用することで、たとえARPポイズニングによって通信が攻撃者に傍受されたとしても、内容が暗号化されているため、情報の盗聴や改ざんのリスクを軽減できます。 - ダイナミックARPインスペクション(DAI)
DAIは、スイッチでARPリクエストとレスポンスを検査し、正当なARPリクエストのみを許可する機能です。これにより、ARPポイズニングによる不正なARPメッセージの送信が防止されます。多くの管理者向けスイッチでサポートされており、ネットワークセキュリティの向上に役立ちます。 - VPNの使用
公共Wi-Fiなどのセキュリティが不十分なネットワークを利用する際には、VPN(Virtual Private Network)を使用して通信を暗号化することで、ARPポイズニングの影響を最小限に抑えることができます。 - 二要素認証の導入
認証情報が盗まれるリスクに対処するため、二要素認証(2FA)を導入することで、たとえユーザー名やパスワードが盗まれた場合でも、不正アクセスを防ぐことができます。
まとめ
ARPポイズニングは、LAN環境におけるARPプロトコルの脆弱性を悪用した中間者攻撃の一種であり、情報窃取、データ改ざん、サービス妨害などのリスクを引き起こします。ネットワーク上の通信を乗っ取ることで、攻撃者はさまざまな不正行為を行うことが可能です。
ARPポイズニングに対抗するには、静的ARPエントリの設定、HTTPSやVPNの利用、ダイナミックARPインスペクション(DAI)の導入、二要素認証などの対策が効果的です。また、ARPテーブルの監視や侵入防止システムの活用も、ARPポイズニング攻撃を検出し、防御するために役立ちます。