明らかになりつつあるRarogマイニング トロイの木馬

By

Category: Unit 42

Tags: , ,

This post is also available in: English (英語)

概要

ここ数か月の間、Unit 42は、「Rarog」と呼ばれるあまり知られていない暗号通貨マイニング トロイの木馬を調査してきました。

Rarogは、2017年6月以降さまざまな地下フォーラムで販売され、それ以来、無数の犯罪者によって使用されてきました。今日まで、パロアルトネットワークスは、161の異なるコマンド&コントロール(C2)サーバーに接続している、約2,500の独自のサンプルを観察しました。

トロイの木馬自体は、スラブ神話に由来する火の悪魔、通常は、火の鷹として表現される「Raróg」の名にちなんでいるようです。

Rarogは、主に、Monero仮想通貨のマイニングに使用されるとみなされてきましたが、その他の仮想通貨をマイニングする機能も持っています。ユーザーへのマイニング統計の提供、実行中のマイニングのためのさまざまなプロセッサ負荷の設定、USBデバイスに感染するための機能、追加のDLLを被害端末にロードする機能を含め、多数の機能を備えています。

今までに、世界中で166,000件を超える感染が確認されています。これらの大半は、フィリピン、ロシア、およびインドネシアで発生しています。このマイニング トロイの木馬を使用したさまざまな犯罪者による多数の感染が記録されてきましたが、確認された収益は非常に少ないものでした。私たちが観察した中で最高の収益額は、約120US$です。

地下のRarog

Rarogトロイの木馬は、以下の図でわかるとおり、2017年6月にロシア語を話す犯罪者の地下サイトに初めて登場しました。

図1 Rarogマルウェアに関するロシアの地下サイトへの投稿
図1 Rarogマルウェアに関するロシアの地下サイトへの投稿

マルウェアは6,000ルーブルで販売されています。今日の為替レートでは、約104US$です。さらに、潜在する購入者がインターフェイスと対話して、「試運転」を実行できるように、ゲスト管理パネルが提供されています。このインターフェイスの見かけは以下のとおりです。

図2 Rarog管理パネル
図2 Rarog管理パネル

上記の管理パネルに示されている2つのTwitterハンドルに注意してください。最初のハンドル「arsenkooo135」は、図1に示されたものを含め、このマルウェアファミリに関するさまざまな投稿で使用されているものと同じハンドルです。私たちは、他のセキュリティ リサーチャーとオンラインで対話している2番目のハンドル「foxovsky」に気付きました。また、このハンドルを、さまざまな他のマルウェア ファミリをホストする同じハンドルを持つGitHubリポジトリに関連付けました。証拠は、これらの2人の個人がこの脅威の背後にいることを示唆しています。

図3 Rarogマルウェア ファミリに関してセキュリティ リサーチャーと対話しているTwitter上のFoxovskyハンドル
図3 Rarogマルウェア ファミリに関してセキュリティ リサーチャーと対話しているTwitter上のFoxovskyハンドル
図4 さまざまなマルウェア ファミリをホストしているFoxovskyのGitHubプロファイル
図4 さまざまなマルウェア ファミリをホストしているFoxovskyのGitHubプロファイル

さらに、GitHub上の「foxovsky」アカウントが自身のGitHubアカウント上でRarogマルウェア ファミリをホストしていることがわかりました。これは、その後、GitHubによって削除されています。

Rarogマルウェア ファミリ

非常に高いレベルで、Rarogマイニング トロイの木馬は、次のアクションを実行します。

図5 Rarogの実行フロー
図5 Rarogの実行フロー

マルウェアは、多数の機能を備えています。Runレジストリ キーの使用、スケジュール化されたタスク、スタートアップ フォルダ内のショートカット リンクを含め、複数のメカニズムを使用して被害端末での永続性を維持しています。要するに、Rarogは暗号通貨マイニング トロイの木馬であり、攻撃者にマイニング ソフトウェアをダウンロードする機能だけでなく、彼らが望む任意のパラメーターでそれを設定する機能も提供しています。また、被害端末の特徴に基づいて、マイニング ソフトウェアを容易に調整することもできます。

