Zscalerのブログ

Zscalerの最新ブログ情報を受信

セキュリティリサーチ

BlackBasta | ランサムウェアの分析

image

要点

  • BlackBastaは2022年2月に登場し、二重脅迫型ランサムウェアの手口を採用している
  • 脅威グループはファイルを暗号化して身代金の支払いを要求する前に、組織から機密情報を抜き取る
  • 以前のバージョンのBlackBastaはマルウェアのコード自体は斬新であったものの、すでに消滅しているContiランサムウェアと多くの類似点を共有していた
  • 2022年11月、BlackBastaランサムウェアはファイル暗号化アルゴリズム、スタックベースの文字列の難読化、攻撃対象ごとのファイル拡張子など、重要なアップデートを行った
  • ランサムウェア コードの変更は、ウイルス対策とEDR検出をより巧妙に回避するよう設計されている可能性が高い

Zscaler ThreatLabz は、BlackBastaランサムウェア ファミリを含む、著名なランサムウェア ファミリとその戦術、技術、手順 (TTP) を追跡してきました。2022 年 11 月 16 日、ThreatLabz は、アンチウイルスの検出率が大幅に低い BlackBastaランサムウェアの新しいサンプルを特定しました。最新の BlackBastaコードには、元の BlackBastaランサムウェアと比べて多くの違いがあります。以前のバージョンからの変更には、ファイル暗号化アルゴリズムの置き換えと、GNU Multiple Precision Arithmetic Library (GMP) から Crypto++ 暗号化ライブラリへの切り替えが含まれます。マルウェアの文字列の多くは難読化されており、ファイル名はランダム化されているため、静的ベースのウイルス対策検出と動作ベースの EDR 検出が妨げられる可能性があります。このブログでは、BlackBastaに対するこれらの最近の変更に焦点を当てています。現在の BlackBastaコードベースはオリジナルとはかなり異なるため、ThreatLabz はこの新しいバージョンを BlackBasta2.0 と呼んでいます。

 

技術分析

次のセクションでは文字列の難読化やファイルの暗号化など、BlackBastaランサムウェアの変更点を分析し、追加、削除、変更されたさまざまな機能を比較します。

 

文字列の難読化

Contiランサムウェアと同様に、BlackBastaランサムウェアの開発者はADVObfuscatorを使用したスタックベースの文字列難読化を実験していることがわかりました。図1は、スタック上で構築され、1バイトとのXOR演算を使用してデコードされる難読化文字列の例を示しています。

Image removed.

図1. BlackBasta2.0 スタックベースの文字列難読化の例

現在、ランサムウェア内のすべての文字列が難読化されているわけではありませんが、近い将来さらに多くの文字列が難読化される可能性があります。

 

ファイルの暗号化

おそらく、BlackBasta2.0 での最も重要な変更は、暗号化アルゴリズムに対するものです。以前のバージョンの BlackBastaランサムウェアは、被害者ごとの非対称 4,096 ビット RSA 公開鍵と、ファイルごとの ChaCha20 対称鍵を使用していました。RSA アルゴリズムは、 GNU Multiple Precision Arithmetic Library (GMP) を使用して実装されました。BlackBastaランサムウェアの最新バージョンでは、暗号化アルゴリズムが楕円曲線暗号 (ECC) と XChaCha20 に置き換えられています。BlackBasta2.0 でこれらのアルゴリズムを実装するために使用される暗号化ライブラリはCrypto++です。BlackBasta2.0 で使用される楕円曲線は NIST P-521 (別名 secp521r1) です。BlackBasta2.0 サンプルに埋め込まれたハードコードされた NIST P-521 公開鍵の例を以下に示します。

 

Public-Key: (521 bit)
pub:
    04:00:52:1f:d8:b3:65:b7:9c:30:bd:fa:1c:88:cc:
    77:77:81:f6:50:9d:d9:17:8d:17:d8:fa:3a:8c:b0:
    f2:6f:87:21:0c:95:db:94:f5:9c:bf:fd:ca:f0:8d:
    19:6a:9c:2f:9f:4b:96:20:31:95:41:54:3e:92:43:
    ed:7b:d1:81:8c:58:78:01:2e:31:b8:02:7a:c1:b9:
    7f:2f:b4:b2:ba:aa:df:ed:68:a2:df:eb:90:4a:4f:
    da:28:10:db:f5:ae:12:08:cf:dd:1f:10:80:48:00:
    32:38:1d:23:40:0c:ca:05:2c:5c:d2:79:1d:ae:8f:
    0a:74:a1:1c:79:b3:0c:38:21:aa:94:1a:4f

