独家连载 | 零日漏洞:震网病毒全揭秘(53)
作者: 日期:2015年11月23日 阅:3,554

640.webp

500k的震网已是独步天下,再大还能大到哪儿去呢?火焰笑了。我有40个震网那么大!!65万行代码!!

第十五章 火焰

2012年春天,卡巴斯基团队终于完成了对毒区及其服务器的分析工作。同时,他们相信,其中仍有一些未知数,有待进一步探索。即便是他们自己,都没有想象到会得出这样的结论:如此大胆而具破坏力的震网,居然只是一系列大型网络攻击行动中的一个分支而已。

4月,新的攻击出现了。伊朗石油部和伊朗国家石油公司中发现一种新病毒,其功能是清除每一台染毒计算机上的所有硬盘数据。它的破坏行为既系统又彻底,可以一次性删除几个G的数据。病毒攻击的具体步骤是,先删除文档和数据,再删除系统文件,最后摧毁硬盘的核心部分,造成不可逆转的损毁。

到底有多少台计算机遭到了感染尚不得而知,但有传言称,去年12月就有计算机被这种病毒攻击了。起初没人注意,直到病毒扩散到不容忽视的地步才引起重视。而且,没人知道,在病毒发起攻击前已经潜伏了多久。人们只看到,病毒每次发起攻击的日期都在当月20日前后。伊朗官方将其称为“清除者”,并认为美国和以色列是攻击发起者。但与此同时,他们却说攻击没有造成持续的破坏,因为所有被删除的数据都成功恢复了。

之后,拉伊乌和卡巴斯基团队从伊朗拿到一个染毒硬盘镜像,发现情况简直槽糕透顶。不仅全部文档和关键的系统文件全无踪迹,而且恶意代码本身也从硬盘上清除了。不过,他们还是发现了一个重要线索:注册表的键值中有一个名为“~DF78.tmp”的临时文件,是在破坏开始前的某一时点创建的。虽然文件本身已经被删掉了,但名字还在,足以证明它确实存在过。对研究人员来说,文件名开头的“~D”字符再熟悉不过了——这是毒区和震网命名染毒计算机上临时文件的典型特征。

那么,在“清除者”发起攻击之前,这些计算机会不会已经感染了毒区或来自相同攻击者的其他病毒?“清除者”和毒区会不会是由同一个团队制作的?

拉伊乌和它的团队在公司的杀毒软件中添加了一些功能,让它能够搜索名为~DF78.tmp的文件,并标注所有以“~D”打头的临时文件。结果,他们在多个国家发现了大量感染此类文件的计算机,其中来自伊朗的计算机占大多数。后来,他们得到了一个名为“~DEB93D.tmp”的临时文件,发现它实际上是一个“嗅探器”的日志文件。它的功能是,在染毒计算机所在网络中传播,并记录每台计算机的密码。沿着这条线索继续挖掘,他们又找到了用于创建嗅探器日志的模块文件。事实证明,这是一个非常有价值的发现。

这个模块文件既不像震网和毒区,也不像是“清除者”。因为,它的代码没有清除染毒计算机硬盘数据的功能。他们又搜索了公司的档案库,看看公司自动报告系统中有没有出现过和它类似的病毒,结果出乎他们意料,符合条件的模块文件一个接一个的往外蹦。他们总共发现了20个与之相似的模块文件,各自名字互不相干,如“狂喜”“大嚼”“待定状态”“迷雾”“快餐”等。看起来,这些文件都像是与某场攻击有关的插件或组件。

最让他们感到好奇的,是2010年10月进入档案库的一个模块文件,系统给它贴的标签是“震网文件”。之前,当他们检查该文件时,根本没看出它跟震网有什么相似之处,就置之不理了。但现在当他们再次检查时,发现两者确实存在共同点——它们都包含同一个零日漏洞利用程序。这个漏洞,就是卡巴斯基和赛门铁克两年前分析震网时漏掉的那一个。

这个零日漏洞藏身于名为“207号样本”(Resource 207)的部分当中。由于这个部分只在震网2009年6月版本中出现,而没有出现在震网2010年各个版本中,因此,卡巴斯基和赛门铁克之前都没有发现这个零日漏洞。从数量上来看,卡巴斯基和赛门铁克拿到并分析的病毒样本,大部分属于震网2010年的各个版本,属于2009年版本的非常少。

“207号样本”中,包括震网2009年版本中利用U盘Autorun功能进行传播的代码段,也包括当年漏掉、如今新发现的这个漏洞利用程序。这个漏洞利用程序通过利用Windows系统壁纸功能中的一个缓冲区溢出漏洞,让攻击者获得了染毒计算机的系统级权限。在攻击者2009年2月制作这个漏洞利用程序时,该漏洞确实是一个“零日漏洞”,但当他们在4个月后将震网2009年6月版本上线时,Windows已经发布了这个漏洞的补丁。因此,当攻击者在2010年3月上线震网新版本时,主动去掉了这个漏洞利用程序和利用Autorun功能传播的代码,换上了.LNK漏洞利用程序和另外两个用于提升权限的零日漏洞利用程序。

“壁纸漏洞利用程序”的发现,意味着震网总共用过的零日漏洞不是4个,而是5个。更重要的是,震网和新出现攻击之间的联系进一步证明,震网只不过是攻击团队制作的一系列网络武器的一部分。

卡巴斯基的阿历克斯·格斯特夫(Alex Gostev)把他的团队分成了几个小组,对新发现的20个模块文件并行展开逆向工程,以寻找更多线索。得知公司成功发现“震网系列新成员”之后,大家非常兴奋。再加上提神醒脑的咖啡因,人人干劲十足、通宵达旦。

到第3周周末时,他们发现了一个规模超过以往所有病毒的网络间谍工具集。根据其中一个主模块的名字,他们将其命名为“火焰”。

之前,震网以压缩后500k的体积,成为世界上规模最大的病毒。而今,火焰所有组件加起来至少有20M,其中包括超过65万行代码,并具有与其规模相称的复杂度。他们估计,要制作一套火焰这样的工具,至少需要6名程序员花费3年的时间。要想把它彻底破解出来,即便搭上卡巴斯基公司的所有员工,最少也得4、5年。所以,他们理智的将目标调低,决定破解出足够理解其大致功能的部分代码即可。

多年来,卡巴斯基团队见过各种各样的网络间谍工具,但火焰的出现,让这些工具全都相形见绌。如果詹姆斯·邦德的Q部门(Q Branch,意为军需处)拥有一个网络武器库的话,火焰一定会是其中之一。在火焰中,充满了无数种收集情报的方法、组件和技巧,简直称得上是一部间谍工具百科全书。其中,有的模块负责从染毒计算机中直接盗取文档,有的模块负责获取击键记录、每隔15至60秒抓取屏幕截图,有的模块通过暗中打开染毒计算机上自带的麦克风来偷听环境声音,还有的模块利用染毒计算机的蓝牙功能,自动搜寻可与之连接的智能手机和有效通信范围内的其他蓝牙设备,再盗取手机或设备上的数据。

看来,火焰应该是一种多用途的侦察工具,能满足各种任务的不同需求。不过,火焰并不会在每个目标上使用它的全部代码,而仅仅是按需部署。在大部分行动中,首先载入目标计算机的是一个大小为6M的“抢滩部队”,其中包含一个后门。攻击者可以利用这个后门,随时通过指挥控制服务器在目标上安装新的间谍工具模块。(待续)

译者:李云凡

 

关键词:

申明:本文系厂商投稿收录,所涉观点不代表安全牛立场!


相关文章