暗号通貨マイニングに加え、Rarogは多数のボットネット技法も使用しています。それによって、攻撃者は、その他のマルウェアをダウンロードおよび実行したり、他に対してDDoS攻撃を仕掛けたり、またはトロイの木馬を更新したりといった、多数のアクションを実行できます。マルウェアの実行全体を通じて、リモートC2サーバーへの多数のHTTPリクエストが作成されます。これらすべてのURIとその説明を、以下にまとめています。

URI 説明
/2.0/method/checkConnection リモート サーバーが予期したとおりに応答するように確保するため。
/2.0/method/config マイニング プログラムに提供する引数を取得します。
/2.0/method/delay マイニング プログラムを実行する前にスリープする時間を取得します。
/2.0/method/error エラー メッセージに関する情報を取得し、被害端末に表示します。
/2.0/method/get 被害端末のCPUアーキテクチャに基づいてマイニング ファイルの場所を取得します。
/2.0/method/info マイニング プログラムのexe名を取得します。
/2.0/method/setOnline C2サーバー上の被害端末に関する統計情報を更新します。
/2.0/method/update Rarogトロイの木馬を更新するために使用されます。
/4.0/method/blacklist 照合するためのプロセス名のリストを取得します。いずれかがフォアグラウンドで実行されている場合、Rarogはマイニング操作を一時停止します。
/4.0/method/check リモートC2サーバーにクエリして、IDが存在するかどうかを判別します。
/4.0/method/cores マイニング用に被害端末で使用するCPUのパーセンテージを取得します。
/4.0/method/installSuccess C2サーバーにボットネットの動作をクエリします。
/4.0/method/modules 被害端末上でロードするサードパーティ モジュールを取得します。
/4.0/method/threads 被害端末上で実行するタスクを決定します(USB拡散、ヘルパー実行可能ファイルなど)。

Rarogマルウェア ファミリの動作方法の詳細については、付録を参照してください。

被害端末のテレメトリ

マルウェア ファミリと通信している計161のC2サーバーを特定しました。詳細なリストは、付録に記載されています。これらのC2サーバーの地理的な分布を見ると、ロシアとドイツにかなり集中して存在していることがわかります。

図6 RarogマルウェアをホストするC2サーバーの分布
図6 RarogマルウェアをホストするC2サーバーの分布

新しいRarogサンプルの配信率は過去9か月で変動しており、2017年の8月末から9月末の間に大きな急増がありました。そのピーク時には、2017年9月11日の週に、187の独自のRarogサンプルが検出されました。

図7 時間と共に検出された新しいRarogマルウェア サンプル
図7 時間と共に検出された新しいRarogマルウェア サンプル

これらのサンプルは、全世界で少なくとも166,000台の被害端末が存在することを示しています。世界のほとんどの地域で感染が発生しているものの、以下の図でわかるとおり、フィリピン、ロシア、インドネシアに感染は集中しています。

図 8 Rarog感染の世界的分布
図 8 Rarog感染の世界的分布

サードパーティのMinerGateマイニング サービスを使って購入したRarogには、テレメトリ機能があります。数多くのMinerGate APIキーが検出されてきましたが、それらを利用する攻撃者が得てきた収益はかなり低く、最も稼いでいる攻撃者でさえ、0.58 Monero (XMR)と54 ByteCoin (BCN)しか収益を上げていませんでした。現在の換算レートでは、これは$123.68に相当します。マルウェア自体にかかるコストが$104であることを考えるならば、いかに収益が少ないかがわかります。ほとんどの場合、赤字になることでしょう。

以前のマルウェア ファミリとのつながり

2017年10月後半に、Kasperskyは「DiscordiaMiner」というマルウェア ファミリについてのブログ記事を掲載しました。このブログ記事は、Rarogと共通するいくつもの特徴を備えた仮想通貨マイニングについて説明しています。この記事をさらに精査してみると、このプログラムの作成者が前述の「foxovsky」というユーザーであることがわかります。図4に示されているとおり、このユーザーのGitHubアカウントにはマイニング用のトロイの木馬のソース コードが掲載されています。この特定のマルウェアのソース コードが最後に更新されたのは2017年5月25日です。

