日本人を標的としたAveoマルウェア ファミリを特定

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

概要

Palo Alto Networksの脅威インテリジェンスチームUnit 42は、日本人を標的としたマルウェア ファミリを特定し、「Aveo」と名付けました。Aveoというマルウェアの名称はバイナリ ファイルに埋め込まれているデバッグ文字列に由来しています。Aveoマルウェア ファミリは、以前日本の製造・ハイテク業をターゲットとした訃報などに模した標的型攻撃に用いられたFormerFirstRATマルウェア ファミリと密接な関係を持っています。AveoはMicrosoft Excel文書に見せかけたものであり、実行されるとおとり文書をドロップします。問題になっているおとり文書は関東の工業大学の研究室に関連しています。実行されると同時にAveoマルウェアが多数のコマンドを受け付けるため、攻撃者は被害者のマシンを完全に支配できます。

デプロイメント

AveoマルウェアのサンプルはMicrosoft Excel文書を装い、次のようなアイコンを示します。ファイル名’malware.exe’は、元のファイル名が不明なため、単なる仮の名前であることに注意してください。

図1 Aveoマルウェアが使っているMicrosoft Excelのアイコン
図1 Aveoマルウェアが使っているMicrosoft Excelのアイコン

実は、この実行ファイルはWinRAR自己解凍型の実行ファイルであり、実行と同時におとり文書とAveoトロイの木馬をドロップします。次のおとり文書がドロップされ、その後に実行されます。

図 2 Aveoマルウェア用のおとり文書
図 2 Aveoマルウェア用のおとり文書

図2のおとり文書は某大学の研究室のWebサイト上で公開され、研究会の参加者の一覧が載っており、個人情報も含まれています。文書は日本語で書かれ、ドロップされたファイル名も日本語であり、そのうえAveoとFormerFirstRATマルウェア ファミリが類似していることから(詳細は記事後半で説明)、日本人が標的にされていることが分かります。

インフラストラクチャ

Aveoトロイの木馬はHTTPにより以下のドメイン名と通信を行うよう設定されています。

  • snoozetime[.]info

このドメインは2015年5月に‘jack.ondo@mail.com’に対して初めて登録されました。そのとき以来このドメインは以下の3個のIPアドレスと関連付けられています。

  • 104.202.173[.]82
  • 107.180.36[.]179
  • 50.63.202[.]38

当該IPアドレスはいずれもアメリカ合衆国内のものです。

図3 snoozetime[.]infoと関連付けられたIPアドレスを示しているPassiveTotalのスクリーンショット
図3 snoozetime[.]infoと関連付けられたIPアドレスを示しているPassiveTotalのスクリーンショット

snoozetime[.]infoに関するWHOIS情報には登録者の電子メール アドレス‘jack.ondo@mail[.]com’および名前‘aygt5ruhrj aygt5ruhrj gerhjrt’が載っています。この2つの情報から同じものを共有するドメインを割り出すと、以下のドメインと電子メール アドレスが得られます。

  • bluepaint[.]info
  • coinpack[.]info
  • 7b7p[.]info
  • donkeyhaws[.]info
  • europcubit[.]com

マルウェアの分析

自己解凍型実行ファイルを実行した後に多数のファイルがファイル システムにドロップされ、実行の流れが以下のようになることが確認されています。

図 4 マルウェアの実行の流れ
図 4 マルウェアの実行の流れ

mshelp32.exe実行ファイルが実行された場合、まずおとり文書名が書かれているsetting32.iniファイルを読み込み始めます。この情報は以下のようにしてバッチ スクリプトを構築するのに使われます。

※XXXは某大学の研究会に関連するファイル名が使われています。

このバッチ スクリプトは新しいプロセスの中で実行され、Aveoおよびおとり文書が実行された後に実行する単純なクリーンアップ スクリプトとして動作します。

Aveoマルウェア ファミリ

Aveoマルウェアは、最初にインストール ルーチンを実行し、自身を以下の場所にコピーします。

·%APPDATA%\MMC\MMC.exe

