JVNTA#94876636
DHCPのオプション121を利用したVPNのカプセル化回避の問題
DHCPのオプション121をサポートする環境でVPN接続する場合、トラフィックの宛先を強制的に変更し、VPNトンネル外に送信することでカプセル化を回避することができる問題(CVE-2024-3661)が報告されています。
本問題の報告者は、この問題を「TunnelVision」と呼んでいます。
以下のオペレーティングシステムにおいて、ルーティングルールのみに依存してホストのトラフィックを保護するVPNを利用している場合、本問題の影響を受けます。
- RFC 3442仕様に従ってDHCPクライアントを実装し、DHCPのオプション121をサポートするオペレーティングシステム
- Windows、Linux、iOS、MacOSなど
DHCP RFC 3442では、ネットワーク管理者がクライアントのルーティングテーブルにスタティックルートを指定できる「オプション121クラスレススタティックルート」を定義しています。このオプション121をサポートする環境において、VPNクライアントと同じローカルネットワーク上の攻撃者は、本オプションを悪用しルーティングテーブルを操作して、VPNクライアントのトラフィックをVPN以外の不正なネットワークに強制的に送信する可能性があります(CVE-2024-3661:TunnelVision)。その後、VPN宛のトラフィックをローカルネットワークにリダイレクトし、VPNを完全にバイパスできます。報告者はこの攻撃を「Decloaking攻撃」と呼んでいます。
この際、クライアント側からはVPNに接続され続けているように見えます。
VPNを使用していない状態となります。
VPN上で平文通信を行う想定の場合は、攻撃者によってすべての通信内容を取得される可能性があります。また、通信が暗号化されている場合でも、VPN接続では入手できないはずの宛先IPアドレスおよび送信元IPアドレスの情報を取得される可能性があります。
VPN実装者が実施できる対策
ネットワーク名前空間を利用する
Linux環境では、VPNを使用するすべてのアプリケーションに対して、物理インターフェイスを含む別の名前空間にトラフィックを送信する前にネットワーク名前空間を使用する機能が存在します。この機能を利用することで本問題の影響を回避することができます。
詳細は、WireGuard’s documentationを参照してください。
VPNユーザーが実施できる対策
ワークアラウンドを実施する
- 信頼できないネットワークを使用しない
- ホットスポット(携帯端末によって制御される一時的なWi-Fiネットワーク)を利用する
-
Leviathan Security Group
TunnelVision -
WireGuard
Routing & Network Namespaces