ここ数週間で、Dukeグループのツールセットに2つの補強メンバーが登場したことが判明した。SeaDukeとCloudDukeだ。これらのうちSeaDukeはシンプルなトロイの木馬で、Pythonで書かれている点が興味深い。さらに不思議なことに、SeaDukeはWindowsとLinuxの両方を同時にサポートしている。我々が観察してきたDukeグループによるマルウェアとしては、初のクロスプラットフォームのマルウェアである。SeaDukeはクロスプラットフォームであるにも関わらず、単一のトロイの木馬だ。一方、CloudDukeはマルウェアコンポーネントの完全なツールセットのように見える。あるいは、Dukeグループが呼ぶように「ソリューション」なのだろう。これらのコンポーネントには、独自のローダーやダウンローダ、1つではなく2つの異なるトロイの木馬型のコンポーネントが含まれている。C&Cおよび盗んだデータを抜き出すための経路として、Dukeグループはクラウドストレージサービス、とりわけマイクロソフトのOneDriveを使用しているということをCloudDukeが雄弁に物語っている。最後に、CloudDukeの最近のスピアフィッシングキャンペーンの一部は、1年前からのCozyDukeのスピアフィッシングキャンペーンと酷似している。

クロスプラットフォームのマルウェアSeaDukeにLinuxサポートが追加

 先週、シマンテックおよびパロアルトネットワークスの両社はSeaDukeに関する研究内容を公開した。SeaDukeは、Dukeグループが使用するトロイの木馬の武器庫に新たに追加されたものである。これまでのDukeグループによるマルウェアは、常にCおよびC++言語の組み合わせだけでなくアセンブリ言語によっても書かれていた。一方、SeaDukeは珍しくPythonで書かれており、複数のレイヤに渡って難読化がなされている。こうしたPythonのコードは通常、py2exeやpyinstallerを用いてWindowsの実行形式にコンパイルする。しかし今回のPythonのコードは、WindowsとLinuxの双方で動作するように設計されている。それ故、我々が推測するところでは、DukeグループはLinuxユーザの標的に対しても同一のSeaDukeのPythonコードを使っている。DukeグループがLinuxプラットフォームを標的にしたマルウェアを採用したのを我々が目にしたのは、このときが初めてだ。

seaduke_crossplatform (39k image)
SeaDukeで見つかった、クロスプラットフォームサポートの例

マルウェアツールセットCloudDukeにおける新たなソリューション群

 先週、パロアルトネットワークス社およびカスペルスキー社は、各社がMiniDionisおよびCloudLookと呼んでいるマルウェアのコンポーネントについて、研究内容を公表した。MiniDionisおよびCloudLookは、ともに当社がCloudDukeと称するより大きなマルウェアツールセットのコンポーネントだ。このツールセットは、多岐に渡る機能を提供するマルウェアのコンポーネント群から構成される。さらに、共有コードフレームワークに部分的に依存し、常に同じローダーを用いている。当該サンプルの中で見つかったPDB文字列に基づくと、マルウェアの作者はCloudDukeのコンポーネントを「DropperSolution」「BastionSolution」「OneDriveSolution」などと「ソリューション(solution)」と呼んでいた。我々が観察したPDB文字列の一覧を以下に示す。

C:\DropperSolution\Droppers\Projects\Drop_v2\Release\Drop_v2.pdb
c:\BastionSolution\Shells\Projects\miniDionis4\miniDionis\obj\Release\miniDionis.pdb
c:\BastionSolution\Shells\Projects\miniDionis2\miniDionis\obj\Release\miniDionis.pdb
c:\OneDriveSolution\Shells\Projects\OneDrive2\OneDrive\obj\x64\Release\OneDrive.pdb

 我々が最初に観察したCloudDukeのコンポーネントは、内部的に「DropperSolution」と呼ばれているダウンローダである。ダウンローダの目的は、被害者のシステムにさらなるマルウェアをダウンロードして実行することだ。もっとも多く観察されたケースでは、当該ダウンローダは侵害されたWebサイトへの接続を試み、暗号化された悪意あるペイロードをダウンロードして、復号と実行を行う。ダウンローダの構成されていた状況によるが、一部の例ではまず手始めにマイクロソフトのクラウドストレージサービスOneDriveへログインし、そこからペイロードを取得することを試みる。OneDriveでペイロードが得られなければ、ダウンローダは侵害されたWebサイトからダウンロードするという、先に述べた方法へ逆戻りする。

 また、CloudDukeツールセット中に、2つの異なるトロイの木馬のコンポーネントが観察された。1つ目は内部的に「BastionSolution」と呼ばれており、パロアルトネットワークス社が同社の研究において「MiniDionis」としているトロイの木馬である。興味深いことに、BastionSolutionは機能的にはSeaDukeの完全なコピーのように見える。唯一の実質的な違いは、プログラミング言語の選択だけだ。BastionSolutionはまた、内部的に「Z」と呼ばれているらしいコードフレームワークをかなり使っている。このフレームワークは、暗号化、圧縮、ランダム化、ネットワーク通信などの機能を持つクラスを提供している。

