LazyHook:ハードウェアブレークポイントを利用してEDRをステルス回避する新フレームワーク

Image

新たに公開されたオープンソースプロジェクトが、最新のワークステーション保護メカニズムの回避を試みているとして技術コミュニティの注目を集めている。hwbpというエイリアスを使用する開発者が、GitHub上でLazyHook というフレームワークを公開し、ハードウェアブレークポイントと構造化例外処理を用いてシステム関数をステルスにフックする手法を示している。この技術により、信頼されたコールチェーン内で任意コードを実行でき、挙動監視システムを効果的に欺くことが可能となる。

プロジェクトの説明によると、多くの防御ソリューションはコール元の解析、読み込まれたモジュールのデジタル署名の検証、そして不審なシステムコールの連続を追跡している。LazyHookは実行コンテキストを操作し、処理がサードパーティコンポーネントではなくMicrosoftのライブラリから発生しているように見せかける。さらに、この手法はプロセスメモリを改変しないため、整合性チェックでは侵入を検知できない。

作者は、ハードウェアデバッグレジスタとシングルステップ例外による実行リダイレクトの組み合わせ利用を強調している。このモードでは、例外ハンドラが対象関数へのアクセスを監視し、実行を一時的に事前定義されたロジックへと迂回させ、その後シームレスに元のコードパスへ制御を戻す。アプリケーションの正しい動作を維持するため、フレームワークはブレークポイントを有効にせずに元の関数を呼び出すことも可能としている。

リポジトリには、いくつかの分かりやすいサンプルが含まれている。1つは、表示テキストを書き換えることでMessageBoxAに干渉する例である。別のサンプルでは、アプリケーションの通常動作を妨げることなくファイル操作を記録するためにCreateFileAをフックしている。さらに別の例では、AMSIメカニズムを対象とし、スキャン対象のコンテンツを人工的に「安全」と判定させている。作者らは、これらのデモは信頼されたコールチェーンに過度に依存するセキュリティシステムが直面するリスクを浮き彫りにするものだと強調している。

開発者は、このような技術は教育目的から、管理された環境での攻撃シミュレーションまで、正当な用途のみに用いられるべきだと強調している。また、実環境のセキュリティ制御を無許可で回避する目的でこれらの手法を適用しようとする行為は、法令違反に当たると警告している。

翻訳元: https://meterpreter.org/lazyhook-new-framework-uses-hardware-breakpoints-to-bypass-edr-stealthily/

ソース: meterpreter.org