プリンス オブ ペルシャ – ゲーム オーバー

By and

Category: Malware, Threat Prevention, Unit 42

Tags: ,

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

概要

Unit 42は、5月初旬に「プリンス オブ ペルシャ」というタイトルのブログを公開しました。
そこで、以前は未公開のマルウェア ファミリ、Infy を使用して、世界中の政府機関や注目を集めている業界を標的とした10年間に及ぶ活動を発見したことを説明しました。

この記事の公開の後、C2ドメインの責任を担うパーティとの協力を通じて、Unit 42のリサーチャーは、複数のC2ドメインの制御権を得ることに成功しました。これにより、この活動での攻撃者による被害者へのアクセスは無効化され、この活動で現在被害を受けている標的への洞察を深め、影響を受けるパーティに通知することができます。

公開後

元のブログの公開後1週間は、C2インフラストラクチャに異常な変化は見られませんでした。以前に定期的に見られたとおり、既存のドメインは新しいIPアドレスに移行されました。いくつかの新たなインストール ドメインが、現在のドメインの命名規則(新しいIOCの付録を参照のこと)に従って追加されました。

攻撃者が新しいバージョン(31)を開発し、これが単一のカナダの標的に対して仕掛けられたことがわかりました。

ファイルの説明は、基本的には同じままです(“CLMediaLibrary Dynamic Link Library V3”)。もっとも重要な点は、10年間の活動全体を通じて使用されていたことを発見し、以前のブログで解説したエンコード キーに何の変更もなかったことです(現在はオフセット20と、URLエンコードで2番目に渡す場合はオフセット11を使用)。このことから、攻撃者は私たちの最初のレポートに気付いていないと判断しています。

シンクホール

C2ドメインの責任を担うパーティとの協力を通じて、私たちはそれらの1つではなくすべての制御権を得て、制御下のサーバにAレコードを転送しました。これによって、攻撃者がその後、さらにドメイン構成を変更したり、被害者へコマンドを発行したり、または大半の被害者からさらにデータを取得したりできないように、防御しました。転送後の接続の分析では、攻撃者がサードパーティ サービスを使用して、彼らが突然ほぼすべてのトラフィックを失った理由を突き止めようとしたことが示されました。図1は、被害を受けたC2トラフィックの地理的な場所を示しています。当社のシンクホール サーバと現在通信している時点でのすべてを表しています。

図1 被害を受けたC2トラフィックのグラフィカル表示
図1 被害を受けたC2トラフィックのグラフィカル表示

