脅威のスポットライト:教育業界とソフトウェア業界を標的にするTycoonランサムウェア

By The BlackBerry Research and Intelligence Team

本ブログ記事は、2020年6月4日に米国で公開されたBlackBerryのブログ記事の抄訳版です。原文はこちらからご覧頂けます。

概要

Tycoonは、Windows®とLinux®を狙うマルチプラットフォームのJavaランサムウェアであり、遅くとも2019年12月[1]には観察されていました。Tycoonは、トロイの木馬化されたJava Runtime Environment(JRE)として仕掛けられ、あまり知られていないJavaイメージ形式で目立たないように活動します。

Tycoonを背後で操る攻撃者は、細かく標的を絞った配信メカニズムを使用して、教育業界およびソフトウェア業界の中小企業や機関に侵入し、そこからファイルサーバーの暗号化と身代金の要求を行うことがわかりました。しかし初期の亜種では共通のRSA秘密鍵を再利用するため、身代金を支払わなくてもデータを復元できる可能性があります。

配信

KPMGのUK Cyber Response Servicesとパートナーシップを組むBlackBerry Research and Intelligenceチームは最近、Javaで作成された新種のランサムウェアを発見しました。このランサムウェアでは組織に対する標的型攻撃が仕掛けられ、システム管理者はドメインコントローラとファイルサーバーを攻撃された後にシステムからロックアウトされてしまいました。感染したシステムのフォレンジック調査を実施すると、最初の侵入がインターネットに接続されたRDPジャンプサーバー経由で発生したことが明らかになりました。
次の図は、攻撃者がどのようにして最初にアクセス権を獲得し、そこから施設全体のシステムを感染させていったかを示しています。

 

図1:攻撃のタイムライン

 

インターネットに接続されたRDPサーバーは、すでに復元されていたため、インシデント後の解析を行うことはできませんでした。しかし被害者のマシンを解析したところ、攻撃者が使用した手法の一部は一般的ではない、注目に値するものであることがわかりました。

  • 攻撃者は被害者のマシンで永続性を得られるよう、イメージファイル実行オプション(IFEO)インジェクション[2]と呼ばれるテクニックを使用しました。IFEO設定はWindowsレジストリに格納されます。これらの設定により、開発者は、ターゲットアプリケーションの実行中にデバッグアプリケーションを接続してソフトウェアをデバッグすることができます。

  • 次にオペレーティングシステムのMicrosoft Windowsオンスクリーンキーボード(OSK)機能とともに、バックドアが実行されました。

図2:バックドアの実行に使用されるレジストリキー

 

  • 攻撃者はProcessHackerユーティリティを使用して、組織のアンチマルウェアソリューションを無効にし、Active Directoryサーバーのパスワードを変更しました。これにより被害者はシステムにアクセスできなくなります。

  • Javaライブラリや実行スクリプトなど、攻撃者のファイルの大部分にはタイムスタンプが付いており、ファイルの日付のタイムスタンプは2020年4月11日15:16:22でした。

図3:ファイルのタイムスタンプ

 

最後に攻撃者は、Javaランサムウェアモジュールを実行し、ネットワークに接続されたバックアップシステムをはじめとするすべてのファイルサーバーを暗号化しました。

実行

Tycoonランサムウェアは、トロイの木馬化されたJavaランタイム環境(JRE)ビルドを含むZIPアーカイブ形式で送られてきます。マルウェアは、ビルドディレクトリのlib\modulesにあるJavaイメージファイル(JIMAGE)にコンパイルされます。

JIMAGEは、実行時にJava仮想マシン(JVM)によって使用されるように設計された、カスタムのJREイメージを格納する特殊なファイル形式です。JIMAGEには、特定のJREビルドをサポートするすべてのJavaモジュールのリソースとクラスファイルが含まれています。この形式はJavaバージョン9で初めて導入され、それほど広まってはいません。JIMAGEは、一般的なJavaアーカイブ形式(JAR)とは異なり、ほとんどがJDK内部で使用され、開発者が使用することはめったにありません。

図4:悪意のある「モジュール」ファイル。JIMAGE形式では、0xDADAFECAシグネチャから始まるヘッダーが使用される

 

OpenJDK9 jimageユーティリティは、次のようにJavaイメージファイルを抽出して逆コンパイルすることができます。