ASN1 OID: secp521r1
NIST CURVE: P-521
writing EC key
-----BEGIN PUBLIC KEY-----
MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQAUh/Ys2W3nDC9+hyIzHd3gfZQndkX
jRfY+jqMsPJvhyEMlduU9Zy//crwjRlqnC+fS5YgMZVBVD6SQ+170YGMWHgBLjG4
AnrBuX8vtLK6qt/taKLf65BKT9ooENv1rhIIz90fEIBIADI4HSNADMoFLFzSeR2u
jwp0oRx5sww4IaqUGk8=
-----END PUBLIC KEY-----

BlackBasta2.0 で使用される暗号化プロセスは、Crypto++ Elliptic Curve Integrated Encryption Scheme (ECIES) を Diffie-Hellman Augmented Encryption Scheme (DHAES) モード (Advanced Encryption Standard との混同を避けるために DHIES とも呼ばれます) で利用して、ファイルごとの XChaCha20 およびハッシュベースのメッセージ認証コード (HMAC)。BlackBastaは、以下の図 2 に示すように、暗号化が完了すると 314 バイトのフッターをファイルに追加します。

BlackBasta 2.0ファイル フッター

図 2. BlackBasta2.0で暗号化されたファイル フッターの例

最初の 133 バイト (青色) は、ファイルごとに生成される一時的な NIST P-521 公開鍵です。次の 56 バイトは、ファイルごとに暗号化された XChaCha20 の 32 バイトのキーと 24 バイトの nonce (緑色) であり、その後に 20 バイトの HMAC (赤色) が続きます。これに続いて、NULL バイトのパディングと、暗号化マテリアルのサイズを示す 2 バイトの値 (オレンジ色) が続きます。最後の 12 バイト (紫色) はマーカー (例: j4ftnwzxbrf ) であり、BlackBasta復号化ツールが暗号化されたファイルを識別するために使用できる被害者ごとに変化します。

暗号化プロセスは一時的なNIST P-521キー ペアを生成することから始まります。その後、対応するプライベート キーを使用して、Diffie-Hellmanアルゴリズムを用いてハードコードされた公開鍵との共有秘密キーを生成します。結果はキー導出関数KDF2に渡され、72個の疑似乱数バイトが生成されます。また、最初の16バイトはHMACキーとして、後続の56バイトはファイルのXChaCha20キーとナンス(上部に緑色で表示)を暗号化するためのXORキーとして使用されます。ファイルごとのXChaCha20キーとナンスは、Crypto++乱数生成ライブラリーを使用して生成され、HMACはSHA1ハッシュ アルゴリズムを使用して暗号文で計算されます。結果はフッターの20バイト(赤で表示)を使用したメッセージ検証に使用できます。

速度を最適化するために、BlackBastaはファイルのサイズに基づいて XChaCha20 で異なる方法でファイルを暗号化します。ファイルが 5,000 バイト未満の場合、ファイル全体が 64 バイトのブロックで暗号化されます。ファイル サイズが 64 バイトより大きく、64 バイトの偶数倍でない場合、最後の 64 バイト ブロックは暗号化されません。ファイル サイズが 1,073,741,824 (0x40000000) バイト (つまり 1GB) 以下の場合、BlackBastaは 64 バイト ブロックの暗号化とそれに続く 128 バイトの暗号化を交互に行い、次に示すように、ファイルの最後に到達するまでこれらのブロックをスキップ (つまり、暗号化しない) します。図 3。

Image removed.

図3. 暗号化されたブロックと暗号化されていないブロックを交互に繰り返すBlackBasta2.0ランサムウェアによって暗号化されたNullバイトを含むファイルの例

ファイルが 1GB を超える場合、BlackBastaはまず最初の 5,064 バイトを暗号化し、6,336 バイトをスキップし、64 バイトを暗号化し、6,336 バイトをスキップするというように、ファイルの終わりに達するまで続けます。XChaCha20 暗号化コードを図 4 に示します。

BlackBasta XChaCha20暗号化コード

図4. BlackBasta2.0 XChaCha20ファイル暗号化コード

暗号化が完了すると、BlackBasta2.0 はファイル名を.agnkdbd5yなどの被害者ごとにハードコードされた拡張子に変更します。.taovhsr3uまたは.tcw9lnz6q 。BlackBastaの以前のバージョンでは、暗号化されたファイル拡張子に.bastaのみを使用していました。

暗号化された身代金ファイルのアイコン画像も、図5に示すように白いボックスから赤いボックスに変更されています。

Image removed.

図5. BlackBasta暗号化ファイルのアイコン画像(新旧バージョン)

これは非常に小さい変更ですが、ウイルス対策製品がBlackBastaの検出に使用する可能性のある静的シグネチャーを迂回するには十分な場合があります。

 

身代金ノート

BlackBasta2.0は身代金メモのテキストを図6のとおりに変更しています。

