2017年上半年中国网络安全报告(8)
时间:2018-05-06 21:57 来源:网络整理 作者:墨客科技 点击:次
瑞星安全专家经过分析发现,大量Nemucod变种经过动态还原后,其实所对应的源码模板变化不太大。通过动态跑JS脚本,获取脚本运行的中间结果进行检测,效果显著。但是,动态跑JS代码需要依据代码逻辑动态执行,若虚拟机对于某些函数功能模拟不正确就导致最终跑出来的中间结果是不完整的,从而影响特征扫描。对抗脚本虚拟机,目前发现的有以下几种方式: (1)检测运行环境 调用接口获取Windows目录下第一个子目录,检测该子目录文件名长度,若文件名长度大于1则执行代码。 调用接口获取C盘文件系统类型,若文件系统类型为NTFS且特定变量符号指定类型才执行代码。 调用接口获取C盘磁盘容量,若磁盘容量字节数大于特定值才执行代码。 调用接口,获取C盘host文件属性和类型,满足指定值才执行代码。 调用接口获取C盘的序列号,非0的情况下才执行代码。 调用接口获取当前操作系统的语言类型,只有包含1033(英语)的才执行代码。 对于特定语句/*cc_on */这个语句在IE和Wscript环境中,被当作代码语句执行,而在一般的Jscript引擎中,/**/会被当作注释,所包含的语句是不会被执行的。从语句逻辑可知,一般的模拟器是不会执行变量Time申明和复制操作那一句的,那么后边的和Time变量相关的方法调用也会出错。 调用接口设置当前时间值(秒),立马获取当前时间值(秒),若设置的值与获取的值相同则执行代码。 (2)下载域名随机化 每个变种所带的下载域名都不同,而且没有变化规律,在域名串上拦截很难。 (3)多层脚本嵌套执行 使用多层脚本调用执行功能,即使JS层被跑开了,但是内层的脚本依然存在混淆,那么单单跑开外层脚本,得到的脚本串依然存在混淆,那就加大了检测的难度。 第一层混淆是JS的,若顺利跑开后,可以得到内层的PowerShell脚本,通过CMD命令行方式启动的,可以看到内层的PowerShell脚本也是这种字符串随机拆分然后拼接执行的。 通过上述内容我们可以看到,Nemucod家族样本在静态混淆变化上,依据所用语言的语法特性,把样本核心功能串碎片化并且增加各种垃圾代码,使得样本代码膨胀,代码逻辑结构复杂化。在动态对抗手法上,通过构造奇特的代码运行条件,使用多层代码调用策略并且层层代码做混淆,增加动态还原JS代码的难度。 杀毒软件在检测该家族样本时,不管是从静态特征上还是从动态行为上,都会增加不小的难度。与病毒之间的对抗本来就是你来我往,持续跟踪家族样本并且及时依据样本特征更新杀软的检测方式方法,才能很好实现对该家族的查杀。 专题3:The Shadow Brokers方程式工具包分析2017年4月,The Shadow Brokers公布了第三批NSA(美国国家安全局)使用的网络入侵工具。泄露的资料中包括一整套完整的入侵和控制工具。泄露资料中包括FuzzBunch 攻击平台,DanderSpiritz 远控平台,和一个复杂的后门oddjob还包括NSA 对SWIFT进行攻击的一些资料信息。经分析这一次泄露出来的工具涉及的面更广,危害也更大。 FuzzBunch 攻击平台FuzzBunch攻击平台主要是通过远程溢出攻击网络上存在漏洞的机器,攻击成功后植入指定后门。该平台类似于大名鼎鼎的Metasploit工具,但更先进的是它使用的exp几乎全是操作系统级的远程溢出0day,攻击目标几乎囊括了全系列的Windows系统。虽然微软在MS17-010中放出了补丁,但对于那些没有及时打补丁和内网中的用户来说,这几乎就是一个灾难。 此次放出来的exp大部分是针对SMB协议的,SMBv1、SMBv2和SMBv3的都有,不难看出NSA非常钟情于SMB协议的漏洞。受影响的操作系统从Windows NT,XP到2012全线覆盖。在部分python源码里面显示工具开发早于2012年,几乎所有的exp都是系统级的远程溢出,不需要什么钓鱼啊,访问网页啊,打开文档等用户交互操作,只要能访问到你机器就可以攻击,而且是指哪打哪,细思恐极!可想而知,这些年来NSA通过这些漏洞在互联网上来去,几乎就是如入无人之境。此处放出来的文件分析发现还并不是所有的文件,不排除NSA正在使用更多更先进的工具。 平台框架由python开发,功能采用模块化实现,易于扩展。主要模块如下表所示: |