仮想通貨発掘ワーム「RETADUP」の巧妙な変化、オープンソース言語の利用や検出回避を狙う「ポリモーフィズム」機能

仮想通貨発掘への転向のように、目的や機能を変化させ続けて来た「RETADUP(レタダップ)」の新しい亜種(「WORM_RETADUP.G」として検出)が、「Managed Detection and Response(MDR)」に関連した監視を通して確認されました。この新しい亜種は、キーボードショートカットやマクロ、ソフトウェアの自動実行タスクを作成するために、Windows で利用されるオープンソースのスクリプト言語「AutoHotKey」でコーディングされていました。AutoHotKey は、RETADUP の以前のバージョンが利用していた Windows 自動化用プログラミング言語「AutoIt」と比較的似た言語です。今回確認された亜種は、ワーム活動による拡散時に、ソースコードにわずかな変更を加えることでハッシュ値に基づく検出を回避する「ポリモーフィズム」の手法を利用します。

トレンドマイクロは、今回の亜種を、ある公共機関のエンドポイントで確認しました。RETADUP はすぐにブロックされましたが、このエンドポイントには RETADUP によるものと考えられる痕跡が残っていました。コマンド&コントロール(C&C)通信のプロトコルや過去の検出事例との相関に基づく解析の結果、今回確認された脅威が以前検出された RETADUP の検体と類似していることが判明しました。RETADUPは、2017 年 6 月にイスラエルの病院を狙う情報収集型マルウェアとして確認された後、同年 9 月には仮想通貨を発掘する機能を備える手口に変更していました。そして現時点では、引き続き仮想通貨発掘機能に専念しているようです。

WORM_RETADUP.A WORM_RETADUP.D 「WORM_RETADUP.G」
スクリプト言語 AutoIt AutoIt AutoHotKey

(一部のコンポーネントは AutoIt で作成)
拡散手法 ワーム活動、LNKファイルの作成、リムーバブルメディアに自身をコピー ワーム活動、LNKファイルの作成、リムーバブルメディアに自身をコピー ワーム活動、LNKファイルの作成、リムーバブルメディアに自身をコピー
マルウェアの本体 情報収集型マルウェア 仮想通貨発掘マルウェア 仮想通貨発掘マルウェア
関連ツール Android 端末向けバックドア型不正アプリ ブラウザの閲覧履歴ビューア
目的 情報窃取 仮想通貨の発掘 仮想通貨の発掘

表 1:RETADUP の各バージョンの比較

■スクリプト言語を「AutoIt」から「AutoHotKey」に変更

今回確認された AutoHotKeyを利用する RETADUP は、AutoIt を利用する以前のバージョンとかなりの部分で類似しています。最終的な不正活動はどちらも仮想通貨の発掘であり、そのために仮想通貨「Monero」を発掘するコインマイナーをインストールします。また、拡散や検出回避の手法もよく似ています。

新しい亜種は、スクリプト言語として AutoIt の代わりにオープンソースの AutoHotKey を利用しています。この変更の理由として、オープンソースであることの一般的な利点の他にも、AutoHotKey が比較的目新しい言語であることが考えられます。このことは、AutoHotKey で作成されたマルウェアを検出および解析するためのツールが普及していないことを意味します。

加えて、AutoHotKey を利用する RETADUP は、ソースコードがわずかに異なるバージョンを作成する「ポリモーフィズム」の手法でハッシュ値に基づく 1 対 1 の検出を回避します。以前のバージョンでは、AutoIt v3 のコードを拡張子「.a3x」の実行ファイルにコンパイルして利用していたため、ポリモーフィズムによって検出を回避する機能はありませんでした。

しかし、RETADUP の最新バージョンでもいくつかのコンポーネントは AutoIt で書かれています。AutoHotKey の利用は、マルウェア作成者の好みや類似したスクリプト言語の使用経験を反映したものである可能性も考えられます。

AutoHotKey を利用する RETADUP のコード

図 1:AutoHotKey を利用する RETADUP のコード

■技術的な解析

解析により、AutoHotKey を利用する RETADUP が採用した手法は、AutoIt を利用する以前のバージョンと類似していることが分かりました。ただし、今回確認された亜種は、AutoHotKey で記述したスクリプトを実行するために AutoHotKey のインタープリタを必要とします。そのため、拡散する際に対象 PC に AutoHotKey がインストールされていなかった場合、AutoHotKey をインストールします。また、以前の亜種と同様、不正活動を開始するための主要なファイルとしてショートカットファイル(拡張子:LNK)を利用しますが、新しい亜種では持続的活動と権限昇格のためにスケジュール化したタスクを登録します。

AutoHotKey を利用する RETADUP のコンポーネント

図 2:AutoHotKey を利用する RETADUP のコンポーネント

以下は、タスクをスケジュール化するために実行するコマンドです。

schtasks /create /sc minute /mo 1 /tn bqspogcjposfemiigrgmk /tr “C:\bqspogcjposfemiigrgmk\bqspogcjposfemiigrgmk.exe C:\BQSPOG~1\BQSPOG~1.TXT”