$ ./jimage --help
Usage: jimage <extract|recreate|info|list|verify> <options> jimage...


抽出後、ランサムウェアイメージには、「tycoon」と呼ばれるプロジェクトに関連する3つのモジュールが格納されます。

図5:ZIPアーカイブの中身(左)と、逆コンパイルされたJavaモジュールJIMAGEの構造(右)

 

ランサムウェアは、java -mコマンドを使用して悪意のあるJavaモジュールのMain関数を実行するシェルスクリプトを実行することで、トリガーされます。

悪意のあるJREビルドには、このスクリプトのWindows®バージョンとLinux®バージョンの両方が含まれています。つまり攻撃者はLinux®サーバーも標的にするということです。

図6:ランサムウェアの実行に使用されるシェルスクリプトと、Java「リリース」ファイル

 

設定

マルウェアの設定は、プロジェクトのBuildConfig ファイルに格納され、次のような情報を含んでいます。

  • 攻撃者の電子メールアドレス
  • RSA公開鍵
  • 身代金要求メッセージの内容
  • 除外リスト
  • 実行されるシェルコマンドのリスト

値名

値の例

EMAIL_1

“dataissafe[at]protonmail[.]com”

EMAIL_2

“dataissafe[at]mail[.]com”

FILE_EXTENSION

“thanos”

PUBLIC_KEY

“-----BEGIN PUBLIC KEY----- \nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDa+whJSxr9ngcD1T5GmjDNSUEY\ngz5esbym
vy4lE9g2M3PvVc9iLw9Ybe+NMqJwHB8FYCTled48mXQmCvRH2Vw3lPkA\nTrQ4zbVx0fgEsoxekqt
b3GbK2NseXEeavCi5lo5/jXZi4Td7nlWTu27CluyxRSgv\nL0O19CwzvckTM91BKwIDAQAB\n
-----END PUBLIC KEY-----”

NUMBER_OF_KEYS_PER_ROOT_PATH

100

CHUNK_SIZE

10485760L (10 MB)

ENCRYPTION_PATTERN

true, true, false, false, false, true, true, false, false, false, false, false, false, false, false, false

HEADER

0x68, 0x61, 0x70, 0x70, 0x79, 0x6E, 0x79, 0x33, 0x2E, 0x31 (ASCII for “happyny3.1”)

DIR_BLACKLIST

"Windows", "Boot", "System Volume Information", "Program Files\\Common Files\\Microsoft Shared", "Program Files\\Common Files\\System", "Program Files\\Common Files\\Services", "Program Files\\Common Files\\SpeechEngines", "Program Files (x86)\\Common Files\\microsoft shared", "Program Files (x86)\\Common Files\\System", "Program Files (x86)\\Common Files\\Services", "Program Files (x86)\\Common Files\\SpeechEngines", "Program Files\\Internet Explorer", "Program Files\\Internet Explorer", "Program Files\\Windows Mail", "Program Files\\Windows Media Player", "Program Files\\Windows Photo Viewer", "Program Files\\Windows Sidebar", "Program Files\\DVD Maker", "Program Files\\MSBuild", "Program Files\\Reference Assemblies", "Program Files\\Windows Defender", "Program Files\\Windows NT", "Program Files (x86)\\Internet Explorer", "Program Files (x86)\\Windows Mail", "Program Files (x86)\\Windows Media Player", "Program Files (x86)\\Windows Photo Viewer", "Program Files (x86)\\Windows Sidebar", "Program Files (x86)\\MSBuild", "Program Files (x86)\\Reference Assemblies", "Program Files (x86)\\Windows Defender", "Program Files (x86)\\Windows NT", "ProgramData\\Microsoft", "Users\\All Users"

EXTENSION_BLACKLIST

"mui", "exe", "dll", "lolz"

FILE_BLACKLIST

"decryption.txt", "$Mft", "$Mft (NTFS Master File Table)", "$MftMirr", "$LogFile", "$LogFile (NTFS Volume Log)", "$Volume", "$AttrDef", "$Bitmap", "$BitMap", "$BitMap (NTFS Free Space Map)", "$Boot", "$BadClus", "$Secure", "$Upcase", "$Extend", "$Quota", "$ObjId", "$Reparse", "$Extend", "bootmgr", "BOOTSECT.BAK", "pagefile.sys", "pagefile.sys (Page File)", "boot.ini", "bootfont.bin", "io.sys"