何らかの理由で%APPDATA%\MMCディレクトリを作成できない場合、Aveoは%APPDATA%の代わりに%TEMP%を使用します。

マルウェアは自身をコピーした後、元のファイル名を引数として使用し、新しいプロセスでMMC.exeを実行します。実行時に、この単一の引数が指定されていると、マルウェアは指定されたファイル パスを削除します。

インストール ルーチンの完了後、Aveoは次の被害者情報を盗み出し、HTTPを介してリモート サーバに送信します。

  • 一意の被害者のハッシュ
  • IPアドレス
  • Microsoft Windowsのバージョン
  • ユーザー名
  • ANSIコード ページID

次のHTTPリクエストの例に示すように、この情報が盗み出され、‘snoozetime[.]info’ドメインに送られます。

提供されたデータを暗号化するため、マルウェアは、‘hello’をキーとしてRC4アルゴリズムを使用します。以下の画像に示すように、AveoとFormerFirstRATの暗号化ルーチンはほぼ同一で、アルゴリズムとキーが変更されているだけです。

図5 AveoとFormerFirstRATの暗号化関数の比較
図5 AveoとFormerFirstRATの暗号化関数の比較

HTTPを介して提供されたデータを復号化するために、以下のコードが使用されることがあります。

上記のコードを実行すると、次の結果が得られます。

最初の被害者情報を盗み出した後、マルウェアは‘OK’という応答を待機します。その後、Aveoは新しいスレッドを生成します。このスレッドは、コマンド アンド コントロール(C2)サーバによって受信されたインタラクティブなコマンド リクエストとインタラクティブ シェルを生成するためのリクエストの処理を担います。

Aveoは次に、マルウェアのパスをポイントする以下のレジストリ キーを設定し、これによって再起動後の持続性を確保します。

HKCU\software\microsoft\windows\currentversion\run\msnetbridge

その後コマンド ハンドラ ループに入り、そこでAveoはリモートC2からのコマンドを受け取ります。Aveoマルウェア ファミリは応答を待機している間、0~3276ミリ秒の範囲内でランダムに選択された間隔のスリープ遅延を実行します。C2サーバが‘toyota’と応答した場合、間隔は60秒に設定されます。Aveoは以下のコマンドを受け取ります。これらは、関連付けられた関数に示されています。

  • 1 : Execute command in interactive shell
  • 2 : Get file attributes
  • 3 : Write file
  • 4 : Read file
  • 5 : List drives
  • 6 : Execute DIR command against path

以下のリクエストの例は、C2サーバからAveoマルウェアへの‘ipconfig’コマンドの送信を示しています。

C2のリクエスト

Aveoのレスポンス

結論

Aveoは、暗号化ルーチン、コードの再利用、C2機能の類似点など、多数の特性がFormerFirstRATと共通しています。Aveoは現存する洗練されたマルウェア ファミリとは掛け離れています。以前に説明したFormerFirstRATサンプルで見られたように、この関連するマルウェア ファミリも日本人をを標的にしているようです。マルウェアは、自己解凍型WinRARファイルを使用して、おとり文書、Aveoマルウェアのコピー、およびクリーンアップ スクリプトをドロップします。

Palo Alto Networksのお客様は、次の方法で脅威から保護されています。

  • この脅威を追跡し監視するために、AutoFocusタグが作成 されています。
  • WildFireがAveoサンプルを悪意のあるものとして分類します。
  • このレポートで一覧されたC2ドメインは、脅威防御を通じてブロックされています。

セキュリティ侵害の兆候

SHA256ハッシュ

  • 9dccfdd2a503ef8614189225bbbac11ee6027590c577afcaada7e042e18625e2
  • 8101c298a33d91a985a5150d0254cf426601e4632250f5a03ddac39375e7fb4d

C2ドメイン

  • snoozetime[.]info

レジストリ キー

  • HKCU\software\microsoft\windows\currentversion\run\msnetbridge

ファイルのパス

  • %APPDATA%\MMC\MMC.exe
  • %TEMP%\MMC\MMC.exe