RETADUP がスケジュール化したタスク

図 3:RETADUP がスケジュール化したタスク

不正な AutoHotKey のスクリプトはコンパイルされていないため、検出を回避するための難読化やポリモーフィズムの利用が可能です。難読化の方式として、十六進数の文字コードへの変換が主に利用されています。拡散する際には、このマルウェアのコピーがそれぞれ異なるハッシュ値を持つように、スクリプトのコピーの先頭にコメント化したアルファベットの文字列を追加し、関数名を変更します。

RETADUP が検出回避のために追加した文字列

図 4:RETADUP が検出回避のために追加した文字列(赤枠)

AutoIt を利用するバージョンと同様、AutoHotKey を利用する亜種の主要なスクリプトも、C&C サーバから追加のコンポーネントをダウンロードするボットです。新しいバージョンでも、以前のバージョンで使用していたプロセス名が確認されています。RETADUP は、それらのプロセスの有無をチェックし、C&C サーバとの通信時に確認結果を送信します。仮想通貨発掘プロセスのように、既に実行中のプロセスがあった場合、同じプロセスが新たに実行されることはありません。

拡散のためのプロセスの有無をチェックする RETADUP のコード

図 5:拡散のためのプロセスの有無をチェックする RETADUP のコード

プロセス名(十六進数表現) プロセス名
73747265616D65722E657865 streamer.exe
6C697665776F726B65722E657865 liveworker.exe
7375706572636865636B65722E657865 superchecker.exe
737065656475702E657865 speedup.exe
6E6F76612E657865 nova.exe

表 2:十六進数で表現した拡散のためのプロセス名
※注:これらは、AutoIt を利用する RETADUP が、メインのボットとは別に、拡散のために利用したプロセスです。

RETADUPの C&C 通信

図 7:RETADUPの C&C 通信

RETADUP が C&C サーバに送信する情報には以下のようなものがあります。

  • PC のドライブのシリアル番号先頭30文字、オペレーティングシステム(OS)、OS バージョン
  • ハードコードされたフラグ「1」
  • OS
  • コンピュータ名
  • ユーザ名
  • ハードコードされた文字列「rad」
  • インストールされているセキュリティ対策ソフト
  • 拡散プロセスの有無を表すフラグ(0:無し、1:実行中)
  • 仮想通貨発掘プロセスの有無を表すフラグ(0:無し、1:実行中)

C&C サーバに情報を送信した後、RETADUP は以下のようなコマンドを待機します。

  • update-:新しいコピーをダウンロードし、自身を更新
  • download-:ファイルのダウンロードおよび実行
  • script-:スクリプトを実行
  • updateself-:既存ファイルを変更することで自身を更新
  • sleep-:スリープ

さらに詳細な解析を実施する中で、興味深いスクリプトコマンドを C&C サーバから受信することができました。C&C サーバからの応答は図 8 のようなものでした。

C&C サーバからの応答

図 8:C&C サーバからの応答

この応答を復号すると、図 9 のような AutoHotKey のスクリプトを得ることができました。このスクリプトは、“radnsasdxx.txt” というファイル名で保存され、Monero 発掘コンポーネントをダウンロードして実行します。

仮想通貨「Monero」を発掘するためのスクリプトコマンド

図 9:仮想通貨「Monero」を発掘するためのスクリプトコマンド

以前のバージョンと同様に、AutoHotKey を利用する RETADUP も、リムーバブルドライブを介して拡散することが可能です。RETADUP は、外付けドライブ内で属性情報「D」を確認し、ディレクトリ(フォルダ)を検索します。この「D」という属性は、ディレクトリであることを表します。ディレクトリを発見した RETADUP は、元のディレクトリからすべてのファイルをコピーし、属性を「SH」に設定します。「S」はシステム属性、「H」は隠しファイル属性であることを表します。その後、RETADUP はショートカットファイル(LNK)を作成します。この LNK ファイルをダブルクリックすると、フォルダ内のファイルが実行されます。

ディレクトリを検索する RETADUP のコード

図 10:ディレクトリを検索する RETADUP のコード

ファイルをコピーして LNK ファイルを作成する RETADUP のコード

図 11:ファイルをコピーして LNK ファイルを作成する RETADUP のコード

■仮想通貨発掘コンポーネントとその活動

今回確認された RETADUP の仮想通貨発掘コンポーネントは、以前のバージョンと同様に、バイナリファイルが埋め込まれた AutoIt のコンパイル済み実行ファイルです。このバイナリファイルは、注入されたモジュールの形で埋め込まれています。この実行ファイルは直接メモリに読み込まれます。バイナリファイルの中には、圧縮されたオープンソースのコマンドライン発掘ツール「XMRig」のコンポーネントと設定ファイルが格納されています。XMRig の設定ファイルは感染 PC の「%APPDATA%\<ランダムな文字列>」フォルダに展開されます。また、Monero の発掘にはプライベートプールが利用されます。

