Windows Container Isolation Framework を悪用したエンドポイント・セキュリティの回避

Hackers Can Exploit Windows Container Isolation Framework to Bypass Endpoint Security

3023/08/30 TheHackerNews — マルウェア検出回避テクニックを活用する脅威アクターたちが、Windows Container Isolation Framework を操作することで、エンドポイント・セキュリティ・ソリューションを回避できる可能性が、新たな調査により判明した。この調査結果は、Deep Instinct のセキュリティ研究者である Daniel Avinoam が、8月の初めに開催された DEF CON セキュリティ・カンファレンスで発表したものだ。Microsoft のコンテナ・アーキテクチャ (Windows Sandbox) は、動的に生成されるイメージと呼ばれるものを用いて、それぞれのコンテナとホストの間でファイル・システムを分離し、また、システム・ファイルの重複を回避するものだ。


つまり、変更可能なファイルのクリーン・コピーと、ホスト上に既に存在する Windows イメージの、変更が不可能なファイルへのリンクを持つ、OS イメージを示すものであり、それにより、OS 全体のサイズを小さくすることが可能となる。

Avinoam は、「その結果として、実際のデータは保存されていないが、システム上の別のボリュームを指す ghost files を含むイメージが作成される。このリダイレクトの仕組みを使ってファイル・システムの操作を難読化し、セキュリティ製品を混乱させることができたらどうなるだろう?」と、The Hacker Newsと共有したレポートの中で述べている。

ここで、Windows Container Isolation FS (wcifs.sys) ミニ・フィルター・ドライバーが登場する。このドライバーの主な目的は、Windows コンテナとホスト間のファイル・システム分離を行うことである。

言い換えれば、現在のプロセスを、作り込まれたコンテナ内で実行させ、ミニ・フィルター・ドライバーを活用して I/O リクエストを処理することで、セキュリティ・ソフトウェアに警告を発することなく、ファイル・システム上のファイルを作成/読取/書込/削除できるようにすることである。


この段階で指摘しておきたいのは、このミニ・フィルターは、フィルターすることを選択した I/O 操作について、フィルター・マネージャーに登録することで、間接的にファイル・システム・スタックにアタッチする。それぞれのミニ・フィルターには、フィルター要件とロード・オーダー・グループに基づき、Microsoft が割り当てた integer 高度値が割り当てられている。

wcifsドライバーの高度値の範囲は 180000〜189999 (特に 189900) だが、サードパーティ製を含むアンチウイルス・フィルターは、 320000〜329999 の高度範囲で機能する。その結果として、コールバックをトリガーすることなく、様々なファイル・オペレーションの実行が可能になるのだ。

Avinoam は、「ウイルス対策ドライバに確認されることなく、IO_REPARSE_TAG_WCI_1 リパース・タグを使ってファイルを上書きできるため、ウイルス対策ドライバの検出アルゴリズムは全体像を把握できず、トリガーされない」と説明する。

とはいえ、この攻撃を実行するには、wcifs ドライバと通信するための管理者権限が必要であり、ホスト・システム上のファイルの上書きには使用できない。

今回の情報公開は、Windows WFP (Windows Filtering Platform) を悪用してユーザーの権限を SYSTEM に昇格させ、悪意のコードを実行する可能性のある “NoFilter” と呼ばれるステルス技術を Deep Instinct が実証したことに伴うものだ。

この攻撃で可能になるのは、WFP を使用して別のプロセスのアクセストークンを複製したり、IPSec 接続をトリガーして Print Spooler サービスを活用し、テーブルに SYSTEM トークンを挿入したり、侵害されたシステムにログインしている別のユーザーのトークンを取得して横移動することなどだ。