EXEC_COMMANDS

"vssadmin delete shadows /all /quiet", "wmic shadowcopy delete", "bcdedit /set {default} bootstatuspolicy ignoreallfailures", "bcdedit /set {default} recoveryenabled no", "wbadmin delete catalog -quiet", "netsh advfirewall set currentprofile state off", "netsh firewall set opmode mode=disable"

TXT

身代金要求メッセージの内容(IOCを参照)

図7:設定値の例


図8:BuildConfigファイルのフラグメント


挙動

マルウェアは攻撃を仕掛ける際に、BuildConfigファイルで指定された一連のシェルコマンドを実行します。

vssadmin delete shadows /all /quiet
wmic shadowcopy delete
bcdedit /set {default} bootstatuspolicy ignoreallfailures
bcdedit /set {default} recoveryenabled no
wbadmin delete catalog -quiet
netsh advfirewall set currentprofile state off
netsh firewall set opmode mode=disable


install_idの値は、システムUUID値のSHA256ハッシュの最初の4バイトを使用して、被害者ごとに生成されます。UUIDを取得するために、マルウェアは次のwmicコマンドを実行します。

wmic csproduct get UUID


暗号化するパスのリストはパラメータとして渡すことができます。あるいはマルウェアがシステム内のすべてのrootパスのリストを生成します。個別の暗号化スレッドがパスリストの項目ごとに生成されます。

暗号化プロセスが完了すると、マルウェアは各暗号化パスにある削除されたファイルを上書きして、ファイルを回復できないようにします。そのとき、cipher.exeと呼ばれる埋め込みのWindowsユーティリティが使用されます。

図9:元のファイルの安全な削除


ファイルの暗号化

ファイルはGalois/Counter(GCM)モード[3]でAES-256アルゴリズムを使用して暗号化されます。16バイト長のGCM認証タグが付けられるため、データの整合性が保たれます。12バイト長の初期化ベクトル(IV)が、java.security.SecureRandom関数を使用して暗号化チャンクごとに生成されます。暗号化チャンクサイズはBuildConfigで指定され、10MBに設定されます。またファイルチャンクが処理されるパターンは、パターン設定によって指定されます。攻撃者は大きいファイルの一部をスキップすることで、暗号化プロセスを高速化すると同時に、ファイルを破損させて使用できないようにします。

java.security.Secure.Random関数を使用して、暗号化パスごとに一連のAES-256キーが生成されます。各パスのキーの最大数は BuildConfig で設定され、サンプル間で異なる場合があります。各ファイル(ファイルがチャンクサイズより大きい場合はファイルチャンク)は、異なるAESキーで暗号化されてから、攻撃者のRSA-1024公開鍵で暗号化され、チャンクメタデータブロックに格納されます。

図10:AESキーの生成


暗号化された各チャンクに追加されるメタデータには以下の情報が含まれています。

  • BuildConfigで指定されたヘッダー値
  • チャンクインデックス(8バイト)
  • チャンクサイズ(8バイト)
  • チャンクごとに生成されたAES IV(12バイト)
  • AES GCMタグ(16バイト)
  • RSA暗号化されたAESキースキーム(128バイト)。以下を含みます。
    o 被害者ID(4バイト)
    o AESキー(32バイト)
    o 被害者IDのSHA512ハッシュとAESキー(64バイト)

図11:メタデータが強調表示されている暗号化ファイル


安全に生成されたAESキーを暗号化するために非対称RSAアルゴリズムが使用されることから、ファイルの復号には攻撃者の秘密RSAキーを取得する必要があります。1024ビットのRSAキーの因数分解は、理論的には可能ですが、並外れた計算能力を必要とし、まだ実現されていません。

しかしBleepingComputer フォーラム[4]で助けを求めていた被害者の1人が、攻撃者から購入したデクリプターに含まれていたと思われる秘密RSAキーを投稿しました。暗号化ファイルに拡張子 .redrum を追加していた初期のTycoonランサムウェアによる被害を受けたファイルの一部については、このキーで復号できることが証明されています。

