2022 年 11 月 16 日,研究人员发现 BlackBasta 勒索软件开始使用全新的样本文件。新版本的 BlackBasta 相比旧版本更新了许多代码(包括文件加密算法与库文件),拥有更低的引擎检出率。恶意样本的大部分字符串都已经经过混淆,文件名也已经随机化,这阻碍反病毒引擎与 EDR 等安全产品的检测。
技术分析
字符串混淆
与 Conti 勒索软件类似,BlackBasta 勒索软件开发人员似乎也使用了 ADVObfuscator 进行字符串混淆。如下图所示,基于栈进行构建,并且使用异或操作对单个字节进行解密:
字符串混淆
目前,并非是所有字符串都经过混淆处理。但可以预期的是,日后会有更多的字符串被混淆。
文件加密
BlackBasta 2.0 版本中给最重要的部分就是对加密算法的修改。最初,BlackBasta 勒索软件使用非对称 4096 位 RSA 公钥与对称 ChaCha20 算法进行加密。而且,RSA 算法是通过 GNU 多精度算术库(GMP)实现的。而在最新的 BlackBasta 2.0 中,加密算法已经被椭圆曲线(ECC)和 XChaCha20 算法所取代。并且,算法实现转而使用 Crypto++。新版本使用的椭圆曲线算法为 secp521r1,内嵌的公钥为:
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-----
BlackBasta 2.0 在加密过程中使用被成为 DHIES 的加密模式,利用 Crypto++ 中的椭圆曲线集成加密方式(ECIES)生成每个文件的 XChaCha20 与基于哈希的消息认证码(MHAC)。在完成加密后,BlackBasta 会向文件结尾追加一个 314 字节的数据,如下所示。
BlackBasta 2.0 加密文件
蓝色部分的 133 个字节是为每个文件临时生成的 secp521r1 公钥,接下来的 56 个字节是用于 XChaCha20 加密的密钥(32 字节)与随机数(24 字)。随后的红色部分是 HMAC(20 字节),灰色部分为空字节填充,橙色部分为加密文件的大小(2 字节)。最后的紫色部分为 flag(12 字节),攻击者依赖此处识别受害者。
为了提高加密速度,BlackBasta 根据文件大小使用 XChaCha20 对文件进行不同策略的加密。如果件小于 5000 字节,则整个文件将以 64 字节为单位进行加密。如果文件大于 64 字节且不是 64 字节的偶数倍,则不会加密最后的 64 字节块。如果文件小于 1GB,BlackBasta 会交替加密 64 字节块并跳过 128 字节,直到文件末尾。如下图所示:
交替加密数据
如果文件大于 1GB,BlackBasta 会首先加密文件前 5064 个字节。在跳过 6336 个字节后,加密 64 个字节再跳过 6336 个字节,一直持续到文件末尾。XChaCha20 加密代码如下所示:
XChaCha20 文件加密代码
加密完成后,BlackBasta 使用硬编码的扩展名重命名文件。这些扩展名都是针对每个受害者定制的,例如 .agnkdbd5y、.taovhsr3u 或 .tcw9lnz6q。以前版本的 BlackBasta 使用的扩展名是固定的,为 .basta。
勒索文件的图标也进行了修改,从白色变成了红色:
图标对比
勒索信息
BlackBasta 2.0 将勒索信息也作了修改,如下所示:
勒索信息(2022 年 11 月)
特征变化
新旧版本的特征对比如下所示:
特征 | BlackBasta 1.0 | BlackBasta 2.0 |
---|---|---|
加密库 | GMP | Crypto++ |
非对称加密 | RSA | NIST P-521 |
对称加密 | ChaCha20 | XChaCha20 |
更改加密文件图标 | 是 | 是 |
加密文件扩展名 | .basta | .[a-z0-9]{9} |
更换桌面壁纸 | 是 | 否 |
勒索信息文件名 | readme.txt | instructions_read_me.txt |
字符串混淆 | 否 | 是 |
终止进程与服务 | 是 | 否 |
删除卷影副本 | 是 | 根据样本 |
加密文件图标名称 | fkdjsadasd.ico | fkdjsadasd.ico |
互斥量 | dsajdhas.0 | ofijweiuhuewhcsaxs.mutex |
其命令行参数也进行了修改,如下所示:
参数 | BlackBasta 1.0 | BlackBasta 2.0 | 描述 |
---|---|---|---|
-threads | 否 | 是 | 加密进程数 |
-nomutex | 否 | 是 | 不创建互斥量 |
-forcepath | 是 | 是 | 加密指定路径下的文件 |
-bomb | 是 | 否 | 通过活动目录传播 |
结论
Conti 勒索软件似乎已经分裂成包括 BlackBasta 在内的多个攻击组织,进一步扩大了勒索软件的威胁。自从 2022 年 11 月中旬,BlackBasta 2.0 面世以来,研究人员发现了多个受害者。这表明该攻击组织是十分成功的,并且也在持续更新和升级。
IOC
e28188e516db1bda9015c30de59a2e91996b67c2e2b44989a6b0f562577fd757
c4c8be0c939e4c24e11bad90549e3951b7969e78056d819425ca53e87af8d8ed
350ba7fca67721c74385faff083914ecdd66ef107a765dfb7ac08b38d5c9c0bd
51eb749d6cbd08baf9d43c2f83abd9d4d86eb5206f62ba43b768251a98ce9d3e
07117c02a09410f47a326b52c7f17407e63ba5e6ff97277446efc75b862d2799