MENU

ARPスプーフィングとは?同一ネットワーク内の通信を傍受する中間者攻撃の仕組みと対策ガイド

オフィスのLANに接続しているPCが、知らないうちに同僚や攻撃者に通信を傍受されている——そんな事態が「ARPスプーフィング」によって現実に起こります。ファイアウォールも次世代UTMも、同一セグメント内から発生するこの攻撃には効きません。
外部からの侵入対策は進んでいても、内部ネットワークのセキュリティが手薄なままの組織は少なくありません。

この記事では、ARPの基本からスプーフィング攻撃の仕組み、Dynamic ARP Inspectionなど現場で使える防御手順まで、情シス1人でも実践できるレベルで解説します。

ARPスプーフィングとは?同一ネットワーク内の通信を傍受する中間者攻撃の仕組みと対策ガイド - 解説

目次

ARPスプーフィングとは?なぜ危険なのか

ARP(Address Resolution Protocol / アドレス解決プロトコル)は、IPアドレスからMACアドレスを調べるための仕組みです。PCがゲートウェイ(ルーター)に通信しようとするとき、LAN内に「このIPを持つデバイスのMACアドレスを教えてください」とブロードキャストします。応答が届くと、そのIPとMACの対応をARPキャッシュに記録し、以降の通信に使います。

ARPスプーフィング(ARP Poisoning・ARP毒化とも呼ばれます)は、この仕組みの根本的な欠陥を突きます。ARPには「応答の送信元を検証する機能が存在しない」のです。攻撃者は偽のARP応答を送りつけ、「ゲートウェイのIPアドレスは私のMACアドレスです」と嘘をついてARPキャッシュを汚染します。被害PCはその後、すべての通信を攻撃者のPCを経由して送るようになります。

これがMITM(Man-in-the-Middle Attack / 中間者攻撃)の代表的な形態です。攻撃者は通信を傍受するだけでなく、内容を改ざんして転送することもできます。

攻撃の仕組みを図解する

攻撃が成立するまでの流れを順を追って見てみましょう。

正常な通信では次のようになります。

・被害PC(192.168.1.10)がゲートウェイ(192.168.1.1)にパケットを送る
・ARPキャッシュに「192.168.1.1 = ゲートウェイのMAC(例: aa:bb:cc:dd:ee:ff)」が記録されている
・パケットはゲートウェイへ直接届く

ARPスプーフィングが発動すると次のようになります。

・攻撃者PCが「192.168.1.1のMACは11:22:33:44:55:66(攻撃者のMAC)です」という偽ARP応答を送り続ける
・被害PCのARPキャッシュが書き換えられる
・被害PCはゲートウェイ宛のパケットを攻撃者PCに送ってしまう
・攻撃者は通信内容を傍受・改ざんしたうえで本物のゲートウェイへ転送(被害者は気づかない)

攻撃者はゲートウェイへのARPキャッシュだけでなく、特定PCへのARPキャッシュを汚染して、PC間通信を傍受することも可能です。

ARPスプーフィングで起こる被害

・認証情報の窃取: 暗号化されていないHTTP通信のID・パスワードが盗まれる
・セッションハイジャック: CookieやセッショントークンをキャプチャしてWebアプリにログインされる
・マルウェア配布: HTTPページの本文にJavaScriptを埋め込み、ドライブバイダウンロードを仕掛ける
・内部サービスへの不正アクセス: 社内のプリンター・NAS・イントラサイトへのリクエストが盗聴される
・VoIP盗聴: 内線電話の音声パケットを傍受し、会話内容を録音される

# arpwatch で ARP キャッシュの変化を確認するコマンド例 # ※Linuxサーバー上で実行。攻撃を行うためではなく検知目的で使用する # 現在のARPキャッシュを確認 arp -n # arpscanで同一セグメントのデバイス一覧とMACを取得 sudo arp-scan --localnet # ARPキャッシュの変化をリアルタイムで監視(arpwatchをインストール済みの場合) sudo systemctl start arpwatch sudo journalctl -u arpwatch -f

具体的な防御手順

1. Dynamic ARP Inspection(DAI)をスイッチで有効化する

最も効果的な対策は、L2スイッチのDynamic ARP Inspection(DAI)機能を有効にすることです。DAIは、スイッチ上のDHCPスヌーピングバインディングテーブルを参照してARP応答を検証し、IP・MACの対応が正しくないパケットを破棄します。

Cisco IOS系スイッチでの設定例は次のとおりです。

# VLAN 10に対してDAIを有効化 Switch(config)# ip arp inspection vlan 10 # アップリンクポート(スイッチ間・ルーター接続)はtrustedに設定する Switch(config)# interface GigabitEthernet0/1 Switch(config-if)# ip arp inspection trust # エンドユーザーポートはuntrusted(デフォルト)のまま # ARPレート制限を設定して過剰なARPをブロック Switch(config)# interface range GigabitEthernet0/2 - 24 Switch(config-if-range)# ip arp inspection limit rate 100

DAIはDHCPスヌーピングのバインディングテーブルを前提とするため、DHCP Snoopingも合わせて有効化する必要があります。スイッチングセキュリティ全体の設定については、スイッチングセキュリティ実践ガイド|Port Security・DHCP Snooping・DAIで詳しく解説しています。

2. 静的ARPエントリーを重要サーバーに設定する

ゲートウェイや認証サーバーなど特に保護すべきデバイスについては、静的ARPエントリーを設定することで、ARP応答による上書きを防げます。

# Linuxで静的ARPエントリーを追加する sudo arp -s 192.168.1.1 aa:bb:cc:dd:ee:ff # 永続化するには /etc/ethers に記述し、起動時に読み込む # /etc/ethers の書式: MACアドレス IPアドレス aa:bb:cc:dd:ee:ff 192.168.1.1 # arpコマンドで現在のキャッシュを確認(Flagが"CM"なら静的エントリー) arp -n

