Windows標準機能WMIを利用するファイルレス仮想通貨発掘マルウェア「GhostMiner」

利用者のコンピュータリソースを盗用して仮想通貨発掘ツール(コインマイナー)を実行する「不正マイニング」の手法は、サイバー犯罪者が金銭利益を得る手法として常套手段化しています。不正マイニングの利益を得続けるためには、その存在を気づかれないようにすることが重要です。そのため2017年にはすでに、ウイルス対策ソフトウェアによる検出と監視を難航させるファイルレス技術を不正マイニングに適用した事例が確認されています。

トレンドマイクロは、2019年8月2日、Windowsの正規ツール「Windows Management Instrumentation(WMI)」オブジェクトを悪用することによってファイルレス活動を持続化し、ペイロードのコインマイナーを送り込み、ウイルス対策ソフトによる検出を回避する機能を備えた仮想通貨発掘マルウェア「GhostMiner」の亜種を確認しました。また、この亜種は、過去に確認されたMykings」、「PowerGhost」、「PCASTLE」、「BULEHERO」その他の仮想通貨発掘マルウェアの手法にも共通して見られたように、感染システムのhostsファイルを改変します。

このマルウェアは仮想通貨「Monero」をマイニングすることが確認されましたが、本記事執筆時点では、侵入経路の詳細はわかっていません。2018年3月に報告されているGhostMinerの事例では、「Microsoft SQL Server」、「phpMyAdmin」、および「Oracle WebLogic」のアプリケーションの脆弱性を利用した攻撃によるサーバを狙った侵入が確認されています。

■「GhostMiner」について解説

GhostMinerは、イベントを管理する機能「WMI Event Subscriptions」を使用して自身を実行します。これにより、感染コンピュータにおける活動の永続化、つまり、コンピュータの再起動後も活動を継続できるようにします。この際、感染コンピュータ内で以下の設定を行います。

Event Filter

\\.\ROOT\subscription:__EventFilter.Name=”PowerShell Event Log Filter”

EventNamespace : root\cimv2

Query : SELECT * FROM __InstanceModificationEvent WITHIN 3600 WHERE TargetInstance ISA ‘Win32_PerfFormattedData_PerfOS_System’

QueryLanguage : WQL       

FilterToConsumerBinding

\\.\ROOT\subscription:__FilterToConsumerBinding.Consumer=”CommandLineEventConsumer. Name=\”PowerShell Event Log Consumer\””,Filter=”__EventFilter.Name=\”PowerShell Event Log Filter\””

Consumer : CommandLineEventConsumer.Name=”PowerShell Event Log Consumer”

Filter : __EventFilter.Name=”PowerShell Event Log Filter”

Event Consumer

\\.\ROOT\subscription:CommandLineEventConsumer.Name=”PowerShell Event Log Consumer”

CommandLineTemplate : C:\Windows\System32\WindowsPowerShell\v1.0\PowerShell.eXe -NoP -NonI -EP ByPass -W Hidden -E <Base-64 encoded script>

GhostMinerは、名前空間(namespace)「root ¥ Default」にWMIクラス「PowerShell_Command」もインストールします。 このWMIクラスには、base-64エンコード関数を含むエントリ「Command」および「CCBot」が含まれます。

EventConsumer」がトリガーされると、インストールされたWMIクラス「 PowerShell_Command」オブジェクトからエントリ「Command」および「CCBot」を読み取ります。

この「Command」スクリプトが実行されると、以下の動作を行います。

関数 タスク
WMI_KillFake 条件一覧に基づいてプロセスを終了し、対応するファイルを削除する。
WMI_KillService 一連の条件に基づいてサービスを終了する。
WMI_Scanner プロセスメモリ内の既知のコインマイナープロセスを終了する。
WMI_CheckFile ドロップするファイルの整合性を検証する。

表1:「Command」スクリプトが実行されると動作する関数一覧

表1に記載されている関数とは別に、「Command」スクリプトには関数「WMI_Killer」があり、この関数は以下のような仮想通貨発掘マルウェアのファミリに関連付けられている実行中のプロセスを終了し、スケジュールされたタスクとサービスを削除します。

  1. Mykings
  2. PowerGhost
  3. PCASTLE
  4. BULEHERO
  5. BlackSquid他複数のマルウェアファミリで利用される「MALXMR」の亜種

