IPVanish macOS用VPNアプリの深刻な脆弱性が発見、特権昇格とコード実行を可能に
IPVanish VPNアプリケーションのmacOS版に深刻なセキュリティ脆弱性が発見されました。この脆弱性により、任意の非特権ローカルユーザーがユーザーの操作なしで任意のコードをroot権限で実行できる可能性があります。この攻撃は、macOSの標準セキュリティ機能、コード署名検証を含む、をバイパスします。
脆弱性の詳細
この脆弱性は、IPVanishのmacOSヘルパートゥールが接続するXPCクライアントを認証しないことから生じています。これにより、攻撃者は特権昇格を可能にします。
攻撃のフロー
攻撃者は、XPC接続を確立した後、ヘルパートゥールが入力メッセージを盲目的に信頼することを利用します。ヘルパートゥールはコマンド識別子を直接特権操作にマッピングし、パラメータを検証せずに抽出します。
脆弱性の詳細な分析
最も巧妙な部分は、コード署名検証のバイパスです。ヘルパートゥールには、ファイルをroot所有のディレクトリにコピーする機能がありますが、この機能はファイルが実行可能である場合のみ署名をチェックします。攻撃者は、この論理エラーを悪用し、/tmp/などの世界読み書き可能なフォルダに非実行可能なスクリプトを作成します。このスクリプトが実行可能でないため、ヘルパートゥールは署名チェックをスキップし、ファイルを特権ディレクトリにコピーし、その後実行可能にします。
脆弱性の対策
- XPC認証: 接続するプロセスのコード署名を検証する厳格な呼び出し元認証を実装します。
- 署名検証: ファイルコピーの論理を修正し、ソースファイルが実行可能であるかどうかに関係なく常にコード署名を検証します。
- パスのホワイトリスト: 唯一承認された、ハードコードされたアプリケーションバンドルの場所から始まるファイルのみが実行またはコピーされることを保証する厳格なパス検証を適用します。
結論
この脆弱性は、不適切なXPCの実装による深刻なリスクを示しています。macOSソフトウェア開発では、厳格な境界検証の必要性が強調されています。
