巧妙な検出回避手法「プロセスハロウイング」を使用する不正コインマイナー攻撃

今回、トレンドマイクロでは、正規プロセスの中を「くりぬいて」不正なプロセスのコードに入れ替える「プロセスハロウイング(Process Hollowing)」の手法と、不正活動開始にコンポーネントファイルにコマンドライン引数を参照させる手法とを組み合わせる高度な検出回避手法を使用し、仮想通貨Moneroを狙うコインマイナーを感染させる攻撃を確認しました。この手法により、コインマイナーは、自身が不正なファイルとして検知されることを回避できます。このコインマイナーのコンポーネントファイルは、コンテナとして機能し、正規プロセスでのメインファイルの活動を停止させます。一方、コンポーネントファイルの方は、特定のコマンドライン引数がない限り実行されません。これは動的解析を困難化させるための手法であり、コンポーネントファイルは未使用のまま不正と認識されず、検知回避が可能となります。トレンドマイクロの調査によると、この手口を用いた攻撃キャンペーンは、2019年11月初旬に増加し始め、11月20日の時点でクウェート、タイ、インド、バングラデシュ、アラブ首長国連邦、ブラジル、パキスタンで最も多く確認されました。

仮想通貨の価値は、2018年に若干下落したものの、2019年に入り引き続き上昇を続けています。そうした中、トレンドマイクロでは、特に仮想通貨「Monero」を狙うコインマイナーを中心に新たな手口の増加を確認してきました。ここ数か月では、脆弱性を悪用した拡散や、ファイルレス手法による検出回避といった活動に遭遇してきました。その他、標的型攻撃ツールを利用して金銭的利益を得たり、正規ツール「Windows Management Instrumentation」を悪用して感染先にとどまったり、さらなる金銭的利益のために新たなプラットフォームを狙って自身を隠ぺいさせるコインマイナーなど、さまざまな手法が駆使されてきました。今回確認した事例も、仮想通貨の利益をより長期にわたって得るために活動隠蔽を狙った攻撃の1つと言えます。

■ 感染活動

問題のコンポーネントファイルは、圧縮された不正コードを含む64ビットのバイナリであり、解凍時にコマンドライン引数を参照することで実行されます。

図1:解凍された64ビットのバイナリ
図1:解凍された64ビットのバイナリ

実行ファイルのパラメータは一部が暗号化されており、今回、問題のコンポーネントファイルが参照する引数を解読することで、活動に際して二段階の動作を経ることが判明しました。まず、コマンドライン引数の英数字を受けて特定の算術演算が実行されます。今回の検体の場合、参照される引数は「vTMsx7t7MZ ==」となっており、このロジックが文字列内のすべての文字に適用されていました。

図2:英数字を受けて実行される算術演算
図2:英数字を受けて実行される算術演算

さらに「eGNhc2g2NA==」という文字列を確認しました。これは、さまざなツールによるデコードが可能な通常のBase64方式によるエンコードの文字列です。この文字列により、参照された引数から、以下の各情報へ復号化されました。その中には、サイバー犯罪者用の仮想通貨ウォレットアドレスも含まれており、参照される引数の一部に指定され、問題のコンポーネントファイルが作成する不正ファイルを実行してマイニング活動を有効化する際に使用されます。

  • xcash64
  • –donate-level 1 -o –0– -u XCA1nwsQ2hUe8GLawiqdCQbLe5FJjLXUCaQ48bLaZNdkiifhNyDDWi9ZQxhdWWVbfP5pizGtFar6jHoUx7cteUqo5DBsLe71Vg -p meer_m -a cn/double –k

そして実行される不正ファイルには、以下のようなファイル名が使用されます。

  • uakecobs.exe
  • uakecobse.exe
  • dakecobs.exe
  • dakecobse.exe
  • wakecobs.exe
  • rakecobs.exe

特定の引数を参照させる他、今回のコンポーネントファイルでは、自身の不正活動に利用する機能の文字列への難読化も施されていました。

図3:難読化が施された文字列の一部
図3:難読化が施された文字列の一部

こうしてコンポーネントファイルが、正しい引数の参照により実行されると、正規プロセスのメインファイルによる活動を停止させた状態のまま、サブプロセスとなるファイルを作成して実行します。今回の検知では「wakecobs.exe」のファイル名が使用されました。この際、コンポーネントファイルの活動で消費されるメモリはマッピングの対象とはならず、作成されたサブプロセスはバックグラウンドで実行されます。こうしてコインマイナー「XMRig」が、ユーザに気づかれないまま背後で実行されることになります。

■ 被害に遭わないためには

冒頭で言及したとおり、コインマイナーの新たな動作は、さまざな手口を駆使する形で増加していますが、2019年全体の検出台数自体は、減少傾向を示しています。今回確認された新たな動作による攻撃キャンペーンの場合、サイバー犯罪者は、年末に近づく中、こうした検出台数減少に伴う油断を突いた活動であるとも推測されます。今後、サイバー犯罪は、さらに他の地域や別の仮想通貨を標的にしてこうした形の攻撃キャンペーンを仕掛けてくる可能性が懸念されます。

今回解析したコンポーネントファイルは、自身が作成したファイルに不正コードを挿入した上で、拡張子のない別のディレクトリ内に自身を隠ぺいします。これにより、手動のスキャンや検出を回避することが可能になり、さらに作成されたファイル自体も無害と認識されます。作成されたファイルのコピーは、ホワイトボックス、サンドボックス、ブラックボックスなどそれぞれの解析手順を経ても、仮想通貨のコインマイニング活動の痕跡が検知できないため、IT部門や解析エンジニアにとって大きな懸念となります。それぞれのファイルが別々のコンポーネントとして認識され、これらを作成したもとのコンポーネントファイルの存在も感染PC内で確認できないため、企業のセキュリティ部門は、確認したファイルが不正であると識別する根拠を見つけることができないという状態に陥ります。

今回確認された手口は、コインマイナーだけでなく、他の不正活動をもたらす攻撃キャンペーンにも利用できます。使用されたコンポーネントファイルは、コンテナ構造としてそれ自体では動作しない骨格コードで構成されているため、感染PC内で検出されないままとなり、さらに活動を休止させて特定時間に開始するように設定しておくことで、手動による検出も回避できます。こうした手口は、他のサイバー犯罪者が借用する形で簡単に実装できます。企業は、多層防御システムを導入することで、こうした種類の脅威が企業のリソースと資産を侵害しないセキュリティ対策を講じることが求められます。

今回確認された手法をMITRE ATT&CKフレームワークを使用し分類しましたので対策の参考にしてください。

MITRE ATT&CK フレームワーク

Tactic Technique ID 詳細
Defense evasion Process injection T1055 コインマイナー活動を任意に作成されたファイルへ組み込む
Command and control Uncommonly used port T1065 4466番および3333番ポートへ接続する
Impact Resource hijacking T1496 感染PCのリソースを使用してマイニング活動を行う

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

法人向けのエンドポイント製品「Trend Micro Apex One™」や中小企業向けのクラウド型エンドポイントセキュリティサービス「ウイルスバスター™ビジネスセキュリティサービス」では、「FRS」技術によりウイルス検出と同時に、挙動監視機能(不正変更監視機能)の強化により、その不正活動を検知してブロックできます。また、関連する不正な URL をブロックすることによって、強固な保護を提供します。

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

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

参考記事:

翻訳: 与那城 務(Core Technology Marketing, Trend Micro™ Research)