IPVanish VPN アプリケーション for macOS に高い深刻度のセキュリティ脆弱性が発見されました。
この欠陥により、特権のないローカルユーザーが、ユーザーの操作を必要とせずに、root権限で任意のコードを実行できます。
この攻撃は、コード署名検証を含む標準的なmacOS セキュリティ機能をバイパスし、ローカル攻撃者に侵害されたシステムの完全な制御を与えます。
アプリケーションは標準的なmacOS設計を使用しており、ユーザースペースアプリと root として実行される特権的なヘルパーツールの間でタスクを分割しています。
しかし、ヘルパーツールは XPC クライアントを接続する際の認証に失敗し、攻撃者が特権昇格を悪用できる大きなセキュリティギャップを作成しています。
| 脆弱性の詳細 | 情報 |
|---|---|
| CVE ID | CVE-PENDING |
| CVSS スコア | 8.8 (HIGH) |
| 説明 | IPVanish VPN macOS ヘルパーツール内の特権昇格脆弱性により、ローカルの特権のないプロセスが root として任意のコードを実行できます。 |
| CWE | CWE-269 (不適切な特権管理) |
脆弱性コア分析
IPVanish 特権昇格の欠陥は、特権分離制御の完全な崩壊に起因しています。
攻撃は、XPC リスナーを設定してコマンドを受け取る特権ヘルパーツール com.ipvanish.osx.vpnhelper から始まります。
重要な点として、このリスナーは認証またはエンドポイント確認が完全に欠けています。任意のローカルプロセスが Mach サービスに接続し、特定のエンタイトルメントや検証済みのコード署名がなくてもメッセージを送信できます。

接続が確立されると、ヘルパーツールは受け取る XPC メッセージの内容を盲目的に信頼します。
ヘルパーはコマンド識別子を抽出し、特権操作に直接マップします。
さらに重要なことに、OpenVPN バイナリと設定スクリプトのファイルパスなどのパラメータを、サニタイズや検証なしで認証されていないメッセージから抽出します。
この脆弱性の最も洗練された部分は、コード署名検証のバイパスを含みます。
ヘルパーツールには、root が所有するディレクトリにファイルをコピーするように設計された関数が含まれています。しかし、この関数がファイルのコード署名をチェックするのは、そのファイルが実行可能としてマークされている場合のみです。
攻撃者は、このロジックエラーを悪用して、/tmp/ のようなワールドライト可能なフォルダに悪意のある実行可能でないスクリプトを作成できます。
スクリプトが実行可能でないため、ヘルパーは署名チェックをスキップし、ファイルを特権ディレクトリにコピーし、その後、パーミッションを変更してそれを実行可能にします。
これにより、完全に攻撃者が制御する、未署名の実行可能ファイルが 保護されたシステムフォルダに配置され、root として実行される準備が整います。
悪用ベクトルと対策
認証されない XPC 接続と署名バイパスが整った状態で、攻撃者は 2 つの異なるパスを通じて root コード実行を達成できます。
SecureLayer7 によると、まず、攻撃者は OpenVPNPath パラメータを、悪意のあるスクリプトを直接指すように設定できます。
ヘルパーがこのパスを検証しないため、VPN接続が試みられる前であっても、スクリプトを OpenVPN バイナリとして即座に起動し、即座の root アクセスを与えます。
次に、攻撃者は OpenVPN の --up フックメカニズムを悪用できます。悪意のあるスクリプトを脆弱なコピー関数を通じて渡すことで、スクリプトは特権ディレクトリに配置されます。
VPN 接続が開始されると、ヘルパーは --up パラメータを通じて root としてスクリプトを実行し、二次的な実行パスを提供します。
この重大な欠陥を解決するために、開発者は攻撃チェーンの各段階をブロックするためにディフェンスインデプス保護を実装する必要があります。
| 対策カテゴリ | 必要な主要対応 |
|---|---|
| XPC 認証 | 監査トークンを抽出し、接続プロセスのコード署名を検証して、それが正当な IPVanish アプリであることを確認することで、厳密な呼び出し元認証を実装します。 |
| 署名検証 | ソースファイルが実行可能なパーミッションビットを持つかどうかに関わらず、常にコード署名を検証するようにファイルコピーロジックを修正します。 |
| パスホワイトリスト | 厳密なパス検証を適用して、承認された、ハードコードされたアプリケーションバンドルの場所からのみ、ファイルを実行またはコピーできることを保証します。 |
この脆弱性は、不適切な XPC 実装の重大なリスクと、macOS ソフトウェア開発における厳密な境界検証の必要性を強調しています。
翻訳元: https://gbhackers.com/ipvanish-vpn-for-macos-flaw/