独家连载 | 零日漏洞:震网病毒全揭秘(48)
作者:星期二, 十一月 17, 20151

640.webp

震网已成往事。短短几个月后,匈牙利的一家公司又发现了一种与震网极为相似的病毒。谁干的?原班人马,还是跟风模仿的其他黑客?这一次,它的目标不是PLC,那到底是什么呢?……

第十四章 震网的子孙

2011年春天,震网的余波似已渐渐消散。赛门铁克确定,震网攻击的目标设备是某型号的变频器;奥尔布赖特确定,使用这些变频器的就是纳坦兹的离心机。虽然美国政府没有对此事正式表态,但《纽约时报》以长篇报道的形式印证了人们对“美以操盘震网”的怀疑。

对赛门铁克而言,它该尽的责任都尽到了。研究人员放下公司的业务,花了半年时间破解代码,还整理发布了一份涵盖他们所有发现的70页的档案。他们对此感到非常欣慰。然而,没过多久,欧洲又传出了新的消息——有证据表明,震网不过是攻击者用来攻击伊朗和其他目标的一系列武器之一。

布达佩斯技术和经济大学加密和系统安全实验室(CrySyS)的波尔蒂撒·本恰特(Boldizsár Bencsáth)一边咬着三明治,一边盯着计算机屏幕。他正在安装一款大型软件,为即将到来的2011年秋季学期做准备。这天是9月1日,夏末暖阳尚在,寒冷秋风未访,清朗的天空和适宜的温度令人心旷神怡。虽然手上有不少事情,本恰特的心情却是轻松加愉快。

640.webp (2)

波尔蒂撒·本恰特

这天下午,本恰特正在实验室吃午饭,一个电话打了过来。来电话的是实验室咨询业务客户、某公司CEO乔斯卡·巴图斯(Jóska Bartos)。

“波迪(本恰特的昵称),你有没有时间帮我们个忙?”巴图斯问。

“什么情况?和咱们上次谈的业务有关系吗?”波迪想起了他们之前讨论过的一种新产品。

“不是那个事,”巴图斯说,“这样说吧,你现在能不能过来一趟?事关重大,千万别告诉别人啊。”

本恰特三口两口把饭吃完,跟同事打招呼说,“嘿,我有点急事,必须出去一趟。”听到同事问“你去哪儿啊”,他回了一句“别问了,我去去就回。”一边说,一边跑出了实验室。

到了公司一看,这里已经临时成立了一个应急小组,就等他来讨论问题了。巴图斯开门见山的说:“我们公司好像遭到黑客入侵了”。

他们在一个开发人员的计算机上发现了一个可疑文件,文件创建时间显示,它是在夜间没人工作的时候生成的。文件经过了加密和压缩,他们打不开。他们推测,这应该是攻击者从机器上拷贝下来,打算之后再取走的数据。经过对公司办公网络的进一步排查发现,还有几台机器也出现了类似的情况。应急小组确定他们遭到了黑客入侵,所以他们想让本恰特帮忙查查,黑客是怎么进来的、到底想干什么。虽然他们公司有一套比较全面的保护措施,包括防火墙、杀毒软件、入侵检测和防御系统,但还是没能挡住黑客的入侵。

本恰特只是一名计算机教师,之前没有做过恶意代码取证这类的工作。他是CrySys实验室的4名研究生导师之一,主要任务是为欧盟开展学术研究,偶尔也为其他客户做一些“咨询”业务,其实就是一些病毒查杀与清理、恢复系统正常运行的一般性技术工作。他从来没做过染毒目标分析,更别提对付仍在进行中的攻击了。因此,对于这个挑战,他感到有些紧张。而且,他还不能求助于同事。因为,该公司的运作非常依赖于客户的信任,一旦被客户发现其系统遭到黑客攻击,就会立刻面临客户流失的窘境。

应急小组先前提取了染毒硬盘的镜像,因此他们和本恰特先用一下午的时间对镜像进行了分析。到了晚上,他们发现了一个用于记录密码和键盘按键的恶意程序。它可以盗取文件、对屏幕截图,还可以对连接到计算机上的设备和系统进行编目,以勾勒出公司内网的拓扑结构。攻击者并不急于将盗取的数据直接传输出去,而是耐心的把数据以临时文件的形式储存在染毒计算机上。应急小组最初发现的,就是这样一个临时文件。每当恶意程序完成一轮数据收集后,文件的体积就会随之变大,直到达到某个临界点,攻击者才会将其传输至一台位于印度的指挥控制服务器上。

天色已晚。公司删除了镜像中敏感的客户数据,然后让本恰特把镜像文件和公司系统日志带了回去。接下来的几天里,本恰特单枪匹马,又发现了多个恶意文件。与此同时,公司的应急小组也没闲着,发现了3个可疑文件,其中包括一个内核模式驱动文件,和只感染了部分计算机的另一个驱动文件。