bastion_z (12k image)
トロイの木馬BastionSolution内のクラスのリスト。「Z」フレームワーク由来の複数のクラスを含む

 暗号化やランダム化のクラスのように、同じ「Z」フレームワークに由来するクラスは、CloudDukeツールセットのもう1つのトロイの木馬型のコンポーネントでも使用されている。この2番目のコンポーネントは内部的には「OneDriveSolution」と呼ばれている。C&Cの経路としてマイクロソフト社のクラウドストレージサービスOneDriveに依存しているため、とりわけ興味深い。これを実現するため、OneDriveSolutionは事前に設定されたユーザ名とパスワードでOneDriveにログインを試みる。成功すると、続いて被害者のコンピュータからOneDriveのアカウントへデータのコピーを始める。また同時に、マルウェアが実行すべきコマンドが格納されたファイルをこのOneDriveのアカウントから探す。

onedrive_z (7k image)
トロイの木馬OneDriveSolution内のクラスのリスト。「Z」フレームワーク由来の複数のクラスを含む

 すべてのCloudDukeの「Solution」は同一のローダーを用いている。このローダーはあるコードの一部分となっているが、それは埋め込まれて暗号化された「Solution」を復号したり、メモリに読み込んで実行することが主目的であるコードだ。Dukeグループは自身のマルウェアのためにローダーをたびたび利用するが、以前彼らが使っていたローダーと異なり、CloudDukeのローダーはずっと融通が利く。最終的なペイロードの読み込みおよび実行に複数の方式をサポートしており、また追加的なマルウェアコンポーネントをディスクに書き込んで実行する機能があるのだ。

CloudDukeのスピアフィッシングキャンペーンと、CozyDukeにおける類似性

 CloudDukeはこのところスピアフィッシングメール経由で広がりを見せている。報告されているところでは、米国防衛省のような組織などが標的にされている。こうしたスピアフィッシングメールには侵害されたWebサイトへのリンクが含まれており、サイト上にはCloudDukeの実行ファイル群を含むzipファイルが置かれている。大半の場合、このような実行ファイルを実行することで、被害者のハードディスクに2つの新しいファイルが書き込まれることになる。両ファイルのうち1つ目は、音声ファイルやPDFファイルのような囮だ。一方でもう1つのファイルは、いわゆる「DropperSolution」というCloudDukeのダウンローダが埋め込まれた、CloudDukeのローダーである。こうしたケースでは、被害者には囮ファイルが提示され、バックグラウンドではダウンローダがCloudDukeのトロイの木馬である、「OneDriveSolution」または「BastionSolution」のいずれかのダウンロードへと進む。

decoy_ndi_small (63k image)
CloudDukeのスピアフィッシングキャンペーンで採用された囮ドキュメントの例。攻撃者がここからコピーしているのは明らかだ

 だが興味深いことに、当社でこの7月に観察した、CloudDukeの別のスピアフィッシングキャンペーンの一部は、2014年7月初めという、ほぼ1年前に見られたCozyDukeのスピアフィッシングキャンペーンに驚くほど似ている。これら双方のスピアフィッシングキャンペーンでは、囮のドキュメントはまったく同一のPDFファイル「US letter fax test page」である(28d29c702fdf3c16f27b33f3e32687dd82185e8b)。同様に、悪意のあるファイルが置かれたURLは、双方のキャンペーンにおいて、eFaxと関連があるようなものになっている。また興味深いことに、CozyDukeに触発されたCloudDukeのスピアフィッシングキャンペーンでは、メール内でリンクが張られた悪意のあるアーカイブのダウンロードと実行を行うと、CloudDukeのダウンローダの実行につながるわけではなく、「BastionSolution」が実行されるのだ。つまり、その他のCloudDukeスピアフィッシングキャンペーンのために記述された処理が、1ステップ飛ばされる。

decoy_fax (72k image)
CloudDukeおよびCozyDukeの双方のスピアフィッシングキャンペーンで採用された囮の「US letter fax test page」