Image removed.

図6. BlackBasta2.0 身代金メモの例 (2022 年 11 月)

身代金メモのファイル名もreadme.txtからinstructions_read_me.txtに変更されました。BlackBasta2.0 は、コマンドcmd.exe /c start /MAX notepad.exeを介して Windows のメモ帳で身代金メモを開きます。

 

BlackBasta機能の同等性

表1はBlackBastaのバージョン1.0と2.0の機能を比較しています。

 

機能

BlackBasta 1.0

BlackBasta 2.0

暗号化ライブラリー

GMP

Crypto++

非対称暗号化

4,096ビットRSA

NIST P-521

対称暗号化

ChaCha20

XChaCha20

暗号化されたファイルのアイコンの変更

する

する

暗号化されたファイル拡張子

.basta

.[a-z0-9]{9}

デスクトップの壁紙の変更

する

しない

Readmeファイル名

readme.txt

instructions_read_me.txt

文字列の難読化

しない

する

プロセスとサービスの終了

する

しない

シャドウ コピーの削除

する

〇/× (サンプルによって異なる)

暗号化されたファイルのアイコン名

fkdjsadasd.ico

fkdjsadasd.ico

Mutex名

dsajdhas.0

ofijweiuhuewhcsaxs.mutex

 

表1. BlackBasta1.0 と BlackBasta2.0 の機能の同等性

前述の違いに加えて、BlackBasta2.0 は被害者のデスクトップの壁紙を変更したり、ファイルの暗号化を妨害する可能性のあるプロセスやサービスを終了したりしなくなりました。ミューテックス名も更新されました。

表2のようにコマンドライン パラメーターの数も変更されています。


 

コマンドライン パラメーター

BlackBasta 1.0

BlackBasta 2.0

説明

-threads

しない

する

暗号化に使用するスレッドの数

-nomutex

しない

する

Mutexを作成しない

-forcepath

する

する

指定したパスのファイルを暗号化する

-bomb

〇 (新しいビルドの場合)

しない

ActiveDirectory経由で拡散してランサムウェアを起動する

 

表 2. BlackBastaコマンドライン パラメーターの比較

 

まとめ

Conti ランサムウェア グループのメンバーは、最も重大なランサムウェアの脅威の 1 つとなった BlackBastaを含む複数の脅威グループに分裂したようです。ThreatLabz は、2022 年 11 月中旬に新しいバージョンがリリースされて以来、BlackBasta2.0 によって侵害された被害者を 5 人以上観察しています。これは、脅威グループが組織の侵害に非常に成功していることを示しており、ランサムウェアの最新バージョンにより、ウイルス対策と EDR をよりうまく回避できる可能性があります。

 

Zscaler Cloud Sandboxによる検知

Image removed.

 

Zscalerの多層クラウド セキュリティ プラットフォームは、サンドボックスの検知に加え、以下の脅威名でBlackBastaに関連する指標をさまざまなレベルで検知します。

侵害の痕跡(IoC)

 

SHA256 Hash

説明

e28188e516db1bda9015c30de59a2e91996b67c2e2b44989a6b0f562577fd757

BlackBasta2.0サンプル(実行可能)

c4c8be0c939e4c24e11bad90549e3951b7969e78056d819425ca53e87af8d8ed

BlackBasta2.0サンプル(実行可能)

350ba7fca67721c74385faff083914ecdd66ef107a765dfb7ac08b38d5c9c0bd

BlackBasta2.0サンプル(実行可能)

51eb749d6cbd08baf9d43c2f83abd9d4d86eb5206f62ba43b768251a98ce9d3e

BlackBasta2.0サンプル(DLL)

07117c02a09410f47a326b52c7f17407e63ba5e6ff97277446efc75b862d2799

BlackBasta2.0サンプル(DLL)

 

これらのIOCはThreatLabzのGitHubリポジトリーでも提供しています。

 

form submtited
お読みいただきありがとうございました

このブログは役に立ちましたか?

免責事項:このブログは、Zscalerが情報提供のみを目的として作成したものであり、「現状のまま」提供されています。記載された内容の正確性、完全性、信頼性については一切保証されません。Zscalerは、ブログ内の情報の誤りや欠如、またはその情報に基づいて行われるいかなる行為に関して一切の責任を負いません。また、ブログ内でリンクされているサードパーティーのWebサイトおよびリソースは、利便性のみを目的として提供されており、その内容や運用についても一切の責任を負いません。すべての内容は予告なく変更される場合があります。このブログにアクセスすることで、これらの条件に同意し、情報の確認および使用は自己責任で行うことを理解したものとみなされます。

Zscalerの最新ブログ情報を受信

このフォームを送信することで、Zscalerのプライバシー ポリシーに同意したものとみなされます。