図12:復号されたAESキーメタデータ:install_id(赤)、AESキー(緑)、sha512ハッシュ(青)



図13:復号されたAESキーを使用して.redrumファイルを復元する


残念ながらこの方法は、暗号化ファイルに拡張子.grinchおよび.thanosを追加する最近の「happyny3.1」バージョンでは機能しません。


結論

マルウェアの作成者は、目立たないように振る舞うための新しい方法を絶えず求めています。作成者は従来の難読化から、一般的でないプログラミング言語やあまり知られていないデータ形式へと徐々に移行しつつあります。私たち研究チームはすでに、JavaやGoなどの言語で作成されたランサムウェアが大幅に増加しているのを目にしています。Tycoonは私たちが遭遇した最初のサンプルであり、具体的にはJava JIMAGEフォーマットを悪用してカスタムの悪意のあるJREビルドを作成します。

Tycoonは6か月以上もの間活動を続けていますが、被害者の数は限られているようです。これはマルウェアが細かく標的を絞っている可能性があるということを意味します。また特定の環境でより成功したと思われる攻撃に基づいた、いくつかの異なるランサムウェアソリューションを使用する、さらに広範なキャンペーンの一環であるとも考えられます。

電子メールアドレスの一部が重複していること、あるいは脅迫状の文言や暗号化ファイルに使用される命名規則からも、TycoonとDharma/CrySISランサムウェアにつながりがあることがわかります。

侵入の痕跡(IOC)

JIMAGEモジュール(lib\modules):
eddc43ee369594ac8b0a8a0eab6960dba8d58c0b499a51a717667f05572617fb

電子メールアドレス:

  • pay4dec[at]cock[.]lu
  • dataissafe[at]protonmail[.]com
  • dataissafe[at]mail[.]com
  • foxbit[at]tutanota[.]com
  • moncler[at]tutamail[.]com
  • moncler[at]cock[.]li
  • relaxmate[at]protonmail[.]com
  • crocodelux[at]mail[.]ru
  • savecopy[at]cock[.]li
  • bazooka[at]cock[.]li
  • funtik[at]tutamail[.]com
  • proff-mariarti[at]protonmail[.]com

暗号化ファイルの拡張子:

  • thanos
  • grinch
  • redrum

暗号化ファイルの署名:

  • happyny3.1
  • redrum3_0

RSA公開鍵(happyny3.1バージョン):

-----BEGIN PUBLIC KEY-----

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDa+whJSxr9ngcD1T5GmjDNSUEY
gz5esbymvy4lE9g2M3PvVc9iLw9Ybe+NMqJwHB8FYCTled48mXQmCvRH2Vw3lPkA
TrQ4zbVx0fgEsoxekqtb3GbK2NseXEeavCi5lo5/jXZi4Td7nlWTu27CluyxRSgv
L0O19CwzvckTM91BKwIDAQAB

-----END PUBLIC KEY-----

RSA秘密鍵(redrum3_0バージョン):

-----BEGIN RSA PRIVATE KEY-----

MIICXQIBAAKBgQCyNELzNaPcGBlt2YEARamc+a+uyM8/mRadrMLLQ9tuzkppvdWI
iM/LH+xATZUgByknwzaMtRQZi6R2pQ8nBG6DxNtdhla33L+njQLTW+7wo1tSaaJz
6Of0FvCUZNPZ0mF5OrJO+Z6ZfDxafcwv653Ii7aTwaKlhjFoZijBMrA43wIDAQAB
AoGAPJ+I0yJBX0OXiwY+W3BXdj5+5LANyS30QqmeDvZDtRtat0RMW0lnn0t53JpI
DABDoPJJIW8MqnAWAALA994LFhk9jUtJTUgwsViyKL/Q/dOCeBPJU3xyXNkqhmCN
ImP4v7DxjvWp1pomrIIRCW68GkbB+cSGyLAzUo+1KHVh6LECQQDdL26UsVNsNYTX
rfv6BZItGO1HJHYTiz0cI82n4woZY2fS2lpBDEvy3Rl8E4Y7F9tQby4odDLHi/9l
RCeoif45AkEAzkDsPGauMmWsPXAbXrjzq3/0+MWgh7Vd8Gpgn83QUYjTO2RxtE1n
zAYzTLrFFtM8zmCAubpKM1dyi4Xs7hlv1wJBAJD5ofV8NT3b5nKn61z5gdJlYEEd
OPeecDOdlBLS0a/KZCbkT/wK300UdrvI4FajUHDsLsj9QLtim8f4YDYsHKECQQCX
R40+XD3mnyZvRbv9hQDMyKSglyvAfimxvgSzEZ17QDVWubygd6nrPpz/6XnH3RYb
dTLVhysHb1uHtKpslWGvAkAf0kivk9miSFnVeoO1XZumRAwrhTh6Rxhkg6MJCLBP
ThoY7wYXmV9zNPo02xYTvZlyhwnWspz4Kx4LsUutWmBs

