エグゼクティブ サマリー
Cisco Talos では、ランサムウェアの亜種 Thanatos を分析しました。これは過去数ヶ月にわたり、複数のマルウェア キャンペーンを通じて配信されています。調査の結果、Thanatos による被害からの回復に役立つ、無料の復号化ツールを新たにリリースしました。Thanatos は複数のバージョンが出回っています。これは、Thanatos が進化し続ける脅威であり、攻撃者による積極的な開発が続けられていることを物語っています。一般に広まっている他のランサムウェアとは異なり、Thanatos は、ビットコインのような単一の暗号通貨で身代金の支払いを要求することはありません。その代わりに、ビットコインキャッシュ(BCH)、Zcash(ZEC)、Ethereum(ETH)などで身代金の支払いを求めることが確認されています。
また、Thanatos が利用する暗号化プロセスに問題があるため、被害者が身代金を支払った場合でも、マルウェアの作成者から被害者にデータを返すことができません。(身代金を支払ってもデータを復元できない)問題について、過去のレポートでは偶発的なものである可能性を指摘してきました。しかし一部のキャンペーンでは、これが意図的なものであることを示しています。これに対して Talos では、無料の復号化ツール「ThanatosDecryptor」をリリースしました。このツールでは、Thanatos で使用されるファイル暗号化手法の弱点を突いています。Thanatos に感染している場合、ThanatosDecryptor を使用することでデータへのアクセスを回復できます。
技術詳細
Thanatos は絶えず進化を続けている
Thanatos を配布するための各種キャンペーンを分析・追跡している間に、Thanatos の複数の亜種を特定しました。亜種はそれぞれ明確に異なっており、攻撃者による積極的な開発が続けられていることを示しています。主な違いは、被害者が感染したことを知らせ、身代金の支払方法を記載したメモファイルを見るとわかります。Thanatos のバージョン 1 は今年の 2 月中旬に拡がりました。身代金要求の声明は README.txt として被害者のデスクトップに保存されるという、とても原始的なものでした。
このバージョンのテキスト ファイルはとてもシンプルです。ファイルが暗号化されていることを知らせ、指定されたビットコイン ウォレットに 0.01 ビットコイン(BTC)の身代金を支払うよう指示しています。Talos が解析したバージョン 1 の全サンプルにおいて、同一のウォレット アドレスがハードコードされていました。この支払いプロセスはマニュアルで、電子メールがベースとなっています。このことから、攻撃者はランサムウェアを作成するリソースやノウハウだけでなく、Locky やCerber など他の有名なランサムウェアで使われる配信技術についての知識も欠いているようです。
バージョン 1 の配信が確認されてからしばらくすると、Thanatos バージョン 1.1 の配信キャンペーンが始まりました。バージョン 1.1 は主に 2018 年 2 月から 4 月にかけて拡散しています。バージョン 1.1 の主な違いは、被害者が支払いに使う暗号通貨の種類です。
上記の身代金要求ファイルのスクリーンショットでわかるように、Thanatos バージョン 1.1 は、BTC、ETH、BCH での身代金の支払いをサポートしています。さらにマルウェアには固有のマシン ID が含まれるようになりました。被害者は電子メールで攻撃者にこの ID を送信するように指示されます。
Talos が複数のサンプルを解析したところ、身代金ファイルは何度か変更されていました。このマルウェアで使用された身代金ファイルの別の例を以下に示します。攻撃者が被害者とのやり取りに使用する電子メールアドレスが変更されています。また、他の身代金ファイルに記載されている暗号通貨ではなく、Zcash での支払いを求めています。
感染したシステム上でデータをアクセス不能にするメカニズムを調べていく中で、興味深いキャンペーンを見つけました。少なくともこのケースの場合、攻撃者はデータの復元方法を被害者に用意していませんでした。キャンペーンのマルウェアは、チャット プラットフォーム「Discord」上で、被害者宛てのチャット メッセージに添付ファイルとして送られたようです。Discord とは、音声とテキストによるチャットのプラットフォームで、2人以上の参加者との間で直接やりとりできます。以下の URL は、添付されたマルウェアです。
hxxps://cdn[.]discordapp[.]com/attachments/230687913581477889/424941165339475968/fastleafdecay.exe
ここで使用されるファイル名「fastleafdecay.exe」は、ゲーム「Minecraft」用の mod と同じものであるかのように偽装されており、被害者はマルウェアを実行してしまいます。 実行されると、以下の身代金要求ファイルが被害者に表示されます。
上記のスクリーン ショットに示されるように、マルウェアの作者は身代金の支払いは要求せず、復号化もできないとしています。このことから、このケースは金銭目的ではなく、被害者のシステム データを破壊するために Thanatos を使用したと考えられます。興味深いことに、今回のサンプルに含まれる PDB パスは、Talos が分析した他のサンプルと異なっていました。今回のサンプルの PDB パスは以下のとおりです。
C:\Users\Artur\Desktop\csharp – js\косте пизда\Release\Thanatos.pdb
他のほとんどのサンプルでは、以下の PDB パスが含まれていました。
D:\Work\Thanatos\Release\Thanatos.pdb
また、デバッグ モードでコンパイルされたサンプルも確認されています。それには以下の PDB パスが含まれていました。
D:\Работа\Локер шифровчик\Thanatos-master\Debug\Thanatos.pdb
Thanatos の運用および暗号化プロセス
Thanatos は、被害者のシステムで実行されると、%appdata%/roaming 内に作成されたサブディレクトリに自分自身をコピーします。システムの稼働時間に基づいて、サブディレクトリと実行ファイル名がランダムに生成されます。これらは、マルウェアが実行されるたびに変わります。
Thanatos は、現在のユーザ プロファイル内の以下のディレクトリを再帰的にスキャンし、暗号化するファイルを特定します。
Desktop
Documents
Downloads
Favourites
Music
OneDrive
Pictures
Videos
多くのランサムウェアでは、暗号化の対象ファイルを拡張子で絞り込んでいます。しかし Thanatos は、拡張子を持つファイルをすべて暗号化します。そして検出したそれぞれのファイルに対して暗号化キーを作成します。この暗号化キーは、GetTickCount をコールして取得した、感染したシステムの実行ミリ秒数に基づいています。その後、Advanced Encryption Standard (AES)-256 を使用してファイルを暗号化し、暗号化キーを破棄します。暗号化キーが破棄されるため、要求した身代金が支払われた場合でも、攻撃者はデータを復号できません。暗号化されたファイルは、THANATOS ファイル拡張子付きでファイルシステムに書き込まれます。オリジナルのファイルは削除されます。
Thanatos は、iplogger という外部の Web サイトも利用しています。この Web サイトでは、ハードコードされたカスタム URL を提供しており、その URL にアクセスしたシステムに関する情報を追跡できます。これらの URL に HTTP GET リクエストを送信することで、攻撃者は Thanatos に感染した各種システムに関する情報を取得できます。
すべての HTTP GET リクエストは、以下のユーザ エージェントを使用して行われます。
Mozilla/5.0(Windows NT 6.1)Thanatos/1.1
Talos は、解析したさまざまな Thanatos サンプルに以下の iplogger のURLがハードコーディングされているのを確認しました。
hxxp://iplogger[.]com:80/1CUTM6
hxxp://iplogger[.]com:80/1t3i37
Thanatos に関連付けられている身代金要求ファイルは、ファイル名 README.txt として感染したユーザのデスクトップに保存されます。システムが起動されるたびに身代金要求ファイルがメモ帳アプリケーションで表示されるよう、レジストリ エントリが作成されます。このレジストリ キーは以下に置かれます。
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
このほか、マルウェアは実行可能ファイル自体を永続させることはしません。
ThanatosDecryptor
前述のように被害者のシステム上のファイルの暗号化に使用する暗号化キーは、システムが最後に起動してから経過したミリ秒数に基づいて導出されます。この値は 32 ビットの数値であることから、暗号化キーも 32 ビットになります。さらに、32 ビットの値に格納できる最大ミリ秒数は約 49.7 日分です。これは、パッチのインストールやシステムの再起動などの要因により、多くのシステムの平均稼働時間よりも高い値です。このことから、キー値の総当たりを行う時間的コストが大幅に低くなります。
また、システムの稼働時間は 1 日 1 回程度、Windows イベント ログに書き込まれるので、これに基づいた総当たり試行の最適化もできます。加えて、Thanatos は暗号化ファイルのファイル作成日を変更しないため、キーの総当たり範囲を(感染に至る 24 時間以内の)数ミリ秒前後という、非常に狭い範囲まで絞り込めます。総当たり試行が平均 100,000 回/秒(テストに使用した仮想マシンの基準値)であれば、暗号化キーを無事に復旧できるまでの時間はおよそ 14 分です。
Talos は、復号化ユーティリティ をリリースしました。これは、感染したシステムに保存されたデータやファイルへのアクセスを回復するのに役立ちます。 このユーティリティは、現時点で Talos が確認したバージョン 1 および 1.1 の Thanatos ランサムウェアと、すべての既知の Thanatos サンプルでテストしています。
注:ファイルをできるだけ速やかに復号化できるよう、ThanatosDecryptor は、感染した元のマシン上で、マルウェアが作成した暗号化ファイルに対して実行してください。
ThanatosDecryptor は現在、以下のタイプのファイルの復号化をサポートしています。
画像:.gif、.tif、.tiff、.jpg、.jpeg、.png
動画:.mpg、.mpeg、.mp4、.avi
音声:.wav
ドキュメント:.doc、.docx、.xls、.xlsx、.ppt、.pptx、.pdf、.odt、.ods、.odp、.rtf
その他:.zip、.7z、.vmdk、.psd、.lnk
ツールは最初にランサムウェアと同じディレクトリを探し、拡張子が .THANATOS のファイルを特定します。拡張子が .THANATOS のファイルについては、感染中に変更されていない元のファイル拡張子を取得して、これをサポートしているファイル タイプの一覧と比較します。そのファイル タイプがサポートされている場合は、復号化のキューに追加します。
また、稼働時間のメッセージがないか Windows イベント ログを解析し、暗号化されたファイルの作成時間メタデータを使用して復号化の開始値を決定します。この値は暗号化キーの導出に使用し、ファイルの内容に対して AES 復号操作を実行します。その結果得られたバイトを、特定のファイルタイプで有効なファイルヘッダーとして認識されている値と比較します。一致しない(復号化プロセスに失敗した)場合は、暗号化キーのシード値をインクリメントして、この手順を繰り返します。成功すると、元のファイルがファイル システムに書き込まれ、元のファイル名が復元されます。1 つのファイルが正常に復号化された後は、その復号化試行のシード値を、(近似していると考えられるため)他のファイルに対する復号化試行の開始点として使用します。
ThanatosDecryptor を使用するには、こちらから ThanatosDecryptor プロジェクトをダウンロードし、リリースディレクトリにある ThanatosDecryptor.exe を実行します。追加情報およびサンプルの出力は、こちらから入手できます。
身代金の支払いを追跡した結果、攻撃者は身代金を受け取っていないことが判明
前述のように、Thanatos のキャンペーンや関連するサンプルごとに、攻撃者は身代金の要求通貨を変えています。各種のウォレットや関連する暗号通貨取引を解析することにより、こうしたマルウェアの規模や成功について興味深い情報が徐々に明らかになってきました。すべてのサンプルでは、身代金の支払方法として以下の暗号通貨が記載されていました。
ビットコイン($BTC):
1HVEZ1jZ7BWgBYPxqCVWtKja3a9hsNa9Eh
1DRAsxW4cKAD1BCS9m2dutduHi3FKqQnZF
イーサリアム($ETH):
0x92420e4D96E5A2EbC617f1225E92cA82E24B03ef
ビットコイン キャッシュ($BCH):
Qzuexhcqmkzcdazq6jjk69hkhgnme25c35s9tamz6f
ZCash($ZEC):
t1JBenujX2WsYEZnzxSJDsQBzDquMCf8kbZ
ビットコイン ウォレットを解析したところ、攻撃者は被害者から一度も身代金を受け取っていないことが分かりました。実際、解析したサンプル全体でもっとも頻繁に記載されていたウォレット(1HVEZ1jZ7BWgBYPxqCVWtKja3a9hsNa9Eh)は有効なビットコイン ウォレットですらありませんでした。つまり、被害者がビットコインで支払いをしようとしても、支払うことができないということです。2 つ目のウォレット(1DRAsxW4cKAD1BCS9m2dutduHi3FKqQnZF)は、取引が 1 つもありませんでした。
同様に、記載されたビットコインキャッシュ ウォレットでも取引は 1 回もありませんでした。
Thanatos に関連付けられている身代金ファイルの 1 つに記載があった Zcash ウォレットを解析したところ、数件の取引が見られました。このウォレットが受け取った ZEC 総額は 2.24767084 で、およそ 450 米ドルです。
最後に、攻撃者が使用したイーサリアム ウォレットでも数件の取引が確認されました。しかしその合計額は、脅威環境のなかで通常みられる、より成功したランサムウェア キャンペーンのいくつかと比較しても低いものでした。このウォレットで受け取った ETH の総額は 0.52087597 で、約 270 米ドルでした。
つまり、世界に放たれたすべてのサンプルにおいて、攻撃者のウォレットは総額 720 米ドルしか受け取っていないことになります。その金額が、すべて Thanatos による身代金だとすれば、他の金銭目的のサイバー犯罪と比べて金額はわずかだと言えます。
まとめ
金銭目的にしろデータの破壊目的にしろ、攻撃者はエンドユーザをターゲットにし続けています。Thanatos は、どのようなユーザであれ、いとも簡単にターゲットになりうることを証明しています。大混乱を引き起こすのに、巧妙な攻撃者になる必要はありません。攻撃者が利用できるものはエンドレスに供給されます。たとえば今回のケースでは、攻撃者は Discord チャット プラットフォームを利用しています。そのため、真摯にセキュリティに取り組み、個人目的でもビジネス目的でも、自分のシステムを保護する手順を講じることが重要です。こうした攻撃の多くはユーザによる操作を利用するため、送信元が不明な添付ファイルを開いたり、不明なリンクをクリックしたりする場合は注意しましょう。
カバレッジ
Advanced Malware Protection(AMP)は、これらの攻撃者によるマルウェアの実行の阻止に最適です。
シスコクラウド Web セキュリティ(CWS)または Web セキュリティ アプライアンス(WSA)の Web スキャンは、悪意のある Web サイトへのアクセスを防止し、これらの攻撃で使用されるマルウェアを検出します。
電子メール セキュリティは、攻撃の一環として攻撃者が送りつける不正な電子メールをブロックします。
次世代ファイアウォール(NGFW)、次世代侵入防止システム(NGIPS)、およびMeraki MX などのネットワーク セキュリティ アプライアンスは、この脅威に関連する悪意のあるアクティビティを検出できます。
AMP Threat Grid は、悪意のあるバイナリを特定し、すべてのシスコ セキュリティ製品に保護機能を埋め込みます。
シスコのセキュア インターネット ゲートウェイ(SIG)である Umbrella は、社内ネットワークの内外で悪意のあるドメイン、IP、URL への接続をブロックします。
オープンソース Snort サブスクライバ ルール セットをお使いであれば、Snort.org で購入可能な最新のルール パックをダウンロードすることで、システムを最新状態に維持できます。
YARA SIGNATURES
Talos は、Thanatos ランサムウェアに関連したサンプルの特定に使用できる YARA シグネチャも提供しています。
rule Thanatos { strings: $s1 = ".THANATOS\x00" ascii $s2 = "\\Desktop\\README.txt" ascii $s3 = "C:\\Windows\\System32\\notepad.exe C:\\Users\\" ascii $s4 = "AppData\\Roaming" ascii $s5 = "\\Desktop\x00" ascii $s6 = "\\Favourites\x00" ascii $s7 = "\\OneDrive\x00" ascii $s8 = "\\x00.exe\x00" ascii $s9 = "/c taskkill /im" ascii $s10 = "Software\\Microsoft\\Windows\\CurrentVersion\\Run" ascii condition: 6 of ($s1, $s2, $s3, $s4, $s5, $s6, $s7, $s8, $s9, $s10) }
侵害の兆候(IOC)
ファイルのハッシュ(SHA256)
bad7b8d2086ac934c01d3d59af4d70450b0c08a24bc384ec61f40e25b7fbfeb5
fe1eafb8e31a84c14ad5638d5fd15ab18505efe4f1becaa36eb0c1d75cd1d5a9
8df0cb230eeb16ffa70c984ece6b7445a5e2287a55d24e72796e63d96fc5d401
97d4145285c80d757229228d13897820d0dc79ab7aa3624f40310098c167ae7e
55aa55229ea26121048b8c5f63a8b6921f134d425fba1eabd754281ca6466b70
02b9e3f24c84fdb8ab67985400056e436b18e5f946549ef534a364dff4a84085
241f67ece26c9e6047bb1a9fc60bf7c45a23ea1a2bb08a1617a385c71d008d79
0bea985f6c0876f1c3f9967d96abd2a6c739de910e7d7025ae271981e9493204
42748e1504f668977c0a0b6ac285b9f2935334c0400d0a1df91673c8e3761312
URL
hXXps://cdn[.]discordapp[.]com/attachments/230687913581477889/424941165339475968/fastleafdecay.exe
hXXp://iplogger[.]com:80/1CUTM6
hXXp://iplogger[.]com:80/1t3i37
ユーザ エージェント
Mozilla/5.0 (Windows NT 6.1) Thanatos/1.1
本稿は 2018年6月26日に Talos Group のブログに投稿された「Files Cannot Be Decrypted? Challenge Accepted. Talos Releases ThanatosDecryptor」の抄訳です。