BYOVDが信頼されたドライバーをWindowsセキュリティに対抗させる

増加する脅威アクターグループが、合法的なWindowsドライバーを悪用して、エンドポイント防御を自分たちに対抗させています。 

Bring Your Own Vulnerable Driver(BYOVD)として知られるこの手法により、攻撃者は電子署名された脆弱なドライバーを読み込み、これを悪用してカーネルレベルの完全なアクセスを取得することができます。 

攻撃者は「合法的な電子署名済みだが脆弱なドライバーをターゲットシステムに読み込みます。その後、そのドライバーの脆弱性を悪用して、任意のカーネルモード(Ring 0)実行、つまりWindowsの最高権限レベルを取得します」と述べていますPicus Securityの研究者たち。

BYOVDアタックの仕組み

攻撃者は足がかりを得た後、BYOVDを展開してEDRおよび他のセキュリティコントロールを無効化し、暗号化、認証情報の盗み取り、または横展開が妨げられないようにします。

関連するドライバーは合法的で電子署名されているため、通常はWindowsの組み込み信頼チェックに合格し、攻撃者は明らかに悪意のあるカーネルコードを展開する代わりに、信頼されたコンポーネントを兵器化することができます。

BYOVDは初期アクセスベクトルではありません。攻撃者は最初にフィッシング、認証情報の盗み取り、公開されているサービスの悪用、または初期アクセスブローカーからのアクセス購入などの方法を通じて、ローカル管理者権限を取得する必要があります。 

管理者権限が確保されると、BYOVDシーケンスが開始されます。

BYOVD実行プロセス

通常、最初のステップは脆弱な.sysドライバーファイルをディスクに落とすことです。攻撃者は多くの場合、C:\Windows\TempまたはC:\Users\Publicなどの書き込み可能なディレクトリにファイルを配置して、権限の障壁を回避します。 

これらのドライバーはしばしば合法的なベンダーインストーラーから直接抽出されます。ハードウェアユーティリティ、監視ツール、またはゲームソフトウェアなどから抽出されるため、表面的な検査では無害に見えます。

次に、攻撃者はドライバーを登録してWindowsカーネルに読み込みます。これは通常、sc.exe createおよびsc.exe startなどのコマンドを使用したWindows Service Control Managerか、NtLoadDriver APIを通じてプログラム的に行われます。 

ドライバーが有効なデジタル署名を保有しているため、Windowsはカーネル空間への読み込みを許可し、すぐにアラームを発生させません。

本当の悪用はドライバーがアクティブになった後に始まります。多くの脆弱なドライバーは、任意のメモリ読み書き操作を可能にする安全でないInput/Output Control(IOCTL)コードを公開しています。 

攻撃者は細工されたDeviceIoControlリクエストを送信することで、これらの欠陥を悪用してカーネルメモリへの直接アクセスを取得します。これは事実上、オペレーティングシステムの保護されたエリアを読み書きする能力を与えます。

任意のカーネル読み書き能力により、攻撃者はエンドポイント保護を体系的に取り除くことができます。 

彼らはカーネル構造からEDRコールバック登録を削除したり、メモリ内の改ざん防止ルーチンにパッチを適用したり、カーネルレベルAPIを使用してアンチウイルスプロセスを終了したり、EPROCESS構造を変更するなどのプロセスオブジェクトを操作して悪意のあるアクティビティを隠したりできます。 

この段階では、セキュリティソフトウェアがまだインストールされているように見えても、エンドポイントは事実上防御なしです。

原神ドライバーの悪用

Picus研究者によって分析された1つの攻撃は、ビデオゲーム原神のアンチチートmhyprot2.sysドライバーを悪用するランサムウェアアクターを含みました。 

合法的に署名されたドライバーをインストールした後、付属の実行ファイルは指定されたアンチウイルスプロセスを終了するよう指示する特定の制御コードをドライバーに送信しました。 

ドライバーはRing 0で動作していたため、ZwTerminateProcessを正常に呼び出してセキュリティサービスを終了し、ランサムウェア展開への道を切り開きました。その後、暗号化フェーズは干渉なしに進行しました。

Windowsドライバーの信頼ギャップ

BYOVDの有効性は、Windowsのドライバー信頼モデルの構造的特性から生じています。 

Windows 10以降、ほとんどの新しいカーネルモードドライバーはMicrosoftのDev Portalを通じて署名される必要があります。 

ただし、後方互換性要件により、特定のレガシークロス署名ドライバーがセキュアブートが無効化されている場合、またはシステムがクリーンインストールではなくアップグレードされた場合などの特定の条件下での読み込みが許可されます。 

これらの互換性例外は、攻撃者が新しい署名を鍛造または盗む必要なく悪用できる信頼ギャップを生成しています。

Microsoftの脆弱なドライバーブロックリストは本質的に反応的です。ドライバーは脆弱性が特定され開示された後にのみ追加され、しばしば既に悪用されている後です。 

更新は通常、主要なWindowsリリースと同時に行われるため、新たに発見されたまたはあまり知られていない脆弱なドライバーは、長期間使用可能なままの場合があります。 

その結果、BYOVDはWindowsセキュリティメカニズムを直接バイパスするのではなく、まだ読み込みが許可されている信頼されたドライバーの利点を活用しています。

BYOVD防御戦略

BYOVDに対する防御には、単一の構成変更またはセキュリティコントロール以上が必要です。 

この手法はカーネルレベルで動作し、合法的なドライバー信頼を悪用するため、組織は階層化されたコントロールを適用する必要があります。

  • ハイパーバイザー保護コード整合性(HVCI)と、Credential Guardを含む完全な仮想化ベースのセキュリティ(VBS)スタックを有効化して、カーネルメモリを改ざんから保護します。
  • Windows Defender Application Control(WDAC)ポリシーとMicrosoftの脆弱なドライバーブロックリストを施行して、読み込みが許可されるドライバーを制限します。
  • 不要なローカル管理者権限を排除し、最小権限を施行することで特権アクセスを強化し、管理者アカウントには多要素認証を要求します。
  • 監視し、疑わしいドライバー読み込みおよびカーネルサービス作成イベント(Sysmon Event ID 6およびWindows Event ID 7045を含む)に対してアラートを発行します。
  • セキュアブートを有効化したままにし、グループポリシーを通じてドライバーインストールを制限して、レガシーまたは不正なクロス署名ドライバーが読み込まれるのを防ぎます。
  • 定期的に不要または古い利便性の高いサードパーティドライバーを監査および削除して、カーネルアタック面を減らします。
  • セキュリティコントロールを継続的に検証し、インシデント対応計画侵害とアタックシミュレーションを通じてテストして、防御がBYOVDテクニックを効果的に検出・制御することを保証します。

これらの対策はともに、影響範囲を制限し、長期的な回復力を構築するのに役立ちます。

レガシードライバーをアタック面として

BYOVDは攻撃者戦術における実践的なシフトを反映しています。脅威アクターはゼロデイ悪用のみに依存する代わりに、環境内に既に存在する合法的で信頼されたコンポーネントを多くの場合活用しています。 

レガシードライバー、広範な管理アクセス、および反応的なブロックリストが存在する限り、この手法は実行可能なままです。 

セキュリティチームの場合、ドライバー信頼は本質的に安全であると仮定するのではなく、全体的なアタック面の一部として評価されるべきです。  

レガシードライバーの悪用により、組織は暗黙的な信頼を最小化し、継続的な検証を施行するゼロトラストソリューションの採用を促進しています。 

翻訳元: https://www.esecurityplanet.com/threats/byovd-turns-trusted-drivers-against-windows-security/

ソース: esecurityplanet.com