-----END RSA PRIVATE KEY-----

 

脅迫状:

こんにちは!

あなたのドキュメント、写真、データベース、その他の重要なファイルはすべて暗号化されました! どうしてもファイルを復元したいですか?

もしそうなら、データのロックを解除するための解読ソフトウェアと秘密鍵を購入する必要があります。
%sまで電子メールを送って、あなたの一意の%sを教えてもらえれば、
あなたのすべてのファイルを復号するための詳しい手順をお知らせします。
こちらから24時間以内に返信がない場合は、別の電子メールアドレス%s
にメールを送ってください。

========================================================================================================================
ファイルを復号するためのFAQ
========================================================================================================================

* 何が起きたのでしょうか???

あなたのファイルは破損していません! ファイルは変更され、強力な暗号アルゴリズムで暗号化されています。この変更は元に戻すことができます。ファイルを復号する唯一の方法は、解読ソフトウェアと秘密鍵を購入することです。サードパーティのソフトウェアを使用してファイルを復元しようとすると、復号に不可欠なデータが破損するため、ファイルに致命的な問題が発生します。

注!!! 必ず24時間以内に電子メールを送ってください。さもないと、ファイルがすべて失われるか、復号の費用が「増えて」しまいます。

====================================================================================
====================================

* ファイルを復元する方法???

復号の費用はビットコインで支払う必要があります。あなたがどれだけ早く電子メールを送ってくれるかによって、料金も変わってきます。支払後、すべてのファイルを復号するための解読ソフトウェアと秘密鍵をお送りします。

========================================================================================================================

* 復号は無料!!!

約束どおり、無料で復号します! 私たちのサービスを信頼できず、証拠を確かめたい場合は、復号のテストをご依頼ください。変更されたファイルを送ってください(最大5個)。ファイル共有サービスとWin-Rarを使用して、テスト用のファイルを送ってください。ファイルのサイズは(アーカイブされていない状態で)1MB未満でなければなりません。どんなファイルでもかまいません! データベース、バックアップ、大きなExcelファイルなどは送らないでください。ファイルを復号し、復号したファイルを証拠としてお送りします。

========================================================================================================================

* テストが必要な理由???

テストをするのは、ファイルを復号できるのは私たちだけであり、問題なく復号できることを確認してもらうためです。

========================================================================================================================

* ビットコインの購入方法???

ビットコインは次の2つの方法で簡単に購入できます。
https://exmo.me/en/support#/1_3
https://localbitcoins.net/guides/how-to-buy-bitcoins

この情報を注意深く読んでもらうだけで、大量のコインも購入できます。

========================================================================================================================

!!! 注意 !!!

!!! 60時間を過ぎると、暗号化にかかる費用は毎日10パーセントずつ上がります
!!! 暗号化ファイルの名前は変更しないでください。
!!! サードパーティのソフトウェアを使ってデータを復号しようとしないでください。データが永久に失われる可能性があります。
!!! サードパーティの助けを借りてファイルを復号すると、料金が(我々よりも)高くなる可能性があります。また、詐欺の被害者になる可能性もあります。

 


参考文献

[1] https://www.bleepingcomputer.com/forums/t/709143/help-me-to-identify-ransomware-with-redrum-extension/
[2] https://attack.mitre.org/techniques/T1183/
[3] https://ja.wikipedia.org/wiki/Galois/Counter_Mode
[4] https://www.bleepingcomputer.com/forums/t/709143/help-me-to-identify-ransomware-with-redrum-extension/page-2


 

著者について




 

Tags: