マルウェア
新ステルス型ユニバーサルルートキットローダの追跡
本稿では、署名されたルートキットの一部に関する調査結果について解説します。署名されたルートキットのメインバイナリは、ユニバーサルローダとして機能し、攻撃者が第二段階の署名されていないカーネルモジュールを直接ロードすることを可能とします。
近年の脅威ハンティングに関する調査において、トレンドマイクロは新たな脅威クラスタに遭遇しました。当初、これはMicrosoftの署名されたファイルの誤検出だと判断されましたが、後に現在追跡中である攻撃者の大規模なC&C(コマンド&コントロール)インフラストラクチャと通信する署名されたルートキットの一部であることが判明しました。また、ルートキット「FiveSys」の背後にいる攻撃者と、追跡中の攻撃者は同一であると考えられます。彼らは、中国に起源を持ち、主な被害者層は中国のゲームセクターです。本攻撃者により作成されたマルウェアは、有効な署名を得るためのWHQL (Windows Hardware Quality Labs)認証をパスしていると推測されます。 トレンドマイクロは、2023年6月にMSRC(Microsoftセキュリティレスポンスセンター)に調査結果を報告しました。
メインバイナリは、ユニバーサルローダとして機能し、攻撃者は第二段階の署名されていないカーネルモジュールを直接ロードすることができます。第二段階の各プラグインは、展開される被害者のマシンに合わせてカスタマイズされます。さらに、各マシンにカスタムコンパイルされたドライバを含むプラグインも存在します。各プラグインには、カーネル空間において実行される一連のアクションが含まれます。
発見された亜種は、署名(Authenticode)のSPC_SP_OPUS_INFOフィールドから抽出されたベンダー固有のメタデータに基づき、八つの主要なクラスタで構成されています(図1)。また、これらの亜種が代わりに署名したさまざまなPublisherも明らかになりました。
現在、攻撃者は不正なカーネルドライバに署名するために複数のアプローチを用いています。
- Microsoft署名ポータルの不正利用
- 流出または窃取された証明書の利用
- アンダーグラウンドサービスの利用
本稿では、第一のアプローチを用いる脅威について焦点を当てて解説します(図3)。このアプローチでは、WHQLを悪用することで不正なドライバに有効な署名を付与します。有効な署名の存在により、最新のWindowsバージョンにおいてドライバが正常にロードされます。また、新たに発見された本マルウェアの技術的な詳細についても解説します。Microsoftによって直接署名されたスタンドアローン型のカーネルドライバである本マルウェアは、近年頻繁に出現している進化中の攻撃ベクターです。複雑な機能構築能力を誇示する攻撃者は、動機や最終目的にかかわらず、このようなTTPs(ツール、戦術、手順)を一貫して使用しています。
WHCP不正利用の歴史
図4は、Windowsカーネルトラストモデルの侵害につながるWHCP(Windowsハードウェア互換性プログラム)の不正利用に関連する時系列を示しています。2021年6月、Netfilterルートキットが報告されました。その後、Microsoftは中国のゲームコミュニティにおける位置情報チート(不正行為)の手段として、このルートキットが使用されていることを記載した報告書を発表しました。2021年10月、BitdefenderはFiveSysに関する情報を公開しました。本ルートキットFiveSysは、主にオンラインゲーマーを標的に認証情報の窃取とゲーム内購入のハイジャックを目的として使用されていました。さらに、Mandiantが、多くのサイバー攻撃(ランサムウェア攻撃の事例を含む)で使用されていたマルウェア「Poortry」が関与したWHCPの不正利用についての報告を行いました。
最新ルートキットの追跡
署名された64 bit版ドライバの数が増加したため、KMCS(Kernel Mode Code Signing)ポリシーメカニズムが導入された当時ほど、署名された64 bit版ルートキットの追跡は容易ではなくなりました(図5)。当時は、最低一回の検出結果を伴う署名されたドライバの数は比較的少なく、また、攻撃者もこのドライバを好んで用いていませんでした。その理由として、最新カーネルルートキットの高い開発コスト、カーネルルートキットをマルウェアに含める技術力不足、そして、最新のWindowsバージョンに追加されたセキュリティ防御をバイパスするための技術力不足が挙げられます。以上から、現在では追跡難易度は以前と比較して増しましたが、本脅威が今日のマルウェア情勢から完全に姿を消したというわけではありません。
トレンドマイクロは、Windowsカーネルドライバの検体を以下の項目により評価しました。
- 署名されたドライバの署名が取り消されたか否か
- VirusTotalマルウェアリポジトリを含むマルウェア検索エンジンにより一回以上の検出があるか否か
表1は、トレンドマイクロが収集した検体の各Setにおける分類基準を表しています。
不正挙動監視時にSet 1とSet 2 に分類された新たな検体の追跡作業(図 7)が、本クラスタおよび第二段階のプラグインを提供するC&Cインフラストラクチャの調査へとつながりました。
第一段階の解析
攻撃時に収集した検体の調査に基づき、検体間で複数の類似性を有する二つの異なるクラスタを特定しました(図8)。トレンドマイクロは、VMProtectにより難読化された検体を有するパターンを確認しました。さらに、難読化されていない新しい検体を有するパターンも確認しました。後者は、より多くの機能を持ち、後に署名されています。なお、このパターンは、攻撃者が未だ試作、開発段階であることを示しています。
ほとんどの検体は 、WHCP署名されたドライバです。一つ目のクラスタにおける検体の解析結果を以下に解説します。
ドライバは、まず初期化時に作成されたシンボリック名「\??\ea971b87」を開くことで、ドライバの別のインスタンスがメモリにロードされているか否かをチェックします(図9)。開くことができた場合、DriverEntryからエラーコード 「0FFFFFCFC7 」が返され、ドライバのロードが停止します。次に、まだロードされていなければ、シンボリック名「\??\ea971b87」を作成し、ハンドラを初期化します。これまでに観測済みの亜種に基づくと、本プロセスでは「IRP_MJ_DEVICE_CONTROL 」と 「IRP_MJ_SHUTDOWN 」のみが使用されます(図10, 11)。
次に、ドライバはバイナリコンパイルがデバッグビルドかリリースかをチェックします(図12)。デバッグビルドの場合、実行中に複数のデバッグメッセージが表示されます。なお、これは検体が未だ試作、開発段階にあることを示しています。その後、ドライバはレジストリを編集することで、UAC(ユーザアカウント制御)とセキュアデスクトップモードを無効にします。そして、C&Cサーバによるネットワークアクティビティを開始するために、WSK(Winsockカーネル)オブジェクトを初期化します(図13)。
第一段階 ネットワークの初期化
第一段階のドライバは、C&Cサーバに対するすべてのネットワーク通信を担当します。このドライバは、カーネルモードのNPI(ネットワークプログラミングインターフェース)であるWSKを使用して、カーネル空間における通信を開始します。WSKを使用することで、カーネルモードソフトウェアモジュールはネットワークI/O操作を実行することが可能となります。なお、ここではユーザモードWinsock2でサポートされている場合と同様のソケットプログラミングコンセプトが用いられています(図15)。
DGA(ドメイン生成アルゴリズム)を用いることで、複数のドメインを生成します(図16)。ドメインとIPアドレスの紐づけに失敗した場合、ドライバはハードコードされたIPを使用します。また、ドライバへの接続はポート80が用いられ、その後通信用のTCPソケットが作成されます。
次に、ドライバは周期的にC&Cサーバに接続することで設定情報を入手します。また、下記のように、カーネルドライバのローダとなる選択肢も存在します。
- C&CサーバからデータをByte単位で受信(図21)
- 受信したデータを解読し、復号化(図20)
- 受信したカーネルドライバをディスクには書き込まず、直接メモリにロード(図22)
- 受信したPE(Portable Executable)ファイルを解析し、すべての再配置を実施
- ドライバのエントリポイントを呼び出す(図23, 24)
以上から、カーネルプラグインはディスクに触れることなく、メモリ内にのみ存在することとなります。結果的に、ステルス性が増し、検出を回避することが可能となります。
第二段階 プラグイン
ダウンロードされた第二段階のドライバは、自己署名されています(図25)。これは、ドライバが、既に第一段階のローダによって完全にロードされ、Windowsネイティブドライバローダをバイパスしているためです。従って、第二段階において署名する必要はありません。次に、このドライバは以下を開き、データを読み込み、エンコードします(図26)。
C:˶WINDOWSSystem32˶drivers˶687ae09e.sys
その後、データをメモリチャンクに分割し、サイズおよびMD5ハッシュ値とともに以下のレジストリパスに書き込みます(図27、28)。
\Registry\Machine\Software\PtMyMem
そして、ディスクから以下を削除します(図29)。
C:\WINDOWS\System32\drivers\687ae09e.sys
パーシステンス(持続化)の実現
第一段階のシャットダウン通知関数は、クリーンアップのために、C&Cサーバからカーネルプラグインが受信されメモリにロードされたか否かをチェックします。また、以下のレジストリキーの存在をチェックします。
\Registry\Machine\Software\PtMyMem
存在する場合には、そのサブキーをすべてイテレートすることでデータを解読し、以下のパスをディスクに書き込みます。
C:\WINDOWS\System32\drivers\687ae09e.sys
最後に、システムが再び起動した際に実行される「BaohuName」という名称のサービスを作成します。
第一段階と第二段階(C&Cサーバからダウンロードされたプラグイン)は、攻撃者の自己防御と持続化のために一体となって機能します。この技術は、C&Cサーバからダウンロードされたカーネルプラグインと組み合わされ、本ドライバのメイン持続化メカニズムとなります。第二段階のプラグインに関する詳細分析は以下の通りです。
- 第一段階のドライバがC&Cサーバへ接続し、第二段階のドライバをダウンロードする
- 第二段階のドライバはディスクから第一段階のドライバを読み込む。そして、レジストリへ書き込んだ後に、ディスクから削除する
- 第一段階と第二段階のドライバはメモリ内にのみ存在する
- 再起動の前に、第一段階のシャットダウン通知ルーチンが実行される
- シャットダウンルーチンはレジストリから自らを読み込む。そして、ディスクへ自らを書き込み、次回システムが再起動した際に起動するサービスを作成する
Defender Terminatorプラグイン
このドライバの主な目的は、Windows Defenderソフトウェアを停止することです。まず、以下のレジストリキーのスパイウェア検出機能を無効にします(図30)。
HKEY_LOCAL_MACHINE\\SOFTWARE\\Policies\\Microsoft\\Windows Defender
次に、SecurityHealthServiceサービスを無効にし(図31)、アンチウイルスチェックを停止します(図32)。
そして、IFEO(Image File Execution Options)レジストリに、すべてのWindows Defenderプロセスのエントリを追加します(図33、34、35)。これにより、一つのプロセスがクラッシュした場合、別のプロセスを開始するシステムが構築されます(図36)。起動する実行ファイルは、以下のとおりです。
C:\\Users\\Administrator\\Desktop\\111111111.exe
本プラグインはカスタマイズされていることから、攻撃者は需要に応じて新たなドライバを積極的に開発していると考えられます。 最後に、このドライバは、すべてのWindows Defenderプロセスを終了させます(図37)。
プロキシプラグイン
このプラグインは、マシンにプロキシをインストールし、Web閲覧トラフィックをリモートプロキシマシンにリダイレクトする役割を果たします。最初に、以下のWindowsのプロキシ設定を編集します。
hxxp[:]//4dpyplftay8g90qb7l.kkvgsytcw4hsn3g0nc5r[.]xyz:17654/api/pac/PacReback?key=10252
次に、URLに基づいて別のサーバにリダイレクトする可能性があるJavaScriptをブラウザに組み込みます(図40)。2023年5月31日現在、URLをチェックするスクリプトは、以下の拡張子を除外しています。
- .edu
- .edu:
- .edu/
- .gov
- .gov:
- .gov/
URLが監視対象のドメインである場合、トラフィックを以下のアドレスにリダイレクトします。
HTTP will be redirected to “nt32vn1-redyf[.]gj2oydber4xfa6c[.]com[:]10385”
HTTPS will be redirected to “ybqjb6[.]ady4111523[.]com[:]10385”
以下が、監視対象のドメインです。
www[.]68chuanqi[.]com
www[.]ooyy[.]com
www[.]v8cq[.]com
www[.]bairimen[.]com
www[.]980cq[.]cn
下記ドメインも除外されます(図42)。
www[.]baidu[.]com
e[.]so[.]com
www[.]sogou[.]com
2023年1月6日、トレンドマイクロはスクリプトが変更されたこと、また以下の拡張子を持つすべてのURLを除外していることを確認しました。
- .edu.
- .edu:
- .edu/
- .js
- .css
- .jpg
- .bmp
本プラグインは、DGAにより生成されたドメインのリダイレクトを停止し、プロキシサーバを以下の通り変更しました。
HTTP were now redirected to: 103.45[.]162[.]204:10252;
HTTPS were now redirected to: 103.45[.]162[.]217:10252;
以下が、監視対象のドメインです。
Angdao[.]com[.]cn
www[.]newsensation.com[.]cn
以上から、攻撃者はノイズを減らすためにフィルターメカニズムを最適化していると考えられます。
アトリビューション分析
分析の結果、本ドライバとFiveSysルートキットは、機能、コード、インフラストラクチャ、そして被害者学の観点において多くの類似性があることが判明しました。
- FiveSysと新たに署名されたドライバが共に使用するC&Cインフラストラクチャの類似点
- FiveSysルートキットと第二段階の署名されたルートキットは、共に攻撃者が制御するカスタムプロキシサーバにWeb閲覧トラフィックをリダイレクトすることに重点を置いた機能を有しています。加えて、両方ともカスタムルート証明書をインストールして HTTPS トラフィックをリダイレクトする機能を備えています。FiveSysルートキットの主な目的は、Webトラフィックを監視してリダイレクトすることです。この機能は、新たに署名されたルートキットにおいても確認されています。
- 新たに署名されたルートキットは、ファイルシステム関数のフックや、Mini-Filter関数の事前作成(図44)などFiveSysと同一の機能を多数有しています。
- 中国のシステムのみがFiveSysの感染事例を報告しています。また、トレンドマイクロの検出センサーにより新たに発見されたドライバも同様に、中国国内のみで検出されています。さらに、感染経路として疑われるエントリポイントの一つは、FiveSysと同じトロイの木馬化された中国のゲームです。
まとめ
Windowsのオペレーティングシステムへの特権アクセスを積極的に狙う攻撃者は、ユーザやプロセスの保護を強化するために提供されているEPP(Endpoint Protection Platform)やEDR(Endpoint Detection and Response)に対抗できる技術を使用します。EPPやEDRのような保護レイヤが追加されているため、攻撃者は不正なコードを実行する際に、最も抵抗の少ない経路であるカーネル層またはさらに低いレベルの層を選択します。
攻撃者は、今後も引き続きこのルートキットを使用することで、セキュリティ対策ツールによる不正コードの検出を回避し、被害者の防御力を低下させ、長期間にわたりレーダー網をかいくぐるでしょう。本ルートキットは、下位レベルのシステムコンポーネントをリバースエンジニアリングする技術力とツールを開発するために必要なリソースを有する攻撃グループから今後多用されると推測されます。また、攻撃者は、アンダーグラウンド市場におけるルートキット購入やルートキット作成のためのコード署名証明書購入に十分な資金力を持っています。つまり、この種のルートキットがもたらす危険性は、キルチェーンの初期段階で使用される複雑な標的型攻撃を密かに実行する攻撃者の能力にあります。彼らは、セキュリティ防御を回避し、被害者の環境において不正なペイロードを起動します。
トレンドマイクロは、継続的な取り組みの一環として、IOC(Indicators of Compromise)一般公開のために準備を進めています。
参考記事:
Hunting for A New Stealthy Universal Rootkit Loader
By: Mahmoud Zohdy, Sherif Magdy, Mohamed Fahmy
翻訳:新井 智士(Core Technology Marketing, Trend Micro™ Research)