私たちは、その後、シンクホールの制御をShadowserverに移管しました。引き続き被害者への通知と修復を担当していただいていることに感謝します(https://www.shadowserver.org/wiki/pmwiki.php/Involve/GetReportsOnYourNetwork)。

被害者

被害を受けたC2トラフィックを分析し、Infy活動の被害者が誰であったかがわかりました。35カ国の326の被害者システムにインストールされた456のマルウェア エージェントを特定しました。図2は、被害者の場所の地理的な詳細を示しています。元のブログで、この活動では大勢のイラン市民が標的とされ、すべての犠牲者のほぼ1/3がイラン人だったと判明したことを述べました。また、たとえば、クライムウェア攻撃に比べると、被害者の総数はそれほど多くないことも述べました。

図2 被害者の地理的な場所。被害者が発見されなかったため、この地図ではニュージーランドが省略されています。
図2 被害者の地理的な場所。被害者が発見されなかったため、この地図ではニュージーランドが省略されています。

バージョン

元のブログでは、Infyマルウェアには、はっきり異なる2つの基本的な亜種があると述べました。本来の“Infy”亜種に加え、より新しい、精巧でインタラクティブなフル機能装備の“Infy M”亜種が、より高価値と思われる標的に対して導入されました。総計すると、すべての被害者の93%がInfyに感染し、60%がInfy “M”に感染しました(図3)。犠牲者の総数が少ないことと合わせると、これは、活動の個々の標的にきめ細かく注意を払ったことを示唆しています。犠牲者の大半は、無料の機能セットに関連している可能性があります。また、本来の亜種に感染した被害者のシステムには、標的が攻撃者にとってより価値が高いと思える場合に、後から“M”亜種を追加するための“アップグレード”パスが提供された可能性もあります。

図3 InfyおよびInfy “M”感染の内訳
図3 InfyおよびInfy “M”感染の内訳

Infy “M”の場合は、大半の標的で最新バージョン(7.8)が使用され、古い6.xバージョンはまったく使用されていません(図4)。これは、これらのより価値の高い標的には、最新バージョンを使って最新の状態を保持するために、かなりの注意が払われたことを示しています。

これに対し、より基本的な元のInfy亜種に関して、多種多様なバージョンがインストールされていることが分かります(図5)。これによると旧バージョンによる被害者が多くおり、旧バージョンの中には、10年経った最初のバージョンもあります。これはこうした個々の標的に対する関心がはるかに低いことを示しています(なお、私たちは少数の古い6.xバージョンを確認することは確認しましたが、これらは接続時にバージョンを通知してきません)。

図4 Infy「M」被害に関するバージョン
図4 Infy「M」被害に関するバージョン
図5 「元の」Infy被害に関するバージョン
図5 「元の」Infy被害に関するバージョン

ゲーム オーバー

捕捉の直後、Infyの新バージョン(31)においても、過去に確認済みのパターンの利用により、複数のドメインが既知の攻撃活動用IPアドレスに対して登録されていることを私たちは確認しました。パターン範囲box4035[.]net – box4090[.]net (138.201.0.134)におけるほとんどどのドメインが該当します。しかし、これらはどのサンプルC2リストの中にも確認されませんでした。Bestwebstat[.]comは別の運用者によるシンクホールでした。

バージョン15-24のInfyに感染した一部の被害者は、まだ攻撃者の管理下にあるC2サーバus1s2[.]strangled[.]netを引き続き利用していました。6月上旬、攻撃者はこのC2を利用して新型のInfy「M」バージョン8.0をus1s2[.]strangled[.]net/bdc.tmpからダウンロードするよう指示しました。私たちはこのようにInfy亜種がInfy「M」に直接更新されているところを初めて目撃しました。その際、偽装名称「Macromedia v4」が使われましたが、これはInfy v31で見られた「v3」を変更したものです。また、攻撃者はこのバージョンで音声録音機能を削除しました。

uvps1[.]cotbm[.]comがデータを秘密裏に盗み出すのに用いられましたが、以前はアドレスが138.201.47.150であったのが私たちの最初のブログの公開後には144.76.250.205へと変わりました。また、/themes/u.phpにおいてマルウェアの更新が提供されていました。

不思議なC2エントリ「hxxp://box」も追加されていました(注: 記事公開にあたり無害化した表記にしてあります)。これがどのように機能するのかは不明です。ことによると、セキュリティ侵害を受けた被害者のイントラネットのデバイス、または攻撃者によって、被害者のコンピューター上にあるHOSTSファイルが変更された結果かもしれません。

私たちによる捕捉の後、攻撃者はサーバのドメイン名だけでなくIPアドレスを自分たちのマルウェアC2リストに追加し始めました。さらに、ZIPパスワードをわずかに「Z8(2000_2001ul」から「Z8(2000_2001uIEr3」へと変更しました。マルウェアの新バージョンにはKaspersky Labs、AvastおよびTrend Microがないか調べるアンチウイルス検査機能が追加されました。マルウェアのデータ キャプチャは以下のファイル拡張子を検索します。

.doc, .docx, .xls, .xlsx, .xlr, .pps, .ppt, .pptx, .mdb, .accdb, .db, .dbf, .sql, .jpg, .jpeg, .psd, .tif, .mp4, .3gp, .txt, .rtf, .odt, .htm, .html, .pdf, .wps, .contact, .csv, .nbu, .vcf, .pst, .zip, .rar, .7z, .zipx, .pgp, .tc, .vhd, .p12, .crt.pem,.key.pfx, .asc, .cer, .p7b, .sst, .doc, .docx, .xls, .xlsx, .xlr, .pps, .ppt, .pptx.

また、以下のフォルダー位置を検索します。

:\$recycle.bin, :\documents and settings, :\msocache, :\program files, :\program files (x86), :\programdata, :\recovery, :\system volume information:\users, :\windows, :\boot, :\inetpub, :\i386.

マルウェアは、この攻撃活動で当初から現在に至るまで確認されている同一の復号化キーを使い続けていました。

6月中旬、C2ドメインの管理責任者と法執行当局の協力により、私たちは残りのC2ドメインをnullルート化して、IPアドレスで直接指定されていたサーバを無効化することに成功しました。これにより10年にわたる攻撃活動は終焉を迎えましたが、当然、やがてこの攻撃者が何か別のものを装って戻ってくるものと思われます。

捕捉作業をお手伝いしていただいたマルウェア リサーチ チーム(Yaron Samuel、Artiom Radune、Mashav Sapir、Netanel Rimer)に感謝いたします。

付録1 – 秘密裏に持ち出すためのアルゴリズム

このマルウェアは、マルウェア文字列を暗号化するのに使われるものとは別のアルゴリズムを使って、秘密裏に持ち出すデータを暗号化します。そのアルゴリズムには次のものがあります。

  1. キーロガー データ+言語
  2. マルウェア ログ―インストール時刻、DLLのパスと名称、ログのパス、ダウンロード回数、成功/失敗した接続の数
  3. 被害者のコンピューターに関する情報: タイム ゾーン、ドライブとその種類の一覧、実行中のプロセス、ディスク情報

まず、このマルウェアはすべてのバイトに1を加え、次いで被害者のコンピューター名に基づいて暗号化キーを初期化します(キーにおけるオフセットは「コンピューター名の各文字コードの合計」%「キーの長さ」で計算されます)。その後、キーがデータの暗号化に使われます(復号化関数を参照のこと)。暗号化されたデータは引き続きbase64でコード化されます。

秘密裏に持ち出すデータを暗号化するpythonコード:

付録2 – IoC

Infyバージョン31: f07e85143e057ee565c25db2a9f36491102d4e526ffb02c83e580712ec00eb27

Infy「M」バージョン8.0: 583349B7A2385A1E8DE682A43351798CA113CBBB80686193ECF9A61E6942786A

5.9.94.34
138.201.0.134
138.201.47.150
144.76.250.205
138.201.47.158
138.201.47.153
us1s2[.]strangled[.]net
uvps1[.]cotbm[.]com
gstat[.]strangled[.]net
secup[.]soon[.]it
p208[.]ige[.]es
lu[.]ige[.]es
updateserver1[.]com
updateserver3[.]com
updatebox4[.]com
bestupdateserver[.]com
bestupdateserver2[.]com
bestbox3[.]com
safehostline[.]com
youripinfo[.]com
bestupser[.]awardspace[.]info
box4035[.]net
box4036[.]net
box4037[.]net
box4038[.]net
box4039[.]net
box4040[.]net
box4041[.]net
box4042[.]net
box4043[.]net
box4044[.]net
box4045[.]net
box4046[.]net
box4047[.]net
box4048[.]net
box4049[.]net
box4050[.]net
box4051[.]net
box4052[.]net
box4053[.]net
box4054[.]net
box4055[.]net
box4056[.]net
box4057[.]net
box4058[.]net
box4059[.]net
box4060[.]net
box4061[.]net
box4062[.]net
box4063[.]net
box4064[.]net
box4065[.]net
box4066[.]net
box4067[.]net
box4068[.]net
box4069[.]net
box4070[.]net
box4071[.]net
box4072[.]net
box4075[.]net
box4078[.]net
box4079[.]net
box4080[.]net
box4081[.]net
box4082[.]net
box4083[.]net
box4084[.]net
box4085[.]net
box4086[.]net
box4087[.]net
box4088[.]net
box4089[.]net
box4090[.]net