ただし、デバイスのNIC交換やIPアドレス変更のたびに手動更新が必要になるため、管理コストが高くなります。ルーターやコアスイッチなど変更頻度の低い機器を対象に絞るのが現実的です。

3. ネットワーク通信を暗号化する

ARPスプーフィングで通信を傍受されても、通信内容が暗号化されていれば実害を最小化できます。

・HTTPSの強制: すべてのWebサービスをHTTPS化し、HSTSを設定してHTTPへのダウングレードを防ぐ
・VPNの活用: 社内ネットワーク内でもVPNトンネルを使って通信を保護する(ゼロトラストアーキテクチャの考え方)
・802.1X認証の導入: 接続端末を認証したうえでVLANに割り当て、未認証デバイスのLAN接続を拒否する
・暗号化プロトコルへの移行: Telnet→SSH、FTP→SFTP/FTPS、HTTP→HTTPSへの完全移行

4. ARPスプーフィング検知ツールを使う

DAIが使えないアンマネージドスイッチ環境や、既存環境を変更せずに監視したい場合は、検知ツールが有効です。

・arpwatch: Linux上で動作するオープンソースツール。ARPキャッシュの変化を監視し、MACアドレスの変化や新規デバイスをsyslogとメールで通知する
・XArp: GUIベースの検知ツール。ARPスプーフィング攻撃をリアルタイムで可視化する(Windows対応)
・Wireshark: パケットキャプチャで不審なARP応答(Gratuitous ARP)の多発を確認できる

# arpwatchのインストールと起動(Debian/Ubuntu系) sudo apt install arpwatch sudo systemctl enable --now arpwatch # 監視インターフェースを指定して起動する場合 sudo arpwatch -i eth0 # ログを確認(ARP変化を記録) sudo journalctl -u arpwatch -n 50 # WiresharkのフィルターでおかしなARP応答を探す # フィルター式: arp.duplicate-address-detected

中小企業でも今日からできること

「マネージドスイッチの予算がない」「設定変更のリソースがない」という中小企業でも、今日からできる対策があります。

・まずarpwatchを1台導入する: 既存ネットワーク構成を変えずに監視を開始できる。異常なARP変化があればメール通知が届く
・すべての通信をHTTPSに: コストゼロで実施できる根本的な対策。Let’s Encrypt(無料証明書)を使えばすべてのWebサービスをHTTPS化できる
・来客Wi-Fiを業務LANから分離する: ゲストや外部業者が接続するWi-FiはVLANで業務セグメントから切り離し、同一ネットワーク上でのARP汚染リスクを物理的に排除する
・スイッチのリプレース時にマネージドスイッチを選ぶ: 予算が取れるタイミングで、DAI対応のマネージドスイッチに順次移行する計画を立てる

よくある誤解と注意点

【誤解1】HTTPS通信は完全に安全?

ARPスプーフィングと組み合わせた「SSLストリッピング攻撃」では、HTTPSをHTTPにダウングレードして暗号化を解除することがあります。HSTSポリシーの設定と、SSLストリッピング攻撃への対策を合わせて実施することが重要です。

【誤解2】VPNを使えばARPスプーフィングは無意味?

VPNトンネル内の通信は暗号化されているため傍受できませんが、ARPスプーフィングでネットワーク経路を制御している状態でVPNを切断させるDoS攻撃を組み合わせた攻撃手法も存在します。VPNは有効な対策ですが、DAIやネットワーク監視との多層防御が理想です。

【誤解3】Gratuitous ARPはすべて怪しい?

Gratuitous ARP(送信者が自分自身のIPを問い合わせるARP)はIPアドレスの衝突検知や、フェイルオーバー後のARPキャッシュ更新など正常な用途でも使われます。一定時間内に同一IPに対して大量のGratuitous ARPが流れている場合に疑うべきです。

【注意】ARPスプーフィングと不正アクセス禁止法

自組織の管理下にないネットワークでARP操作を行うことは、不正アクセス禁止法や電気通信事業法に抵触する可能性があります。検証は必ず権限のある自組織の検証環境でのみ実施してください。詳細は法律の専門家にご確認ください。

ARPスプーフィングとは?同一ネットワーク内の通信を傍受する中間者攻撃の仕組みと対策ガイド - まとめ

本記事のまとめ

ARPスプーフィングは、古くから知られた攻撃手法ですが、内部ネットワークの対策が手薄な環境では今でも有効です。外部からの侵入対策だけでなく、内部ネットワーク内の横移動・盗聴リスクにも目を向けることが、現代のセキュリティ設計には欠かせません。

脅威 対策 難易度
ARPキャッシュ汚染 Dynamic ARP Inspection(DAI) 中(マネージドスイッチが必要)
重要サーバーへのARPスプーフィング 静的ARPエントリーの設定 低(コマンド1行だが管理が必要)
傍受された通信からの情報窃取 HTTPS強制・VPN・暗号化プロトコルへの移行 低~中
攻撃の検知遅れ arpwatch・Wiresharkによる監視 低(すぐ導入できる)
ゲストデバイスからの攻撃 業務LAN・ゲストWi-FiのVLAN分離 中

PR

実践 パケット解析 第3版(Chris Sanders/オライリー・ジャパン)

Wiresharkを使ったパケット解析の決定版。ARPスプーフィングを含む中間者攻撃の痕跡を実際のキャプチャデータで読み解く技術が身につきます。ネットワーク監視・インシデント調査のスキルアップに最適な一冊です。

関連記事をもっと読む

同じテーマの記事をまとめています。あわせて読みたい記事はこちらからご覧いただけます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次