防御回避は、高度なサイバー侵害において最も重大な段階の一つとして、静かに地位を確立してきました。エンドポイント保護が突破しにくくなるにつれ、攻撃者は隠れることをやめ、防御機能そのものを無効化する方向へと戦術を転換しました。
近年の多くのランサムウェア攻撃では、アンチウイルス(AV)およびエンドポイント検知・応答(EDR)エージェントを無効化することが、標準的な手順の一つとなっています。
そのなかで特に台頭しているのが「BYOVD(Bring Your Own Vulnerable Driver)」という手法です。過去3年間で急速に普及しました。
攻撃者は、脆弱性を含む正規の署名済みカーネルドライバを標的環境に配置し、その脆弱性を突いてWindowsカーネルを掌握します。
カーネルへの侵入に成功すると、最高レベルの権限で動作し、本来は攻撃を防ぐはずのセキュリティ製品を盲目化・停止させることが可能になります。
Windowsはソフトウェアをユーザーモードとカーネルモードに分離しています。ユーザーモードのアプリケーションには制限が課されますが、カーネルモードのコードはほぼ無制限に動作します。
カーネルモードで動作するプロセスは、セキュリティ製品がシステム活動を監視するために使用する内部データ構造を含め、マシン上のほぼあらゆる情報を読み取ったり変更したりすることができます。
サードパーティ製ドライバは、設計上「信頼済み」として扱われます。攻撃者がマシンの管理者権限をすでに持っていれば、署名済みの脆弱なドライバを配置してロードすることが可能です。
Windowsは署名済みドライバを受け入れ、カーネルはそれを信頼済みとして処理します。攻撃者はその後、特別に細工したコマンド(IOCTL)をドライバに送り込んで脆弱性を引き起こします。
ドライバは攻撃者の指示に従って特権操作を実行しますが、これは通常のプログラムでは実行不可能な操作です。
典型的な攻撃結果としては、AV/EDRプロセスの強制終了、エージェントの動作に必要な権限の剥奪、あるいはカーネル記録の改ざんによるセキュリティ製品へのシステムイベント通知の遮断などが挙げられます。
実際の被害では、エンドポイントが保護されているように見えながら、実質的には何も検知できない状態に陥ることがあります。
Microsoftは、管理者からカーネルへの操作をNTカーネルのセキュリティ境界外として扱っており、こうした悪用への対処は通常の脆弱性対応プロセスの外で行われる場合があります。
カーネルの堅牢化は有効ですが、これらのアクティブな脅威に対する主要な防御手段にはなり得ません。
事後対応型の措置には限界があります。Microsoftの「脆弱なドライバーブロックリスト」は既知のドライバーのロードを防ぎますが、発見からブロックリストへの反映までにタイムラグが生じることが多く、ブロック対象となるドライバーも一部にとどまります。
シグネチャベースの検知も頻繁に失敗します。BYOVDツールは新しい言語で再実装されたり、再コンパイルされたりすることで、ハッシュ値が変わり、静的シグネチャによる検知を回避してしまいます。
防御側にとってより強固な優位性をもたらすのが、振る舞い検知です。どのドライバーが存在するかをチェックするだけでなく、ドライバーがどのように使われているかを監視することで、悪意のあるパターンを検出できます。
セキュリティプロセスの終了、コールバックの削除、ハンドルの剥奪といった異常なIOCTLトラフィックは、どのドライバーから発生したものであれ、不審な挙動として判断できます。
振る舞いルールを活用すれば、ドライバーを使ってセキュリティエージェントを攻撃しようとする試みをフラグ立てまたはブロックでき、未知のドライバーや新たに出現した脆弱なドライバーにも即座に対応することが可能です。
翻訳元: https://cyberpress.org/ransomware-abuses-signed-drivers/