OpenVPNは長年にわたり、インターネット経由で安全なポイントツーポイント接続やサイト間接続を構築するための人気の高い選択肢となってきた。オープンソースであることと堅牢な暗号化機能により、多くの組織や個人のセキュリティ対策に欠かせない存在となっている。しかし、最近Microsoftの研究者が行った調査により、この広く信頼されているソフトウェアに重大な欠陥があることが明らかになった。
2024年3月、Microsoftは協調的脆弱性開示(CVD)を通じて、Microsoft Security Vulnerability Research(MSVR)経由でこの発見をOpenVPNに報告した。現在、Microsoftの研究者は、システムへの不正アクセスに悪用される可能性があるOpenVPN内の複数の脆弱性を発見している。これらの脆弱性は、オンラインでのプライバシーとデータ保護をOpenVPNに依存する世界中の数百万人のユーザーのセキュリティを深刻に脅かすものだ。
発見された脆弱性
Microsoftの調査により、OpenVPN内に一連の重大な脆弱性が見つかった。これらの欠陥を組み合わせて悪用すると、攻撃者に標的システムへの無制限のアクセスを許す可能性がある。
- リモートコード実行(RCE):発見された中でも特に深刻な脆弱性の1つにより、悪意のある攻撃者は侵害したシステム上で任意のコードを実行できる。これにより、マルウェアをインストールしたり、データを盗んだり、影響を受けたデバイスを完全に制御したりできる可能性がある。
- ローカル権限昇格(LPE):特定されたもう1つの重大な問題は、ローカル権限昇格の脆弱性だ。システムへの初期アクセスが必要となるものの、この欠陥を利用すれば攻撃者の権限を昇格させ、マシンを広範囲に制御できる。
発見された4つの脆弱性は次のとおり。
| CVE ID | OpenVPNコンポーネント | 影響 | 影響を受けるプラットフォーム |
|---|---|---|---|
| CVE-2024-1305 | Windows TAPドライバー | サービス拒否(DoS) | Windows |
| CVE-2024-27459 | openvpnserv | DoS、LPE | Windows |
| CVE-2024-24974 | openvpnserv | 不正アクセス | Windows |
| CVE-2024-27903 | openvpnserv | RCE | Windows |
| LPE、データ操作 | Android、iOS、macOS、BSD |
1. CVE-2024-1305
Microsoftは、OpenVPNが使用するTerminal Access Point(TAP)アダプターの開発に関わる「tap-windows6」プロジェクトで脆弱性を発見した。このプロジェクトのdevice.cファイルには、TAPデバイスオブジェクトとその初期化のコードがsrcディレクトリに収められている。
このdevice.cファイルでは、CreateTapDeviceメソッドが、デバイスの各種Input/Output Control(IOCTL)を管理するメソッド用のコールバックを備えたディスパッチテーブルオブジェクトを初期化する。そのメソッドの1つがTapDeviceWriteで、書き込みIOCTLを処理する。
このTapDeviceWriteメソッドはいくつかの処理を行った後、最終的にTapSharedSendPacketを呼び出す。このメソッドはさらにNdisAllocateNetBufferAndNetBufferListsを2回呼び出す。そのうち1回は、fullLengthパラメーターを指定してこの関数を呼び出している。
2. CVE-2024-27459
Microsoftが発見した2つ目の脆弱性は、openvpn.exeプロセスとopenvpnserv.exeサービス間の通信メカニズムに存在する。これらのコンポーネントは名前付きパイプを介して通信する。
このopenvpnserv.exeサービスは無限ループ内でopenvpn.exeプロセスからメッセージサイズを継続的に読み取り、HandleMessageメソッドを呼び出して受信したメッセージを処理する。HandleMessageメソッドは無限ループからサイズを取得し、そのサイズに基づいて読み取ったバイト列を適切な型にキャストする。
この通信メカニズムには欠陥がある。ユーザーが指定したバイト数をスタック上のnバイト構造体に読み込むと、スタックオーバーフロー脆弱性につながる可能性がある。
3. CVE-2024-24974
3つ目の脆弱性は、オペレーティングシステムのリソースへの不正アクセスに関するものだ。openvpnserv.exe サービスは、\\openvpn\\service名前付きパイプ経由で受け取ったユーザー要求に応じて、新しいopenvpn.exeプロセスを作成する。この脆弱性により、リモートアクセスで名前付きサービスパイプに接続でき、攻撃者はサービスとやり取りしたり、サービス上でリモートから処理を実行したりできる。
4. CVE-2024-27903
最後に、Microsoftは、エンドポイントデバイス上のさまざまなパスからプラグインを読み込めるOpenVPNのプラグイン機構に脆弱性を発見した。攻撃者はこの動作を悪用し、別々の場所から悪意のあるプラグインを読み込むことができる。
攻撃者はこれらの脆弱性をどう悪用できるのか
Microsoftによると、攻撃者は発見された4つの脆弱性のうち少なくとも3つを悪用して、RCEやLPEを実現できる。これらの脆弱性を組み合わせれば、強力な攻撃チェーンを構築できる。
ただし、攻撃チェーン全体を悪用するには、いくつかの調整が必要になる。具体的には、openvpnserv.exeをクラッシュさせるように設計された悪意のあるペイロードと、クラッシュ後のopenvpnserv.exeの動作を模倣するペイロードを、悪意のあるプラグインを使って読み込まなければならない。
LPEを達成した攻撃者は、Bring Your Own Vulnerable Driver(BYOVD)などの手法を使ったり、既知の脆弱性を悪用したりして、エンドポイントをさらに制御できる可能性がある。これには、Microsoft Defenderなどの重要なプロセスでProtect Process Light(PPL)を無効化したり、その他の重要なシステムプロセスを回避・妨害したりする行為が含まれる可能性がある。こうした行為により、攻撃者はセキュリティ対策を回避し、システムの中核機能を操作し、検知されないまま支配を確固たるものにできる。
想定される影響
これらの脆弱性の悪用に成功すると、壊滅的なデータ侵害につながる可能性がある。機密性の高い個人情報、財務データ、企業秘密が悪意ある者の手に渡り、なりすまし、金融詐欺、評判の毀損を招く恐れがある。
また、データ侵害の事後対応は、財務面で甚大な負担となる可能性がある。組織は、インシデント対応、弁護士費用、復旧作業に伴う多額のコストを負担することになり得る。個人も、なりすましからの回復や信用情報の監視に費用がかかる可能性がある。
さらに、データ損失に加え、攻撃者は侵害したシステムを完全に制御できるようになり、ランサムウェアをインストールしたり、業務を妨害したり、さらなる攻撃の足掛かりとしてシステムを利用したりできる。
パッチの適用
発見された重大な脆弱性に対応するため、OpenVPNは迅速にセキュリティ上の欠陥に対処するパッチをリリースした。2.5.10未満および2.6.10未満のOpenVPNバージョンは、既知の脆弱性の影響を受ける。影響を受けるバージョンを実行していないか確認し、該当する場合は、OpenVPN 2.6.10で利用可能な必要なパッチを速やかに適用してほしい。
悪用のリスクをさらに抑えるには、次の追加対策を検討してほしい。
- ネットワーク内のすべてのデバイスを、OpenVPNのWebサイトから入手できる最新のパッチで更新する。
- OpenVPNクライアントをインターネットから切断し、別のネットワークセグメントに隔離する。
- OpenVPNクライアントへのアクセスを許可されたユーザーだけに制限する。
さらに、適切なネットワークセグメンテーションを実施し、強固なユーザー名とパスワードを要求し、書き込みアクセス権を持つユーザー数を制限することで、リスクをさらに低減できる。
プライベートおよびエンタープライズ分野におけるエンドポイントセキュリティの重要性
OpenVPNはさまざまなベンダー、業界、分野で広く利用されているため、特定された脆弱性は多様なデバイスや環境に影響を及ぼす可能性があり、脆弱性管理を困難にしている。これらの脆弱性の悪用には、ユーザー認証、OpenVPNの内部メカニズムに関する深い理解、中級レベルのOS知識が必要となる。しかし、悪用に成功すれば、個人用および企業用のエンドポイントに深刻な影響を及ぼす可能性がある。
攻撃者は、OpenVPNの脆弱なバージョンを利用してデバイスに対する多段階攻撃を実行し、完全な制御を得る可能性がある。このレベルの制御を奪われると、機密データの窃取、データの改ざん、さらには重要情報の破壊につながり、個人の環境とビジネス環境の双方に重大なリスクをもたらす。
今回の脆弱性の発見は、責任ある開示の必要性と、企業システムおよびエンドポイントシステムを保護する重要性を浮き彫りにしている。また、多様なプラットフォーム上のデバイスを守り、すべてのユーザーに対する保護を強化するには、セキュリティコミュニティ全体の取り組みが必要であることも示している。
エンドポイントセキュリティをネットワークセキュリティソリューションと統合して保護を強化し、複数の脅威を網羅的に防御する統合管理を実現する方法を学んでほしい。





