Bring Your Own Trusted Caller(BYOTC)と呼ばれる新たなWindows攻撃手法が明らかになりました。この手法は、攻撃者が信頼済みのセキュリティアプリケーションを悪用して強力なカーネルドライバにアクセスできることを示しています。
この手法は、攻撃者が正規だが脆弱性のある署名済みドライバをインストールしてカーネルレベルのアクセスを得るBring Your Own Vulnerable Driver(BYOVD)と関連する手法です。
しかし、BYOTCは必ずしも脆弱なドライバを必要としません。その代わりに、プロセスの終了や保護されたハンドルのオープンといった機微な機能をすでに備えている正規のセキュリティドライバを標的とします。
こうした機能は、アンチウイルス、エンドポイント検知、アンチチート、システム検査ツールなどでよく必要とされるものです。
悪用を防ぐため、ベンダーは通常、信頼済みのユーザーモードアプリケーションのみが機微なコマンドをドライバに送信できるよう制限しています。しかし、攻撃者がその信頼済みアプリケーションを制御下に置いてしまうと、この保護は機能しなくなります。
BYOTC攻撃では、攻撃者は署名済みのセキュリティプロセスにコードを注入するか、信頼済みプロセスが生成される仕組みを悪用します。
カーネルドライバは、承認済みクライアントからのリクエストとして認識し、これを許可します。しかし実際には、そのリクエストは攻撃者によって操られています。
研究者のXusheng Li氏は、Malwarebytesのmbamchameleon.sysドライバに関するBYOTCの問題を発見しました。このドライバには、WindowsのZwTerminateProcess関数を通じてプロセスを終了できる正規の機能が含まれていました。
この機能を使用する前に、プロセスは信頼済みとして登録される必要があります。ドライバは、呼び出し元のプロセスがMalwarebytesによって署名されているかどうかを確認していました。
一見安全に思えますが、この検証は現在のプロセスの状態ではなく、元の実行ファイルに焦点を当てたものでした。
管理者権限を持つ攻撃者は、署名済みのMBAM.exeアプリケーションを起動し、そこに悪意のあるDLLを注入した上で、改変されたプロセスを信頼済みとして登録し、Microsoft DefenderのMsMpEng.exeプロセスを終了させるコマンドを送信することが可能でした。
このドライバは、署名済みのMalwarebytesプロセスから届いたリクエストであるという理由でこれを受け入れました。そのプロセス内部で攻撃者が制御するコードが動作していることを検知できなかったのです。
これは、BYOTCが抱える重要な問題を示しています。有効なデジタル署名は、そのファイルが起動時に信頼されていたことを証明するものにすぎず、実行中のプロセスがその後改変されていないことまでは保証しないのです。
2つ目の事例は、System InformerとそのSystemInformer.sysドライバに関するものです。Malwarebytesとは異なり、System Informerはクライアントプロセスの整合性を検証するために複数のチェックを使用していました。署名済みファイル、保護されたハンドル、信頼されていないモジュールの読み込み、デバッグ状態、プロセス生成履歴などを検査していたのです。
プロセスの終了といった高い権限を要する操作には、MAXIMUMと呼ばれる最も強い信頼レベルが必要でした、とXusheng氏は述べています。
しかし研究者らは、「悪意ある親プロセス」とでも呼べる弱点を発見しました。悪意のある管理者権限のプロセスが正規のSystem Informerプロセスを生成し、強力な作成者ハンドルを保持し続けることが可能だったのです。そのハンドルを使えば、起動処理中に信頼済みの子プロセスを改変できてしまいます。
ANY.RUNのブラウザ内データ検査で検知・調査・対応をより高速に-> ANY.RUNでSOCを強化
翻訳元: https://cyberpress.org/trusted-apps-kernel-hijack/