DiscordiaMinerのソース コードには、Rarogと多くの類似点があります。それらの類似点はあまりにも多いため、RarogはDiscordiaの進化系であると結論付けられるかもしれません。Kasperskyのブログ記事は、この特定のマルウェア ファミリについての書き込みが、さまざまな地下フォーラムを賑わしていたことを説明しています。このトロイの木馬の作成者は、顧客の仮想通貨ウォレット アドレスを自分のアドレスに置き換えているのではないかという疑惑も持ち上がっていました。この疑惑を晴らすため、foxovskyはDiscordiaMinerプログラムをオープン ソースとしてGitHubで公開しました。Rarogが最初に宣伝されたのは2017年6月ですが、DiscordiaMinerが最後に更新されたのは2017年5月であることを考えると、興味深い事実が浮かび上がってきます。この情報、およびこれらのマルウェア ファミリの間に多くの共通するコードが存在することから、foxovskyはDiscordiaMinerをRarogと再ブランディングして、この新しい名前でマルウェア ファミリの開発を継続したものと見られます。foxovskyはこの再ブランディングによって、DiscordiaMinerに付随する負のイメージを払拭したようです。

結論

Rarogマルウェア ファミリの発見は、仮想通貨マイニングを悪用する攻撃の傾向が続いており、犯罪者の地下サイトでの需要も高まっていることを示しています。Rarogはそれほど巧妙ではないものの、、仮想通貨マイニングのボットネット運用を目指す多くの犯罪者に簡単な入口を提供します。ごくわずかの例外を除き、このマルウェアは、ここ9か月の間ほぼ知られていませんでした。数々の仮想通貨が高い水準で推移しているため、マイニング機能を持つマルウェア ファミリが今後も増えていくことが予想されます。

パロアルトネットワークのお客様は、この脅威から以下に示す方法で保護されています。

  • このブログ記事で言及されているサンプルはすべて、WildFireとTrapsにおいて悪意のあるものとしてマークされています。
  • RarogでC2サーバーとして使用されているドメインはすべて、悪意のあるものとしてフラグが立てられています。
  • Rarogマルウェア ファミリの追跡は、AutoFocusのRarogタグを使用して実行できます。

付録

マルウェアの技術的分析

この分析には、次の特性を持つファイルが使用されました。

MD5 15361551cb2f705f80e95cea6a2a7c04
SHA1 a388e464edeb8230adc955ed6a78540ed1433078
SHA256 73222ff531ced249bf31f165777696bb20c42d2148938392335f97f5d937182a
コンパイル時刻 2018-03-17 16:36:18 UTC
PDB文字列 D:\Work\_Rarog\Release\Rarog.pdb

Rarogは最初に実行されたときに、次のファイルを探します。

C:\ProgramData\MicrosoftCorporation\Windows\System32\Isass.exe

システムにこのファイルがない場合は、次に示すように、Rarogはインストール ルーチンを開始します。

インストール ルーチン

インストール ルーチンは、まず次の隠れたディレクトリ パスを作成します。

C:\ProgramData\MicrosoftCorporation\Windows\System32\

次に、上記のディレクトリに「Isass.exe」というファイル名で自身のコピーを作成します。この新たにコピーされたファイルは新しいプロセスで実行されます。この処理が実行された後、マルウェアによって次のようなHTTP POST要求が実行されます。

上記の要求に対する応答は単純にbase64エンコード化されたもので、デコードされると「success (成功)」を示します。応答を確認する際にその内容が「success (成功)」ならば、マルウェアは処理を続行します。

マルウェアは次の要求を実行して、C2が偽のエラー メッセージ ボックスの作成を求めているかどうかを判別します。

上記のbase64応答は以下のようにデコードされます。

「1;1;System Error;The program can't start because MSVCP110.dll is missing from your computer. Try reinstalling the program to fix this problem. (1;1;システム エラー;コンピュータにMSVCP110.dllがないため、プログラムを開始できません。この問題を解決するために、プログラムを再インストールしてみてください。)」

応答は「;」で区切られています。最初のパラメータはハードコードされており、2番目のパラメータは表示するメッセージ ボックスのタイプを指定するために使用されます。以下のオプションがあります。

パラメータ メッセージ ボックスのオプション
0 エラー メッセージが表示されません。
1 停止標識アイコンがメッセージ ボックスに表示されます。
2 疑問符アイコンがメッセージ ボックスに表示されます。
3 感嘆符アイコンがメッセージ ボックスに表示されます。
4 小文字のiを円で囲んだアイコンがメッセージ ボックスに表示されます。