UPX で圧縮された XMRig は以下のような正規プロセスのいずれか 1 つに注入されます。

  • Notepad.exe
  • Explorer.exe
  • SYSWOW64\wuapp.exe
  • SYSWOW64\svchost.exe
  • System32\wuapp.exe
  • System32\svchost.exe

感染後の RETADUP のコンポーネント

図 12:感染後の RETADUP のコンポーネント

”notepad.exe” のプロセスに注入された仮想通貨発掘コンポーネント(発掘パラメータとともに起動)

図 13:”notepad.exe” のプロセスに注入された仮想通貨発掘コンポーネント
(発掘パラメータとともに起動)

RETADUP の仮想通貨発掘コンポーネントが利用される設定ファイル

図 14:RETADUP の仮想通貨発掘コンポーネントが利用される設定ファイル

■被害に遭わないためには – プロアクティブなインシデント対応戦略の重要性

検出を回避し自身を隠ぺいする RETADUP のような脅威は、エンドポイントからネットワーク、そしてサーバにいたるオンライン領域の実態を把握することの重要性を強調する事例です。自社が利用するオンライン領域の可視性を向上することで、マルウェアの攻撃経路やその影響を詳細に調査することが可能になり、より良い対策と回復策を取るために必要な情報を収集することができます。

また、24 時間体制の監視、綿密な調査、類似事例との相関分析も有効です。これにより、セキュリティアナリストは、ある事例が偶発的なものなのか標的型攻撃の一部なのか、あるいはばらまき型のサイバー犯罪キャンペーンなのか等、事例毎により意味のある情報を提供することが可能になります。

ポリモーフィズムや比較的目新しいスクリプト言語を利用する RETADUP のような脅威は、類似した脅威や特定の脅威をプロアクティブに検出するための時間やリソースを持たない通常の情報システム担当チームにとっては対策が困難です。脅威の検出だけにとどまらず対応や回復までをカバーする「MDR」のようなサービスの利用は、変化を続ける脅威を阻止するための 1 つの選択肢と言えます。

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

クロスジェネレーションで進化を続ける「XGen™セキュリティ」は、AI 技術をはじめとする先進技術と実績の高いスレットインテリジェンスを融合した防御アプローチにより、データを保管するサーバ、データを交換するネットワーク、データを利用するユーザの各レイヤーで最適化されたセキュリティを提供します。Web/URLフィルタリング、挙動解析、カスタムサンドボックスのような機能を備えたクロスジェネレーション(XGen)セキュリティアプローチは、既知または未知/未公開の脆弱性を狙い、個人情報の窃取や暗号化などをする脅威をブロックします。XGen は Hybrid Cloud Securityエンドポイントセキュリティ、そして Network Defense に組み込まれています。

■侵入の痕跡(Indicators of Compromise、IoC)

RETADUPのワームまたはボットコンポーネント「WORM_RETADUP.G」に関連する SHA256 値は以下の通りです。

  • 0d46314542c3fd60a96f0278d9e0c324f2a45637bf2461a9b9b5fbef22aa22ab
  • 0349720802e1bee7cccef494200fba9acc4bae5fd9b1c722f14f1e8dcc3e722a
  • f8240d76439fd77a826e5638ef4af539060acc88ac6a907efda83340fb0e99e7
  • 84b5dfba8d21946097fdef49d88882808caeb40950a1ab272daf20658e55ef7f
  • aa9a5def84f907a46c4261b095b2e55e04e95829f2f467487897ff8813bc512b
  • 284f986003df842b7bdde0fc47c4c8878f7b984cfca3cb1ec893c5c8a570b417
  • d9bdeeddf9a884185086e28d66ceec8d9ceccc33258b7089a7b2f4552e1a1bea

RETADUPの仮想通貨発掘コンポーネントに関連する SHA256 値は以下の通りです。

  • 846a78fbc154acaf43095a767dd423326afe4383d2b597c01b09cd01a6e6c978(COINMINER_RETADUP.A)
  • 4495e70226cb68011cdff8a60f4e7b8374906dd056534087ca93dd2911e29a99(COINMINER_RETADUP.A)
  • 23f4033fe8e192767fb9e4bcbf7b7a9056a1e6d72954fbf18006eca4697c963a(TROJ_RETADUP.B)
  • e0da6d7df87c1a7471949c6969a677c720fd442eb0be1aa15caf2a4105dc26c0(TROJ_RETADUP.B)

RETADUP に関連する C&C サーバは以下の通りです。

  • hxxp://newalpha[.]alphanoob[.]com:9898
  • hxxp://superalpha[.]radnewage[.]com:9898
  • hxxp://superalpha[.]newminersage[.]com:3333
  • hxxp://newalpha[.]super-gamezer[.]com:9333
  • hxxp://newalpha[.]alphanoob[.]com:9999
  • hxxp://noobminer[.]publicvm[.]com:9898

RETADUP に関連する発掘プールは以下の通りです。

  • hxxp://newminer[.]newminersage[.]com:9393

参考記事:

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