今天咱们来聊个让人啼笑皆非的安全圈大瓜。
作为IT人,咱们平时没少和勒索软件打交道。一般的勒索软件套路大家都很熟:加密文件 -> 留个勒索信 -> 你交钱(比如比特币/门罗币) -> 他给解密密钥。这是一个有着“商业信誉”的黑暗产业链。
但最近,一款名为 VECT 2.0 的勒索软件在暗网可是彻底“火”了——不是因为它技术多牛,而是因为它写出了一个史无前例的加密Bug,导致它从一个“勒索软件”硬生生变成了一个“数据擦除器”。
简单来说:只要你的文件超过131KB,一旦被VECT 2.0加密,连黑客自己都解不开!你交了赎金也是白搭!
今天我们来扒一扒这个“草台班子”的底层技术实现,看看他们是怎么在加密算法上翻车的。
🚨 挂羊头卖狗肉:是勒索还是直接“撕票”?
VECT(现在改头换面叫VECT 2.0)是一个“勒索软件即服务(RaaS)”团伙,去年12月才刚推出他们的代理计划。最近他们还在暗网论坛BreachForums上大肆招募代理,甚至和知名黑客组织TeamPCP搞起了供应链攻击合作。
门槛还不低,新代理得交价值250美元的门罗币(XMR)投名状。表面上看,这帮人搞了全平台覆盖(Windows, Linux, ESXi),甚至还吹嘘自己用了安全的 ChaCha20-Poly1305 AEAD 加密算法。
然而,Check Point Research 的安全专家最近在逆向分析他们的样本时,发现了一个极其离谱的底层逻辑漏洞。
🛠️ 硬核技术揭秘:丢三落四的 Nonce(随机数)
VECT 2.0 最大的笑话,在于他们对 ChaCha20-IETF 加密算法的错误实现。
懂密码学的兄弟都知道,ChaCha20这种流密码,要想成功加密并完美解密,你必须同时拥有两样东西:
- 32-byte 的密钥 (Key)
- 12-byte 的随机数 (Nonce)
缺一不可。如果你把 Nonce 搞丢了,那这堆密文就是永远无法还原的乱码。
VECT 2.0 的开发者显然是懂一点加密,但不多。他们在处理超过 131,072 bytes(即131KB) 的“大文件”时,采用的分块加密逻辑是这样的:
- 针对每一个数据块,实时生成一个全新的、随机的 12-byte Nonce。
- 使用这 4 个不同的 Nonce,分别加密这 4 个数据块。
- 重点来了!!! 加密完成后,这个睿智的程序,仅仅把第 4 个(也就是最后一个)Nonce 追加写入到了磁盘上的加密文件中!
那前 3 个 Nonce 呢?答案是:被当场销毁了!
这前 3 个极其关键的 Nonce,没有被存入磁盘,没有被写入注册表,也没有被发送到黑客的 C2 服务器,用完直接就给丢弃了。
“这意味着什么?”
意味着任何大于131KB的文件,它的前四分之三内容将面临物理意义上的永久性毁灭。因为连勒索软件的运营者自己,也拿不到解密前三个数据块所需的 Nonce!
在企业级生产环境中,数据库、虚拟机镜像、设计图纸,哪个不比131KB大?所以,VECT 2.0 在实战中根本不是勒索软件,而是一个彻头彻尾的数据粉碎机。
🦠 全平台漏洞百出,被怀疑是“AI生成的代码”?
除了核心的加密Bug,我在看这份分析报告时,还发现了他们其他几个让人哭笑不得的技术细节。
1. Windows 端:写了逃避检测代码,但忘记调用了
Windows版本的 VECT 2.0 其实做得挺“花哨”。它集成了一套非常庞大的反分析套件,专门针对 44 种常见的安全防护和调试工具。
它还有一个 --force-safemode 的启动参数。一旦触发,它会修改 Windows 注册表,强迫系统下一次重启时进入安全模式,然后在安全模式下(此时杀毒软件大多未启动)肆无忌惮地加密文件。
但是! 逆向分析发现,作者虽然辛辛苦苦写了一大堆用于检测虚拟环境、沙箱的逃逸函数,但在主程序中压根就没有调用这些函数! 这就导致安全团队在沙箱里跑这个样本时,这玩意儿不仅毫无防备,还把自己底裤都亮出来了。妥妥的“复制粘贴忘写 main 函数”。
2. ESXi/Linux 端:诡异的“地理围栏”
在 ESXi 和 Linux 变种中,恶意软件在加密前会先进行地理位置检查(Geofencing)。如果发现目标服务器位于独联体国家(CIS),程序就会直接退出,不执行加密。
这种“不打老乡”的策略在黑产圈很常见。但诡异的是,VECT 2.0 竟然把乌克兰(Ukraine)也放进了免攻击的白名单里。
要知道,自2022年初俄乌冲突爆发后,几乎所有的俄语系 RaaS 团伙都已经把乌克兰从白名单里移除了。VECT 2.0 的这个操作在今天看来极其反常。
对此,安全专家的推测很扎心:要么,这帮黑客是个纯正的“小白”,在网上随便抄了几年以前的陈年老代码;要么,这段代码是用 ChatGPT 等 AI 大模型自动生成的! 因为一些早期 LLM 的训练数据还停留在过去,认为乌克兰依然在传统的独联体免杀名单内。
💡 写在最后:给安全同行的建议
看完 VECT 2.0 的底层逻辑,不知道各位作何感想。这年头,做黑产的门槛确实变低了,靠着成熟的RaaS平台和论坛造势,几个连基础加密算法都没搞明白的“脚本小子”也能搞出个大新闻。
但这对我们企业安全防护提出了更严峻的挑战。在此我特别提醒各位 CISO 和运维兄弟:
- 绝对不要对 VECT 2.0 妥协交赎金! 别听他们吹什么能解密,从技术原理上讲,你的大文件在被加密的那一瞬间就已经被物理破坏了。付钱=打水漂。
- 回归安全本质:灾备! 面对这种具有“擦除”属性的威胁,唯一的解法就是离线备份和经过验证的灾备恢复演练。
- 提升响应速度。 VECT 2.0 倾向于通过窃取的凭证进行供应链攻击和 SSH 横向移动,一旦发现异常登录,必须采取“快速隔离”而不是寄希望于事后杀毒。
技术的世界里没有捷径,连黑客写代码不认真都要翻车,咱们搞防守的更得脚踏实地啊!
大家在工作中有没有遇到过这种“降智”的恶意软件?
欢迎在评论区和我吐槽交流!咱们下期技术分享再见。