3番目のパラメータはメッセージ ボックスのタイトルを指定し、最後のパラメータはメッセージを表します。前述の例のメッセージは、以下のように表示されます。

図 9 Rarogによって表示される偽のエラー メッセージ ボックス
図 9 Rarogによって表示される偽のエラー メッセージ ボックス

最後に、Rarogによって次のコマンドが実行されます。このコマンドは現在のマルウェア インスタンスを強制終了し、ディスクから削除します。

インストール ルーチンの実行後

インストール ルーチンの実行が完了し、Isass.exeの新しいインスタンスが生成されたら、Rarogのこの新しいインスタンスによって、次のファイルの存在が確認されます。

C:\ProgramData\{4FCEED6C-B7D9-405B-A844-C3DBF418BF87}\driver.dat

このファイルが存在しない場合、Rarogは、必要な非表示のディレクトリ構造を作成し、一連のHTTP POST要求を発行します。最初の要求は、リモートC2サーバーが稼働中であることを確認するために、「/2.0/method/checkConnection」に発行されます。2番目の要求は以下に発行されます。

C2サーバーの応答は、C2データベース内の、被害端末を識別する格納されたIDです。この番号は、「driver.dat」ファイルに格納されます。

次のレジストリ キーが作成され、Rarog がリブート後も持続するようにします。

次の非表示ディレクトリが作成され、以下の3つのファイルがこの場所に書き込まれます。

C:\ProgramData\WindowsAppCertification\WindowHelperStorageHostSystemThread.ps1

C:\ProgramData\WindowsAppCertification\cert.cmd

C:\ProgramData\WindowsAppCertification\checker.vbs

WindowHelperStorageHostSystemThread.ps1の内容は、以下のとおりです。

cert.cmdの内容は、以下のとおりです。

checker.vbsの内容は、以下のとおりです。

次のコマンドが実行され、checker.vbsスクリプトを定期的に実行するためのスケジュール化されたタスクが作成されます。

次のコマンドが実行され、Isass.exeを定期的に実行するためのスケジュール化されたタスクが作成されます。

また、次のコマンドが実行され、被害端末のスタートアップ フォルダにショートカット リンクが生成されます。

これらのさまざまなレジストリ変更、ファイル変更、コマンドの実行によって、リブート前後だけでなく、マルウェアが消滅したり、強制的に終了したりした場合でもRarogがシステム上に存続できるように複数の手段が提供されます。

Rarogは次のPOST要求を発行して、リモートC2サーバーにIDが存在することを確認します。

また、Rarog は、「success(成功)」の応答を探します。Rarogは、引き続き次のPOST要求を発行します。

C2サーバーのデコードされた応答は、「2;1;1;1;2;」です。このデータは、「;」で区切られており、値は、特定の Rarog機能が有効かどうかを示すために使用されます。「1」の値は、「On」を表し、他の値は「Off」を表します。

位置 名前 説明
0 USBデバイス マシンに搭載されているリムーバブル ドライブを検索します。「autorun.exe」という名前を付けて、リムーバブル ドライブにRarogをコピーします。また、同じディレクトリに「autorun.inf」ファイルを作成し、ロードされたときに「autorun.exe」が実行されるようにします。
1 ヘルパー 非表示の「C:\ProgramData\MicrosoftCorporation\Windows\Helpers\」ディレクトリを作成し、Isass.exeをこのディレクトリ内の「SecurityHeaIthService.exe」、「SystemldleProcess.exe」、「winIogon.exe」にコピーします。
2 マイニング ステータス POST要求を「/2.0/method/get」に発行し、マイニング実行ファイル用のURLを取得します。このファイルは「C:\ProgramData\{CB28D9D3-6B5D-4AFA-BA37-B4AFAABF70B8}\」ディレクトリに格納されます。
3 マイナー キラー POST要求を「/4.0/method/modules」に発行します。これによって、「C:\ProgramData\MicrosoftCorporation\Windows\Modules\」フォルダにあるDLLのリストが提供されます。これらのDLLは、Rarogによってロードされます。問題のDLLには、「Instance」という名前のエクスポート関数があると思われます。
4 タスク マネージャ このマルウェアでは使用されていないと思われます。

「マイニング ステータス」オプションが有効になっており、マイナーがリモート サーバーから正常にダウンロードされている場合、Rarogは次の要求をC2サーバーに発行します。

応答は以下のようにデコードされます。

