2015年8月20日

APT「ブルーターマイト」:新たな手口で感染拡大

脅威

(2015年8月24日:「技術的詳細」の項を追加しました)

日本を標的としたAPT「ブルーターマイト」(Blue Termite)の調査をKaspersky Labが開始したのは、2014年10月のことでした。現時点までの調査で見つかった最も古いサンプルの作成日は2013年11月であり、ブルーターマイトの活動が少なくともその時点まで遡ることが判明しています。調査を継続する中で、この攻撃が今でも進行中であること、また、新たな手法が取り入れられたことで感染規模が拡大していることが明らかになりました。

bluetermite_blog

はじめに

日本がAPTの被害を受けるのは、今回が初めてではありません。しかし、ブルーターマイトは、これまでのAPTとは2つの点で異なります。1つは日本の組織に対する攻撃に主目的をおいている点、そして、C&Cサーバーのほとんどが日本に設置されている点です。日本年金機構をはじめとする複数組織が攻撃されたことは多くの報道にもあるとおりですが、標的となった組織はそれに留まらず、さまざまな分野の組織に及びます。6月までは政府・行政機関、地方自治体、公益団体、大学、銀行、金融サービス、エネルギー、通信、重工、化学、自動車、電機、報道・メディア、情報サービス分野が攻撃対象でしたが、7月から新たに医療、不動産、食品、半導体、ロボット、建設、保険、運輸へ攻撃範囲が拡大していることを観測しています。この攻撃は現在も活動を続けており、Kaspersky Labでは、この攻撃による被害の増加に攻撃手法の変化を観測しました。

ブルーターマイトの既知のC&Cサーバー(一部)に対する1日あたりのアクセスを、グラフ化したのが以下の図です。

1-graph

図1:C&Cサーバーへの1日あたりのアクセス推移

7月半ばにC&Cサーバーへのアクセスが急増しているのが見て取れます(わかりやすいようにオレンジ色に変更しています)。これは、攻撃者が新たな攻撃手法を取り入れたことで、感染の拡大および感染した状態の保持に成功したことに起因していると考えられます。本記事では、この新手法がどんなものであるか、技術的な側面から考察します。

感染第1段階で見られた新たな手法

当初、ブルーターマイトの主な感染手段はスピアフィッシングメールでした。今回Kaspersky Labが発見した新たな手法は、感染の第1段階で、Flashのエクスプロイト(Hacking Teamから流出したCVE-2015-5119)を利用したドライブバイダウンロードを使うという方法です。

この感染手段を日本の複数のWebサイトを設置することで、攻撃者は感染の拡大を図りました。

2

図2:Webサイトに埋め込まれたコードの例

改竄されたサイトに埋め込まれた悪質コードは、「faq.html」へ転送される仕組みになっています。

3-sourcecode

図3:faq.htmlのソースコード

「faq.html」の中には、当該エクスプロイトを含む「movie.swf」を読み込む仕掛けが施されています。これにより、改竄されたサイトをブラウザーで開くとマルウェアに感染してしまう状況が作り出されていました。

4-zws

図4:movie.swfのヘッダー部分

このファイルの中を分析したところ、大きなデータが含まれていることがわかりました。青色になっている部分が、当該データです。

5-taginfo

図5:movie.swfのデータ部分

データの先頭12バイトはヘッダーの情報であるため、実態は0x5dca(”\x78\x9c\xec\xb7….”)から始まる部分となります。この部分はzlibで圧縮されたデータです。これを解凍すると、Windowsの実行可能ファイルが見つかりました。

6

図6:実行可能ファイル

このmovie.swfには、上記の実行可能ファイルを圧縮したデータと共にシェルコードを含むアクションスクリプトが含まれています。

7

図7:シェルコードを含むアクションスクリプトのコード

このシェルコードは、上記の実行可能ファイルを「Rdws.exe」というファイル名でWindowsのTempフォルダに保存して実行する、という単純な機能を持っていました。

8-chart

図8:シェルコードのフロー

「Rdws.exe」として実行されるマルウェアには複数の種類が見られ、その1つはブルーターマイトの感染の第1段階で使用される「Emdivi t17」であることが確認されています。

さらに、改竄されたサイトの中には政府関係者と関わりのあるWebサイトも確認されており、水飲み場攻撃として使用されていると当社では分析しています。

また、特定の政府組織に属するIPからアクセスした場合にかぎりマルウェアがダウンロードされる設定になっているスクリプトも発見されました。ここから、明らかに標的を絞っていることがうかがえます。

9-waterhole

図9:特定の標的に絞り込むためのスクリプト

最後に、スクリプト内には「TEST」という変数名のIP情報が含まれています。これは攻撃者がテストを行うために設定した上海のIPである可能性が高いと考えられます。

標的ごとにカスタマイズされたマルウェア

Kaspersky Labの調査では、感染の第1段階で使用する「Emdivi t17」と同じファミリーのマルウェアとして「Emdivi t20」を確認しています。Emdivi t20はEmdivi t17の感染が成功した被害者に対してEmdivi t17を媒介にして感染する、第2段階で使用されるマルウェアであり、標的ごとにカスタマイズされています。類似点も多くありますが、基本的にEmdivi t20のほうが高機能となっています。比較しやすい例として、それぞれが実装しているバックドアのコマンドを確認してみましょう。Emdivi t17では9つのコマンドが実装されているのに比べ、Emdivi t20では最大40ものコマンドが実装されている検体も発見されています。

