注:本文为后期搬运。发布日期以最早时间为准。
图1、病毒产业的黑色“生态链”
病毒的传播
病毒制造者通过病毒混淆器(Obfuscator)[1],在云端服务器批量生成病毒的不同变种,并通过以下手段进行传播:
1) 漏洞类传播
a. 通过操作系统、浏览器或其第三方应用程序的漏洞进行传播并激活;
2) 诱骗类传播
a. 伪装成流行应用或者与其他恶意软件捆绑打包,欺骗用户运行激活病毒;
b. 通过聊天软件发送,并有针对性地通过诱导性的文件名诱骗接收者运行激活病毒;
c. 通过电子邮件群发带有病毒附件的垃圾邮件,并配以诱导性的说明和附件名,诱骗接收者运行激活病毒;
图2、病毒的生成和传播
这种批量生成变形病毒变种的模式,与传统的感染型病毒具有非常大的相似性,对“云查杀“有天然的免疫[2],其批量变形并传播的周期远远短于安全软件的”收集、分析、识别“的响应周期。所以在国内”云查杀“覆盖率如此高的情况下,此类病毒仍然可以持续泛滥。所以,提高安全软件核心技术(如启发式扫描、行为沙盒等)仍然是解决此类问题的核心手段。
由于“勒索病毒”均采用高强度非对称加密算法对文件进行加密,且在被加密的文件中并不存储解密密钥,所以如果文件被“勒索病毒”加密,还原的可能性非常低。所以,对于“勒索病毒”应采取预防的策略,我们建议:
1) 安装合格的安全软件,开启自动更新,保证防护处于打开状态;
2) 及时给操作系统和流行软件打补丁;
3) 不要点开来源不明的邮件附件,条件允许的话可以交给安全厂商分析附件内容;
下面以近期我们根据用户反馈和现场收集到的“勒索病毒”HVM:Ransom/Tescrypt.a为例进行分析说明。我们从大量样本中随机选择了3个样本,我们可以看到这些样本的HASH、文件大小均不相同:
样本SHA1 | 样本大小 | |
---|---|---|
1 | 3daeb68323f124e536a8be6698b49700c5f07a72 | 443392 |
2 | 4a6b1b9eca53b23b4802d529c90ed9a88c9db7d7 | 252416 |
3 | 8f2608d8b1b9a2a66ccaee109f5064cd3897c285 | 370688 |
表1、案例涉及样本
通过IDA静态反编译病毒样本可以发现,这些样本均被MSVC编写的病毒混淆器包裹,且解码代码经过了深度变形处理,这些样本的用户代码完全不同(图3、4、5),图中Graph Overview窗口展示了样本WinMain函数调用关系,配图中的代码片段则展示了不同样本进入解码函数的方式。
图3、样本3daeb68的代码调用关系图和解码函数片段
图4、样本4a6b1b9的代码调用关系图和解码函数片段
图5、样本8f2608d的代码调用关系图和解码函数片段
前面的病毒代码截图展示出来的线索,完全无法看出三个样本代码的同一性。通过OllyDbg、x64dbg、Windbg等常规调试手段,也很容易陷入到病毒混淆器生成的深层次垃圾代码中,需要较高的逆向分析能力和极大的耐心才可能定位到病毒核心代码。
图6所示代码是在火绒虚拟沙盒内对不同样本的自动跟踪结果,可以看到不同样本在完成解码后存在完全相同的代码,在jmp edx之后,这些样本均会跳转到已经在内存完成解码的原始病毒OEP(图7所示)。
图6、解码后的相同代码
图7、解码后的原始病毒入口
无论混淆器如何变形伪装病毒,为了执行病毒代码,最终都要在内存中解码还原其代码、数据或行为。火绒扫描引擎的行为沙盒会监控在其中虚拟执行的代码的每一步行为。当病毒混淆器完成解码,并执行真正病毒体代码时,火绒行为沙盒可以识别到不同样本的相同行为模式,进而报毒。即使混淆器不断变形产生变种,火绒都可以在第一时间做出同一性检出(图8所示)。
图8、火绒对该病毒不同变种的同一性检出
图9展示了火绒反病毒引擎通过火绒行为沙盒,在查杀阶段对样本进行虚拟执行并动态还原病毒样本的真实行为,进而实现对这个家族不同样本的查杀。
图9、火绒行为沙盒的检测原理
[1]病毒混淆器:被病毒作者用来变形病毒样本的非公开”壳“(Packer)。这类”壳”通常具有很强的反调试、反逆向技术,且通常由常用高级语言编写,以躲避安全软件的”壳”识别。
[2]参考火绒《2015中国大陆地区PC互联网安全报告》(http://bbs.huorong.cn/thread-12129-1-1.html)