これらのパラメータは、実行時にマイニング プログラムに指定されます。マイナーの実行前に、Rarogは、システムで実行中のプロセスを確認し以下の文字列を探します。文字列が見つかると、そのプロセスは強制終了され、実行ファイルがシステムから削除されます。

  • minergate
  • stratum
  • cryptonight
  • monerohash
  • nicehash
  • dwarfpool
  • suprnova
  • nanopool
  • xmrpool

これらの文字列は、さまざまな仮想通貨のマイニング時に、個人が使用するマイニング プールに関連した一般的な文字列を表しています。

Rarogは、次の要求を発行して、被害端末のCPUのどれくらいの割合をマイニングに使用するかを判別します。

応答は、「50」という値にデコードされます。Rarogは、引き続き「4.0/method/blacklist」に要求を発行して、ブラックリスト化するプロセスを決定します。問題のサーバーは設定済みのブラックリストがありませんが、戻される例を以下に示します。

このリストは、ゲームなど、リソースを集中的に使用する一般的なアプリケーションを表しており、Rarogは継続的にこれらを監視します。このようなプログラムがフォアグラウンドで実行されている場合、Rarogはマイニング動作を一時停止します。

このマルウェアは次の要求を発行して、標的となっている被害端末のマシンでマイニングを再開するまでRarogをスリープ状態にする時間の長さを取得します。

Rarogは、続行する前に、システムで実行中のプロセスに以下の一般的なセキュリティ アプリケーションがないか確認し、見つけた場合には続行しません。

  • NetMonitor
  • Taskmgr.exe
  • Process Killer
  • KillProcess
  • System Explorer
  • AnVir
  • Process Hacker

Rarogは、前に収集したCPU使用率を使用して、その値をシステムで見つかったCPU数に照らして適用します。例えば、システムにCPUコアが4つあり、設定が50%であった場合、Rarogは、マイナーを2スレッド(0.5 x 4)使用するように設定します。次のマイニング コマンドがRarogによって実行されます。

ボットネット機能

Rarogは、HTTP POST要求を以下に対して定期的に発行します。

この特定のURIは、Rarogに実行させる追加タスクを提供できます。サポートされるコマンドの次のリストが含まれています。

コマンド 説明
install 指定されたファイルをダウンロードし実行する
open_url 指定されたURLをブラウザで開く
ddos DDoS動作を指定された標的に対して実行する
update 指定されたURLからRarogトロイの木馬を更新する
restart_bot Rarogトロイの木馬を再始動する
delete_bot Rarogトロイの木馬を削除する

SHA256ハッシュ

SHA256ハッシュの完全なリストおよび最初に見つかったタイムスタンプについては、次のファイルを参照してください。

C2サーバー

C2サーバーの完全なリストおよび最初に見つかったタイムスタンプについては、次のファイルを参照してください。

ファイルおよびフォルダの成果物

C:\ProgramData\MicrosoftCorporation\Windows\System32\

C:\ProgramData\MicrosoftCorporation\Windows\System32\Isass.exe

C:\ProgramData\MicrosoftCorporation\Windows\System32\_Isass.exe

C:\ProgramData\{4FCEED6C-B7D9-405B-A844-C3DBF418BF87}\

C:\ProgramData\{4FCEED6C-B7D9-405B-A844-C3DBF418BF87}\driver.dat

C:\ProgramData\WindowsAppCertification\

C:\ProgramData\WindowsAppCertification\WindowHelperStorageHostSystemThread.ps1

C:\ProgramData\WindowsAppCertification\cert.cmd

C:\ProgramData\WindowsAppCertification\checker.vbs

C:\ProgramData\MicrosoftCorporation\Windows\Helpers\

C:\ProgramData\MicrosoftCorporation\Windows\Helpers\SecurityHeaIthService.exe

C:\ProgramData\MicrosoftCorporation\Windows\Helpers\SystemldleProcess.exe

C:\ProgramData\MicrosoftCorporation\Windows\Helpers\winIogon.exe

C:\ProgramData\{CB28D9D3-6B5D-4AFA-BA37-B4AFAABF70B8}\

C:\ProgramData\MicrosoftCorporation\Windows\Modules

レジストリの成果物

HKCU\Software\Microsoft\Windows\CurrentVersion\Run\Windows_Antimalware_Host_Syst