ARPの死角:メモリフォレンジックで暴く「見えない」中間者攻撃の残滓
ネットワークの境界防御がどれほど強固になろうとも、一度「LAN内」に侵入した攻撃者にとって、ARP(Address Resolution Protocol)は今なお極上の狩場であり続けている。我々DFIRの現場で見かけるのは、高尚なゼロデイ脆弱性よりも、枯れたプロトコルを悪用した実に泥臭い中間者攻撃(MitM)だ。
今日は、ルーターとエンドポイントの間に割って入る攻撃者の「痕跡」を、ネットワークパケットの表層ではなく、OSのメモリ空間という「深淵」から炙り出す手法について語ろう。
ARPプロトコルの「性善説」という原罪
ARPには、認証という概念が存在しない。この設計上の欠陥は、歴史的遺産として現代のインフラに深く突き刺さっている。攻撃者は、標的のデバイスに対し、「俺がゲートウェイだ」と偽るGratuitous ARPを送りつけるだけで、通信フローを強引に自分の方へ引き寄せることができる。
しかし、熟練した攻撃者は、パケットをただ転送するだけでなく、リアルタイムでペイロードを改ざんする。このとき、ネットワーク監視ツール(IDS/IPS)は「正常な通信量」と誤認してアラートを上げないことがある。ここで必要になるのが、メモリフォレンジックだ。
メモリ上の「不整合」を突く
インシデントレスポンスの現場では、Volatilityなどのツールを使い、被害端末の ARPキャッシュテーブル をメモリダンプから抽出する。しかし、単にリストを眺めるだけでは不十分だ。我々が見るべきは、OSが管理する _ARP_ENTRY 構造体の値と、NICドライバが保持するハードウェア層のMACアドレスとの乖離である。
例えば、Windowsのメモリダンプから特定のネットワークセッションを追跡する場合、以下の手順で「幽霊」を特定する。
Volatility 3を用いた解析のアプローチ
# 1. メモリダンプからネットワーク接続情報を抽出する
vol -f dump.mem windows.netscan
# 2. ARPキャッシュテーブルの整合性確認
# 特定のゲートウェイIPに対して、MACアドレスが複数のNICで重複していないかを確認する
vol -f dump.mem windows.arp_table
もし、ゲートウェイのMACアドレスが、特定のプロセス(例えば、特権昇格を狙う未知のバイナリ)によって一時的に上書きされていた場合、メモリダンプ内の ARPキャッシュ のタイムスタンプと、カーネルの NDIS(Network Driver Interface Specification) が保持するバッファを照合することで、攻撃の「足跡」を復元できる。
防御層の再設計:L2からの脱却
現代のアーキテクトに求められるのは、「ARPスプーフィングは防げない」という前提に立ったアーキテクチャだ。以下の防衛策は、単なる教科書的な推奨ではなく、インシデント現場からの教訓である。
1. ダイナミックARPインスペクション(DAI)の強制
スイッチ側の設定で、DHCPスヌーピングと連携したDAIを適用する。これは、「IPとMACの正当なマッピング」をスイッチがDB化し、矛盾するARPパケットを物理層で破棄する仕組みだ。
# Cisco Catalyst等の設定例
ip dhcp snooping # DHCPスヌーピングを有効化
ip dhcp snooping vlan 10 # 対象VLANを指定
ip arp inspection vlan 10 # VLAN10に対してDAIを有効化
# この設定により、許可されていないマッピングのARPパケットはドロップされる
2. 通信の「暗号化」によるペイロードの防護
MitMの真の目的は、平文通信の盗聴や改ざんにある。TLS 1.3への移行は当然だが、ローカルネットワーク内であっても、mTLS(相互TLS)を用いたサービス間通信の厳格化を検討すべきだ。量子コンピュータの脅威を見据え、耐量子暗号(PQC)アルゴリズムを検証し、トラフィックそのものを「解読不能」にすることが、将来的な防衛のゴールとなる。
生成AI時代、攻撃者は「プロンプト」も乗っ取る
近年のインシデントで最も頭が痛いのは、攻撃者がローカルのMitMを足がかりに、ローカルネットワーク内で動作する生成AIエージェントの「システムプロンプト」を改ざんしようと試みる事例だ。
これに対しては、プロンプトインジェクションに対する「ガードレイル」をネットワーク層ではなく、アプリケーションのコンテキスト層で実装する必要がある。入出力されるトークンの構造を JSONスキーマ で検証し、異常な命令が注入されていないか、メモリ上の LLM推論バッファ を定期的にスキャンするような、EDRの進化系が必要となるだろう。
結びに:技術の深淵に潜む者へ
ARPスプーフィングのような古典的な手法を馬鹿にしてはいけない。それは、攻撃者があなたのネットワークに「物理的に寄り添っている」という究極の証拠だ。
メモリフォレンジックで見るべきは、パケットそのものではなく、パケットがOSのカーネルを通過する際に残した「歪み」である。攻撃者がどれほど巧妙にMACアドレスを偽装しようとも、OSのメモリ構造体に刻まれた「時間軸の矛盾」までは消すことができない。
常に低レイヤを疑え。ネットワークプロトコルの仕様の欠陥を知り尽くした者だけが、その上のレイヤで真に強固な防衛を構築できるのだ。
コメント