2023年7月28日
株式会社Doctor Web Pacific
約1年間にわたって、Doctor WebではWindowsコンピューターがスパイウェア型トロイの木馬Remcos RAT( Trojan.Inject4.57973 )に感染したというインシデントについて、ユーザーから寄せられるリクエストに対応してきました。これらのインシデントを調査するなかで、Doctor Webのスペシャリストはマルチコンポーネントなダウンローダ型トロイの木馬 Trojan.Fruity.1 が主要な役割を果たす攻撃を突き止めました。 Trojan.Fruity.1 を拡散させるため、脅威アクターは悪意のあるサイトと、特別に作成されたソフトウェアインストーラを用意しています。そのようなソフトウェアには、CPU、グラフィックカード、BIOSを調整するためのさまざまなツールや、コンピューターのハードウェア監視ツール、その他のアプリがあります。これらのインストーラはおとりとして用いられ、ユーザーをおびき寄せるための無害なソフトウェアだけでなく、トロイの木馬とそのすべてのコンポーネントを含んでいます。
ユーザーが偽サイトからアプリをダウンロードしようとすると、ファイルホスティングサービスMEGAのWebページにリダイレクトされ、トロイの木馬のインストーラパッケージを含んだzipファイルをダウンロードするよう求められます。
ユーザーがアーカイブから実行ファイルを抽出して実行すると、標準的なインストールプロセスが開始されます。ただし、ユーザーの気をそらすための無害なプログラムがインストールされている裏で、 Trojan.Fruity.1 もまたコンピューターに侵入しています。 Trojan.Fruity.1 とそのコンポーネントは、おとりのアプリと同じディレクトリにコピーされます。
脅威アクターは正規のプログラムをトロイの木馬の「モジュール」化しています。今回のケースでは、 Trojan.Fruity.1 はプログラミング言語Pythonのライブラリの一つに埋め込まれており、有効なデジタル証明書を使用してpython.exeインタープリタによって起動されます。そのほか、VLCメディアプレイヤーや仮想化ソフトウェアVMWareのファイルを悪用したケースも発見されています。
以下は、このトロイの木馬に関連したファイルのリストです。
- python39.dll — 攻撃者によって悪意のあるコードが埋め込まれている、Pythonパッケージに含まれる元々は無害なライブラリのコピー
- python.exe — 改変されたライブラリの起動に用いられる、オリジナルのPythonインタープリタ
- idea.cfg — ペイロードの場所に関するデータを含んだ設定ファイル
- idea.mp3 — 暗号化されたトロイの木馬モジュール
- fruit.png — 暗号化されたペイロード
インストーラからすべてのコンポーネントが抽出されると、標的となるシステムの多段階での感染プロセスが開始されます。以下の画像は、 Trojan.Fruity.1 の動作アルゴリズムの概略図です。
感染の第1段階
python39.dll ライブラリが起動されると、 Trojan.Fruity.1 は idea.mp3 ファイルの内容を復号化し、そこから.dllライブラリとシェルコード(コード№1)を抽出して、それらを感染の第2段階に備えます。また、 idea.cfg ファイルの内容も読み込みます。このファイルにはトロイの木馬が実行する必要のあるペイロードの場所に関する情報を記述した文字列が含まれています。このペイロードはインターネットからダウンロードされる場合と、標的となるコンピューター上のローカルファイルの場合があります。今回のケースでは、トロイの木馬のインストーラによって抽出された fruit.png ファイルが使用されています。
感染の第2段階
デコードされたシェルコード(コード№1)がコマンドラインインタープリタcmd.exeをサスペンド状態で起動させます。次に、ペイロードに関する情報( fruit.png ファイル)、第3段階用のシェルコード(コード№2)、そしてその動作のコンテキストがメモリセクションに書き込まれます。その後、前の段階でデコードされた.dllファイルに、プロセス内のコンテキストのアドレスを指すデータがパッチされます。この.dllファイルが cmd.exe プロセスに挿入され、制御がライブラリに渡されます。
感染の第3段階
挿入されたライブラリは、エンコードされたペイロードの場所に関するデータを含む文字列(第1段階で受け取った)を検証します。文字列が http で始まる場合、ライブラリはファイルをインターネットからダウンロードしようとします。それ以外の場合はローカルファイルが使用されます。今回のケースでは、ライブラリはローカルファイル fruit.png へのパスを受け取ります。このイメージは一時ディレクトリに移され、これを復号化するためにコード№2が起動されます。このイメージファイルは、そこに含まれる二つの実行ファイル(.dllライブラリ)と次の段階を開始するためのシェルコード(コード№3)を隠すために、ステガノグラフィ手法を使用しています。
感染の第4段階
ここまでの手順がすべて完了すると、 Trojan.Fruity.1 はコード№3を起動させます。これにより、アンチウイルスによる検出をすり抜け、情報セキュリティスペシャリストによって分析される際のデバッグプロセスを阻止しようとします。
Trojan.Fruity.1 はProcess Hollowing(プロセスハロウイング)手法を用いて、前の段階で fruit.png イメージからデコードした.dllライブラリの一つと、第5段階を開始するためのシェルコード(コード№4)をプロセスに挿入します。まず初めにMSBuildプログラムの msbuild.exe プロセスへの挿入を試み、失敗した場合は、Windowsコマンドラインインタープリタの cmd.exe プロセスとNotepad アプリの notepad.exe プロセスに同様の試みを繰り返します。
次に、ランダムな名前の.dllファイルが一時ディレクトリに作成されます。イメージからデコードされた別のファイルの内容がこの.dllファイルに書き込まれ、このライブラリもターゲットプロセスに挿入されます。ただし、ここではメモリ内の元のプロセスを悪意のあるプロセスに置き換えることを可能にするProcess Doppelgänging(プロセスドッペルギャンギング)手法が用いられます。今回のケースでは、このライブラリがスパイウェア型トロイの木馬Remcos RATです。
感染の第5段階
ターゲットライブラリに挿入されたシェルコード(コード№4)と.dllライブラリを使用して、 Trojan.Fruity.1 はWindowsの自動起動アプリのリストにpython.exeアプリを追加し、このアプリを起動するタスクをタスクスケジューラ内に作成します。さらに、このアプリをWindowsのビルトインアンチウイルスの除外リストに追加します。次に、シェルコードが python39.dll ファイルの末尾にランダムなデータを書き込みます。これによってハッシュ合計値を変え、このファイルがトロイの木馬インストーラから抽出された元のファイルとは異なるファイルになるようにします。また、ライブラリのメタデータを改ざんして、作成日時を変更します。
現時点では、 Trojan.Fruity.1 はRemcos RATスパイウェアアプリの拡散に使用されていますが、脅威アクターはこのダウンローダ型トロイの木馬を使用してコンピューターを別のマルウェアに感染させることもできます。そのようなマルウェアはインターネットからダウンロードさせることも、またはソフトウェアインストーラの一部として Trojan.Fruity.1 と一緒に拡散することもでき、さまざまな攻撃シナリオを実行する機会をサイバー犯罪者にもたらします。
ソフトウェアをダウンロードする際は、開発元の公式サイトや正式なストアなどの信頼できるソースからのみダウンロードするようにすることが重要です。Dr.Webアンチウイルス製品は Trojan.Fruity.1 とその悪意のあるコンポーネントを検出・駆除します。そのため、Dr.Webユーザーに危害が及ぶことはありません。
Trojan.Fruity.1の詳細 ※英語
Trojan.Inject4.57973の詳細 ※英語
Tell us what you think
To ask Doctor Web’s site administration about a news item, enter @admin at the beginning of your comment. If your question is for the author of one of the comments, put @ before their names.
Other comments