図1:WMI_Killerが終了および削除するサービス名の一覧
図1:WMI_Killerが終了および削除するサービス名の一覧

図2:WMI_Killerが削除するスケジュールされたタスク一覧
図2:WMI_Killerが削除するスケジュールされたタスク一覧

図3:WMI_Killerが終了させる仮想通貨マイニング関連プロセス一覧
図3:WMI_Killerが終了させる仮想通貨マイニング関連プロセス一覧

WMI_Killer」は、仮想通貨発掘マルウェアで一般的に使用される、以下の一覧に示されるポートを使用するTCP仕様のトラフィックも終了させます。

図4:WMI_Killerが監視するポート一覧
図4:WMI_Killerが監視するポート一覧

別の「Command」の関数「WMI_CheckHosts」は、感染したコンピュータのhostsファイルを改変し、BULEHEROなどの仮想通貨発掘マルウェアに関連するエントリを変更可能です。

図5:競合の仮想通貨発掘マルウェアに関連付けられたエントリに基づいて、感染したコンピュータのhostsファイルを改変する「WMI_CheckHosts」関数
図5:競合の仮想通貨発掘マルウェアに関連付けられたエントリに基づいて、感染したコンピュータのhostsファイルを改変する「WMI_CheckHosts」関数

一方、「CCBOT」エントリは、2つのIPアドレスをC&Cサーバとして使用します。 Base-64で送信コマンドをエンコードし、13番目の文字を変更する文字置換暗号「ROT-13」を使用して受信コマンドをデコードします。

本記事執筆時点で、弊社の調査からバックドア通信はシステム時刻午前12時から午前5時の間のみ有効であることが判明しました。 C&Cサーバが応答を受信すると、「Invoke-Expression(IEX)」を使用します。 応答がない場合、URIパス「/ Update / CC / CC.php」を使用して、30秒毎に上記のIPアドレスへの接続を継続的に試行します。

Command」および「CCBot」の他に、「PowerShell_Command」クラスには、以下のオブジェクトも含まれます。

Miner : < Base-64エンコードされたバイナリコード>

Ver : <バージョンナンバー> (現在のバージョンはv2.13.0)

mPId : <実行中のコインマイナーのプロセスID >

nPId : <インストーラのプロセスID >

このMiner(コインマイナー)は、コマンドがデコードおよび実行されるとドロップされる64ビットのペイロードです。 ただし、コインマイナーがドロップされる前に、GhostMinerはルートドライブの空きディスク領域を決定します。 空き領域が1 GB未満の場合、10 MBサイズのペイロードであるコインマイナーがドロップされます。それ以外の場合、100 MBサイズのコインマイナーがドロップされます。その後、GhostMinerは2,130バイトのランダム値を追加します。 ファイルは「C:\Windows \Temp\lsass.exe」として保存されます。

マルウェアは、コインマイナーの実行における動作の一部として以下のコマンドを実行します。

                Takeown.exe /f C:\Windows\Temp

                iCACLs.exe C:\Windows\Temp /Reset /T /C

                iCACLs.exe C:\Windows\Temp /Grant Everyone:F /T /C

                iCACLs.exe C:\Windows\Temp\lsass.exe /E /G Everyone:F /C

                NetSH Firewall Add AllowedProgram C:\Windows\Temp\lsass.exe “Windows Update”

                Start-Process –FilePath C:\Windows\Temp\lsass.exe –WindowStyle Hidden –PassThru

本記事執筆時点で、今回確認した不正マイニング活動で利用されたXMRウォレットへの総支払額は、50.278384965000 XMR(2019 年 11 月5日のレートで約42万円)のみでした。

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

ネットワーク挙動監視ソリューション「Deep Discovery™ Inspector」は、以下の DDIルールによって問題の脆弱性を利用する脅威を検知します。

  • 4219: GHOSTMINER – HTTP (Request)

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

侵入の痕跡(Indicators of Compromise、IoCs)はこちらを参照してください。

参考記事:

翻訳: 下舘 紗耶加(Core Technology Marketing, Trend Micro™ Research)