LAN内の「透明な盗聴者」を見抜け:ARPスプーフィングと戦うための実践的DFIR
現場でインシデント対応をしていると、意外なほど「ネットワークの信頼」を前提とした設計が仇になっているケースに出くわす。特に、ローカルネットワーク(LAN)内でのARPスプーフィングによる中間者攻撃(MitM)は、ファイアウォールやWAFをすり抜ける「死角」だ。
今日は、ルーターと端末の間に忍び込み、通信を覗き見・改ざんする攻撃者の手口と、それを現場でどう検知・遮断するかについて、綺麗事抜きで語らせてもらう。
—
1. なぜ「ARP」は脆弱なのか?
ARP(Address Resolution Protocol)は、IPアドレスをMACアドレスに変換するためのプロトコルだが、設計思想が「善意の通信」に基づいている。
攻撃者は、特定のターゲットに対して「私がデフォルトゲートウェイ(ルーター)だ」という嘘のARP応答(Gratuitous ARP)を送りつける。ターゲットのARPキャッシュテーブルが書き換えられれば、通信はすべて攻撃者の端末を経由するようになる。これがMitMの入り口だ。
現場で見る「動かぬ証拠」:
- ARPキャッシュの不整合:
arp -aを実行し、ゲートウェイのMACアドレスが本来のものと異なる。 - 重複するMACアドレス: 同じIPに対して異なるMACアドレスが頻繁に割り当てられている、あるいは一つのMACアドレスが複数のIPに紐付いている。
—
2. 攻撃の手口(PoCのメカニズム)
攻撃者は arpspoof や Bettercap といったツールを使う。Pythonで書くと、この処理は驚くほどシンプルだ。以下は概念的なコードだが、これがネットワーク内で実行されると、いかに恐ろしいか理解してほしい。
# 概念実証: ARPスプーフィングのメカニズム(scapyライブラリを使用)
from scapy.all import ARP, send
def spoof(target_ip, spoof_ip):
# ターゲットに対して、なりすまし対象のIPと自MACを紐付けるパケットを作成
packet = ARP(op=2, pdst=target_ip, hwdst="ターゲットのMAC", psrc=spoof_ip)
send(packet, verbose=False)
# ゲートウェイとターゲットの両方に嘘をつき続ける
# これをループで回すと、通信が攻撃者を経由し始める
この処理がバックグラウンドで走っていると、HTTPS化されていない通信は丸裸になり、SSL/TLSであっても「SSLストリッピング」によって強制的にHTTPへダウングレードされるリスクがある。
—
3. 現場で今すぐ打つべき対策
「LAN内だから安心」という考えは今すぐ捨てろ。具体的な防衛策を3つ提示する。
① 静的ARPテーブルの導入(小規模環境)
サーバー等の重要な機器において、ルーターのMACアドレスを固定してしまうのが最強だ。Linuxであれば以下の設定で静的エントリを追加できる。
# /etc/ethers に MAC IP の形式で記述
# 00:11:22:33:44:55 192.168.1.1
# arpコマンドで読み込み(起動時に実行されるようrc.local等に記述)
arp -f /etc/ethers
② セキュリティスイッチによる「DAI」の有効化
企業ネットワークであれば、スイッチ側の機能を使うのが正攻法だ。DAI(Dynamic ARP Inspection) を有効にすると、スイッチがARPパケットを検証し、正規のMAC/IPバインディングと一致しないARPパケットをドロップしてくれる。
③ 開発レベルでの「HTTPS強制(HSTS)」
ネットワークが盗聴されていても、通信そのものを暗号化・保護していれば被害は最小限に抑えられる。Webアプリ開発者なら、必ずHSTS(HTTP Strict Transport Security)を実装すること。
NginxでのHSTS設定例:
# 1年間HTTPS接続を強制し、サブドメインも対象にする
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
—
4. DFIRアナリストからの教訓:ログだけを見るな
インシデント調査の際、アプリケーションログばかり追いかけるエンジニアが多いが、ARPスプーフィングのようなネットワーク層の攻撃は、「通信の遅延」や「証明書エラーの急増」という形で現れる。
- 異常の兆候: 突然、特定のセッションでSSL証明書エラーが出始めたら、それはMitMの警告かもしれない。
- 監視のポイント: ZabbixやPrometheusで、ネットワークインターフェースの「ARPパケットの急増」や「MACアドレス学習のフラッピング」をアラート対象にするべきだ。
最後に
セキュリティは、魔法のツールを一つ入れれば完了するような単純な作業ではない。ネットワークの挙動を正しく理解し、OS、スイッチ、そしてアプリケーションの各層で「相手を疑う」設計を積み重ねること。それが、泥臭いが唯一無二の防御策だ。
今日の解説が、君たちの現場の堅牢性を高める一助になれば幸いだ。何か奇妙なトラフィックを見つけたら、まずは物理層から疑う癖をつけてくれ。それが一流のDFIRへの第一歩だ。
コメント