10-t17command

図10:Emdivi t17でサポートするコマンド

11-t20command

図11:Emdivi t20でサポートするコマンド

なお、バックドアコマンドがmd5のチェックサムで格納されているという点は、Emdivi t17、Emdivi t20に共通しています。

Kaspersky LabではEmdivi t20の検体を複数入手していますが、その中のいくつかを解析する中で、Emdivi t20が標的のために完全にカスタマイズされたマルウェアであることを示す2つの証拠を新たに確認しました。

1つ目の証拠となるのは、「Emdivi t20」の検体内に、標的組織の内部プロキシと思われる情報が暗号化された状態でハードコードされていたことです。以下0x44e79cの部分がそれにあたります。

12-proxi-before

図12:Emdivi t20検体内、暗号化された内部プロキシ情報

暗号化された部分を復号したものが、以下の「proxy.??????????.co.jp:8080」の部分です。

13-proxi-after

図13:内部プロキシ情報部分、復号後

昔からある手口ですが、「標的となっている組織がわかってしまう」「場合によっては該当組織内でしか動かないため汎用性に欠ける」等の理由により、あまり使われていません。ただし、似たようなケースが別のAPTでも時折観測されることは事実です。

今回特に興味深いのはもう1つの証拠、暗号化されたデータの復号に関する部分です。全般的にEmdiviファミリーは、自身に関する重要な情報を暗号化して格納しています。たとえば、C&Cサーバーの通信先、API名、分析を妨害する文字列、ミューテックスの値、さらには上記で紹介したバックドアコマンドのmd5チェックサムや標的の内部プロキシ情報も、暗号化された状態で格納されていました。こうした情報は、必要な場合にだけ復号を行い使用するように設計されています。そのため、詳細な解析を行うには、どのコード部分が暗号化されたデータなのか、また、どのように復号が行われるのか、を知ることが第一歩となります。また、復号処理を行うには検体固有の復号鍵が必要です。

Emdivi t20は、2つの値(Salt1とSalt2)を利用して復号鍵を生成する機能を持っています。Salt1は、Emdiviのバージョンと思われる文字列とC&CサーバーのIDと思われる4桁の数字をもとに作成されます。

14-magicstring

図14:Emdiviのバージョンと思われる文字列の例

Emdiviの名称の一部分(「t17」「t20」)は、ハードコードされたこの値から取っています。

Salt2に使用されるのは、マルウェア内部にハードコードされている大量のデータです。

15-salt2

図15:ハードコードされたデータの例

Emdiviファミリーのマルウェアは、鍵の生成手法に違いはあるものの、Salt1とSalt2の値を元に復号鍵を生成することがほとんどでした。

しかし2015年7月上旬、Kaspersky LabはSalt1、Salt2に加えてSalt3を使用して復号鍵を作成する検体を発見しました。このSalt3に設置される値は、攻撃先のセキュリティID(SID)です。

16-salt3

図16:復号鍵生成フロー(Salt3が追加されたもの)

つまり、この検体が機能するのは標的となった特定の端末もしくは特定のユーザー環境上だけであり、被害を受けたPCのSIDがわからないかぎり復号鍵の生成は非常に困難となります。復号鍵は、暗号化されて格納されているEmdiviの重要データを解析する上で、不可欠な要素です。復号鍵がなければ、マルウェアの通信先、機能等の詳細な解析が難しくなることは、火を見るよりも明らかです。

幸運なことに、当社ではいくつかの検体から総当たり攻撃によって復号鍵を入手することができ、C&Cサーバーの通信先、検体の機能等を解析することに成功しました。

まとめ

2015年6月に日本年金機構に対するサイバー攻撃が明るみに出たことをきっかけに、日本のさまざまな組織が対策に乗り出したと思われます。それでもなお、攻撃者はこうした防御策に合わせるかのように攻撃手法を変え、実際に被害を拡大しているのが現状です。本記事を執筆する間にも、暗号化手法にAESを採用することでさらに解析を困難としたEmdivi t20の検体が新たに発見されました。

Kaspersky Labは「ブルーターマイト」をはじめとするサイバースパイ活動に対抗していくために、さらなる調査と情報発信を行っていきます。

なお、カスペルスキー製品は、Emdivi t17、Emdivi t20、およびFlashエクスプロイトを以下のとおり検知し、ブロックします。

  • Win32.Emdivi.*
  • Win64.Agent.*
  • SWF.Agent.*
  • HEUR:Backdoor.Win32.Generic
  • HEUR:Exploit.SWF.Agent.gen
  • HEUR:Trojan.Win32.Generic
  • Trojan-Downloader.Win32.Agent.*
  • Trojan-Dropper.Win32.Agent.*

技術的詳細

Flashエクスプロイトのハッシュ値:

  • f46019f795bd721262dc69988d7e53bc
  • 512d93c711f006891cbc124392c2e8d9

Emdivi t17のハッシュ値:

  • b3bc4b5f17fd5f87ec3714c6587f6906
  • f8d9af763e64c420ffa6e8930727f779

Emdivi t20のハッシュ値:

  • 3b42577bbd602934a728744f242ffe26
  • f07216c34689a9104b29bbdcba17325f

C&Cサーバーのアドレス(一部):

  • hxxp://**********kind.com/
  • hxxp://j*******a.org/
  • hxxp://j*******b.biz/
  • hxxp://www.n*******b.com/
  • hxxp://www.s********ei.com/