検出回避のために、クラウドサービスがますます使用される

 Dukeグループが彼らの作戦の一部として、クラウドサービス全般やMicrosoft OneDriveを使ったのを、我々が目にしたのはCloudDukeが初めてというわけではない。今年の春頃、当社はCozyDukeの研究結果を公開 し、そこで次の点を述べた。すなわちCozyDukeは、盗んだデータをこっそり運び出すために時にOneDriveアカウントを直接的に用いたり、あるいはまた時には同じOneDriveアカウントから追加のコマンドを含むファイルを取得する。

 こうした以前のケースにおいて、Dukeグループは補助的なコミュニケーション手段としてOneDriveを使用するだけであり、依然として、動作の大半においてC&Cの経路を従来のものに頼っていた。そのため、実際のトロイの木馬をダウンロードしてコマンドを渡すところから、盗んだデータを最終的に持ち出すところまで、作戦の各ステップにおいてCloudDukeが本当にOneDriveのみに依存するようになったことは、興味深い。

 C&Cの経路としてOneDriveのようなサードパーティのWebサービスにのみ依存することによって、Dukeグループはよりうまく検出をかいくぐろうとしたのだと我々は考える。組織のネットワークから、未知のWebサーバへ大量のデータが転送されたら、いともたやすく疑いが生じる。しかし、人気のあるクラウドストレージサービスへデータを転送するのは普通のことだ。攻撃者が大量の盗んだデータを秘密裏に転送するのにより適した方法とは、人々が正規の理由で同じデータを日々転送するのと同じ方法である(たまたまだが、サードパーティのWebサービスがC&Cの経路として使用されることの影響を題材にした講演が、VirusBulletin 2015カンファレンスで行われる予定だ)。

限りある資源を、検出を回避し防衛側に先んじることへ回す

 多目的なマルウェアツールセットを1つ開発するのですら、細かいことを置いてくとして、時間と資源を要するものだ。したがって、異なるツールセット間でフレームワークをサポートするなど、コードの再利用を試みることは理に適っているように思える。しかしながら、SeaDukeとCloudDukeのコンポーネントBastionSolutionにおいて複数のプログラミング言語で同じコードを書き直したことによって、Dukeグループはさらにもう1歩進んだようだ。内部は似通ってはいるが、外部ではまったく違うように見える2つのマルウェアツールセットを提供することにより、時間と資源を節約できる明白な利点がある。これで一方のツールセットが発見されても、2つ目のツールセットの発見にただちに結び付くことはない。

 Dukeグループはロシアと結びつきあることが長い間疑われているが、異常に長い期間、また特に最近は異常な厚かましさで諜報活動を行っている。最近のCloudDukeやSeaDukeのキャンペーンは、Dukeグループが近いうちに活動終了するつもりはないという、明確な兆候のように見える。

 Research and post by Artturi (@lehtior2)

 エフセキュアはCloudDukeをTrojan:W32/CloudDuke.BまたはTrojan:W64/CloudDuke.Bとして検知する。

サンプル:

04299c0b549d4a46154e0a754dda2bc9e43dff76
2f53bfcd2016d506674d0a05852318f9e8188ee1
317bde14307d8777d613280546f47dd0ce54f95b
476099ea132bf16fa96a5f618cb44f87446e3b02
4800d67ea326e6d037198abd3d95f4ed59449313
52d44e936388b77a0afdb21b099cf83ed6cbaa6f
6a3c2ad9919ad09ef6cdffc80940286814a0aa2c
78fbdfa6ba2b1e3c8537be48d9efc0c47f417f3c
9f5b46ee0591d3f942ccaa9c950a8bff94aa7a0f
bfe26837da22f21451f0416aa9d241f98ff1c0f8
c16529dbc2987be3ac628b9b413106e5749999ed
cc15924d37e36060faa405e5fa8f6ca15a3cace2
dea6e89e36cf5a4a216e324983cc0b8f6c58eaa8
e33e6346da14931735e73f544949a57377c6b4a0
ed0cf362c0a9de96ce49c841aa55997b4777b326
f54f4e46f5f933a96650ca5123a4c41e115a9f61
f97c5e8d018207b1d546501fe2036adfbf774cfd

C&Cに使われている、侵害されたサーバ:

hxxps://cognimuse.cs.ntua.gr/search.php
hxxps://portal.sbn.co.th/rss.php
hxxps://97.75.120.45/news/archive.php
hxxps://portal.sbn.co.th/rss.php
hxxps://58.80.109.59/plugins/search.php

CloudDukeを置くために使われている、侵害されたWebサイト:

hxxp://flockfilmseries.com/eFax/incoming/5442.ZIP
hxxp://www.recordsmanagementservices.com/eFax/incoming/150721/5442.ZIP
hxxp://files.counseling.org/eFax/incoming/150721/5442.ZIP