首页 > 安全资讯 > 正文

SnowSoul勒索软件运行及解密技术分析

近期,我们捕获并分析了新近活跃的勒索家族 SnowSoul。该家族采用对称加密与非对称加密相结合的混合方案来加密受害者文件,具有传播快、干扰面广、对生产业务影响显著等特点。为评估其真实危害与可行的处置路径,我们对其样本进行了完整的行为分析、加密流程逆向与密钥管理机制分析。通过深入分析,我们不仅还原了其攻击链与加密实现细节,还识别出其密码学设计中的关键缺陷,我们利用这一缺陷开发了一个有效的解密器,经验证可成功解密被其加密的文件,并已在多个样本与受影响环境中验证,可稳定恢复被其加密的文件。

技术分析

运行流程概述

SnowSoul勒索软件加密前置处理流程图如下:

 

1. SnowSoul勒索加密前处理流程示意图 

SnowSoul勒索软件加密流程简图如下所示:

 

2. SnowSoul勒索软件加密流程示意图

前置操作

SnowSoul加密过程中,首先会排除一些目录或文件,这些目录或文件看起来大部分为系统相关目录或文件,但部分名称有所不同,推测可能是拼写错误。

 

3. 排除的目录和文件名称列表

软件运行后,首先会通过修改注册表,禁用系统的任务管理器。接下来,SnowSoul会执行bcdedit命令,禁用系统的恢复模式。完成后,SnowSoul还会像大多数勒索软件一样,删除用于备份系统数据的卷影副本。SnowSoul还会强制删除当前设备备份目录中存储的数据库,这一操作等同于对系统备份目录进行了重置操作。

 

4. SnowSoul勒索软件系统前置操作代码

驻留系统

接下来,SnowSoul会尝试实现持久化驻留系统,其函数的作用是把当前可执行文件自身复制到用户的Roaming目录下(通常对应系统环境变量的%AppData%),并以指定的文件名运行。如果目录中已经存在同名文件,则会将其覆盖后再启动,然后退出当前进程。

 

5. 复制到指定%AppData%中并启动 

SnowSoul还会尝试停止一些系统服务和进程,防止影响加密操作的占用。此外,被该勒索软件加密的文件扩展名共有532种,覆盖几乎所有常见的文档及数据文件扩展名。在加密文件操作完成后,被加密的新文件会被附加一个随机的加密扩展名。该扩展名是将随机的5个字符(随机范围为10个数字和26个小写字母):

 

6. 随机的加密文件扩展名

SnowSoul的文件加密操作采用了AES-CBC加密算法:

 

7. 文件加密算法及参数

对于上述用来加密文件的加密AES密钥文件,则采用RSA-2048公钥进行加密:

 

8. 密钥文件加密算法 

这一加密操作使用的RSA公钥,通过硬编码方式直接内置在程序代码中:

 

9. 硬编码的RSA公钥数据 

加密后覆盖原文件为“?”并将原文件删除,这一操作是用来防止对原数据进行恢复的典型数据破坏行为。

 

10. 破坏原文件数据防止恢复

通过分析发现,被加密后的文件固定结构中的前8个字节,用于加密的AES算法中的IV值。与之对应的,被加密的文件尾部344字节,为RSA加密过的AES密钥再次进行Base64编码后的数据。

完成所有加密操作后,SnowSoul会在受害系统中释放勒索信。

 

11. 被释放到受害者系统中的勒索信

数据解密

虽然 SnowSoul勒索的加密操作采用了AES + RSA-2048这种非常成熟的加密算法组合,但经过深入分析,我们发现其加密实现设计上存在缺陷。我们利用这些缺陷,开发了一款有效的解密工具。经测试,该解密工具可成功解密被其加密的文件,并在多个已受该家族样本感染的真实环境中进行了实际验证,可稳定恢复所有被加密的文件数据。

 

12. “SnowSoul勒索解密工具”可有效解密文件并恢复数据

写在最后

当前,绝大多数勒索软件采用以RSA为核心的混合加密机制。而在未获得攻击者解密私钥的情况下,几乎无法对被加密的文件进行解密恢复。本次我们针对SnowSoul的成功解密,源于其加密算法的实现存在缺陷,具有一定的偶发性与针对性,并不代表对此类勒索软件的解密具有通用性。所以,请所有用户——尤其是重要数据的维护人员,务必持续做好离线/不可变备份与基础防护,切勿因个案的解密成功,而放松对数据备份与勒索攻击预防的重视与投入。

360安全卫士

热点排行

用户
反馈
返回
顶部