本恰特检查这个内核模式驱动文件时,不禁心跳加速——这个文件居然有一个合法的数字证书,证书显示由一家台湾公司签发。“台湾公司……等等,” 本恰特心想,震网中的驱动文件,盗用的也是台湾公司的数字证书。只不过,震网用的是瑞昱半导体公司的数字证书,而这个驱动用的是骅讯电子公司的数字证书。此外,此数字证书的签发时间为2008年8月,与震网首次入侵伊朗计算机的时间重合。

难道,这两者之间存在联系?他想了想,然后摇了摇头。任何人都可以盗取骅讯公司的签名密钥和数字证书,所以,这事未必是震网攻击者干的。

之后,应急小组中有个人注意到了另一个与震网驱动文件的相似之处,即注入染毒计算机进程的方式。他对本恰特说,“这种方式我只在其他地方见过一次。”毋庸赘言,本恰特已经知道,他说的就是震网。但本恰特认为,这种技术并非震网独有,这或许只是个巧合。

后面几天里,本恰特和应急小组又发现了两个与震网类似的技术特征。但每一次,他们仍然以巧合待之。他们心想,一道闪电不可能同时击中两样东西。而且,没有迹象表明,本次攻击的目标是PLC。

病毒发现一周后,本恰特想到,会不会还有其他人也感染了同种病毒,因此他决定偷偷的做个试验,看能不能把其他受害者或攻击方给引出来。9月8日,他在个人网站boldi.phishing.hu上贴出了恶意代码的哈希值,并用一种神秘的口吻写道,“猜一猜,9749d38ae9b9ddd8ab50aad679ee87ec是什么意思?你懂的。”这个网站的域名phishing是计算机安全术语“钓鱼电邮”的双关语,但实际上却是一个汇集了各种鱼类食谱和罐装鱼烹饪评论的奇怪网站。把机密信息发在这样一个网站上,可谓绝妙。因为,正常用户根本看不懂是什么意思,只有当某人在Google上搜索这个哈希值时,才会在搜索结果中找到这个页面并访问它。而进行搜索的人,要么是相同病毒的受害者,希望在互联网上看到相关信息;要么是攻击的发起者,他们会想知道,有没有受害者发现了这个文件,有没有人在网络上讨论它。如果真的有人访问这个页面,网站的主人本恰特就能追踪到访客的IP地址。

可惜,几天过去,访问量仍然是零,于是他删掉了这个页面。

这时,秋季学期已经开始了,本恰特也陷入了各种繁杂的事务之中。他又要上课,又要带研究生,还得给杜布罗夫尼克(Dubrovnik,克罗地亚度假名城)的某个研讨会提交一篇论文。但不论他做什么,头脑中关于病毒入侵的影子总是挥之不去。他参加完研讨会返回布达佩斯后,立即和应急小组决定,把本次入侵中发现的驱动文件,跟震网中那个类似的驱动文件进行对比,看看两场攻击之间到底有没有内在联系。当他们把代码导入16进制编辑器,一行接一行检查后,一个个都惊掉了下巴。两个文件几乎完全一样,唯一的区别就是使用了不同的数字证书。

本恰特将情况向公司CEO巴图斯做了通报,并告诉他,需要CrySy实验室其他同事的协助。这已经不再是一个单纯的黑客攻击事件了,可能会牵涉到国家安全等问题。巴图斯同意了他的要求,但是他请求本恰特,不要对他人泄露公司的名称。除本恰特之外的唯一知情方,是当地政府辖内的计算机应急响应中心,而这也仅仅是因为,他们与该公司之间存在业务往来。

本恰特打算,过完这个周末就把这事告诉同事。在周末里,他找来了包括赛门铁克震网档案在内、他能找到的有关震网的所有技术文献,再次通读了一遍。当他读到震网用来隐藏代码的加密手段时,专门把它跟新发现的攻击进行了对比,结果,他发现两者极为相似。就连新发现攻击代码中使用的加密密钥,都和震网用的一模一样。

然后,他又仔细观察了新攻击代码中使用的6个内核级劫持函数(kernel hook,用于将攻击代码嵌入系统的特定函数),并将它们与其他已知攻击进行了对比。他发现,有些攻击的代码中具有2个或3个相同的劫持函数。他又查了一下震网的代码,结果,震网中恰恰使用了这6个完全相同的劫持函数。看到这里,本恰特确信,这两场攻击之间,定然有紧密的联系。

当然,这未必说明,两场攻击的代码是同一批人所写,只能说明新攻击的发起者以震网代码为框架和模板,创作了新的攻击。众所周知,震网成功破坏了伊朗的铀浓缩项目,那么,谁知道,这个新攻击的目标是什么?它已经感染了多少个系统?(待续)

译者:李云凡

 

关键词:

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


相关文章