淘客熙熙

主题:“震网”的秘密——“震网”病毒是如何破坏伊朗核计划的? -- silencsrv

共:💬30 🌺188
全看分页树展 · 主题
家园 “震网”的秘密——“震网”病毒是如何破坏伊朗核计划的?

“震网”的秘密

2010年1月,国际原子能机构的核查人员刚刚完成对位于伊朗中部的Natanz铀浓缩车间的核查任务。在那里他们发现在安装了上千台离心机、日夜进行铀浓缩活动的工厂厂房里发生了一些异常中止事件。

Natanz工厂的技术人员身着白大褂、手套和蓝色鞋套正急急忙忙的冲到“无菌”厂房里,把那些笨重的离心机一台台拖出来。每台离心机外面都用亮银色圆柱形保护层包裹的好好的。

之前工厂里的计时工拆除了那些受损的和废弃的离心机,然后把它们排成一行供核查人员检查,确保里面的铀在被挪走前没有发射性物质泄漏。之前Natanz工厂技术人员做类似操作已经持续了一个多月了。

正常情况下由于机器老化和其他原因,伊朗人每年要更换掉10%的离心机。当时在Natanz工厂安装了大约8700台离心机,一般来说当年需要更换掉大概800台离心机。

但当IAEA核查人员事后调看安装在Natanz厂房外的监视摄像机记录来观察伊朗铀浓缩进展时,他们被看到的景象惊呆了。当地工人更换的离心机的数量多的令人难以置信。事后估计在短短几个月时间里有1000-2000台离心机被迫报废。

问题是,何以在短时间里报废那么多离心机?

伊朗人不需要向外界公开短时间内更换如此多离心机的原因。从官方角度说,IAEA的核查人员也无权过问此事,因为国际原子能机构授予他们的权限就是监督Natanz工厂的核材料使用情况,而不是跟踪设备损耗。但可以肯定的是,这些离心机遭到某种破坏。

核查人员不知道的是,他们孜孜探求的问题答案就隐藏在他们身边——埋藏在Natanz工厂使用的计算机硬盘空间和内存里。几个月前的2009年6月,有人秘密释放了一种隐秘的破坏性电脑病毒进入伊朗电脑系统里,其目的只有一个——破坏伊朗的核计划,阻止内贾德拥有核武器。

但这距离IAEA核查人员发现已经过去接近一年时间。在这段时间里,几十名分布世界各地的网络安全专家花费数月时间合力解析这种目前最复杂的电脑病毒——世界上第一种真正意义上的网络战武器。

2010年6月17日,Sergey Ulasen在位于Belarus的办公室里浏览邮件,这时一份报告引起他的注意。一位伊朗客户的电脑感染了一种神秘病毒——无论用户进行什么操作,机器总是不断的关机、重起。看上去这台机器感染了某种电脑病毒。

Ulasen是一名网络安全专家,在乌克兰首都明斯克有一家自己的小公司名为VirusBlokAda。作为计算机领域的一个专门分支,随着各种黑客攻击、病毒演化、木马技术和间谍软件技术的发展,信息安全领域的产值在过去十年时间里增长了数十亿美元。

与行业里最顶尖的专家——Bruce Schneier,Dan Kaminsky和Charlie Miller等,以及行业里最顶尖的网络安全公司,如赛门铁克、麦克菲和卡巴斯基等相比,VirusBlokAda在业界里实在是默默无闻,不过这一切很快将发生改变。

Ulasen的研究团队首先抓住了这种病毒的关键特征,认定它使用了一种名为“0-Day”的技术进行扩散。所谓“0-Day”是黑客界里最厉害的一种武器:通过搜寻特定软件自身的漏洞,然后神不知鬼不觉地发起攻击,无论是软件开发人员还是反病毒人员都很难发现它。这种类型病毒十分罕见,编写它不但需要相当的技术,还要坚持寻找软件漏洞才行。每年反病毒人员要获取超过1200万各种病毒,但这种病毒一般不超过十几种。

“0-Day”技术可以让病毒很方便的通过USB存储盘从一台电脑传染到另一台电脑。具体说,漏洞位于IE浏览器下的一个LNK文件里,那是Windows操作系统的一个基本组件。当一个染毒U盘插入USB口时,IE浏览器自动扫描U盘里的文件列表;此时U盘里的病毒代码自动激活并秘密地把一个加密后大型文件复制到电脑里,就像一架军用运输机偷偷地向目标区域空投伪装好的士兵一样。

很明显这种通过一种非常常见的操作手段传播病毒的方式十分独特有创意,之前也有一种类似病毒曾经让研究人员们惊讶不已。

VirusBlokAda向微软提交了系统漏洞报告。7月12日,微软发布了一个补丁包,同时VirusBlokAda也把自己的发现以简报形式提交到一个安全论坛上。三天后,系统安全博客写手Brian Krebs公开了这种病毒发现经过。之后全世界信息安全公司开始疯狂争抢这种日后被微软以染毒文件名称组合命名为“震网”的病毒代码样本。随着破译工作的深入,更多技术细节开始慢慢被揭开。

其实早在2009年6月“震网”病毒的原始代码就出现了。随着时间推移,神秘的病毒开发者不断更新和重构代码,先后抛出三个不同版本。值得一提的是,其中一个染毒驱动文件使用的是从一家名为RealTek的台湾半导体硬件制造厂商那里偷来的合法签名证书,其目的就是为了迷惑Windows操作系统,好让它认为这个染毒文件是来自于RealTek的合法程序。

网络认证公司很快宣布该证书作废。但人们又发现另一个“震网”驱动文件里也有一个从一家名为JMicron的台湾微电路制造厂商那偷来的安全认证证书。巧合的是,这家企业的总部和RealTek公司正好位于同一个科技园里。难道黑客是潜入这两家公司窃取证书?或者通过黑客手段远程侵入公司内网进行盗窃?谜底无人知晓。

“我们从未见过如此专业的行为,显然说明这批黑客有背景。”ESET——安全证书破解者之一,在自己的博客中如此写道。

从别的方面看,“震网”的目的性也很明确。专家们认定这种病毒的攻击目标就是Simatic WinCC Step7型软件——由著名的德国厂商西门子研发的一种工业控制系统。这种系统主要用于控制各类发电机、阀门和开关等设备,应用面很广泛,从普通的食品加工厂道汽车装配线;从天然气管道到水处理厂都有应用。

尽管“震网”诸多特点看起来很奇特,毕竟工业控制系统从来不是黑客们热衷攻击的传统目标,因为它没法带来明显的经济收益。但“震网”对Simatic系统的所作所为却没什么新意——通过窃取Simatic系统中的各种配置数据让竞争对手绘制出工厂的内部设计图。从表面上看“震网”仅仅是一种新型工业间谍类软件。

反病毒公司把“震网”及其变种的特征码加进各自的病毒库里,接着各忙各的了,看上去“震网”的故事到此结束了。

不过还有几位反病毒专家不打算放过它……

赛门铁克驻欧洲和美国研究人员最初也参与到争抢“震网”源代码的活动里去了,在收集好特征码之后也都各忙各的去了,源码则扔给公司驻加州斑鸠城办公室的研究员Liam O Murchu了。

O Murchu是一位33岁的爱尔兰人,作为赛门铁克安全责任部门的负责人,他的职责就是对所有病毒的特征码进行审查,决定是否要对这些病毒进行深入分析。

每个月赛门铁克和其它反病毒公司都要收到超过100万种各类恶意文件,其中绝大多数都是已知病毒的各类变种,它们会被机器自动识别出来不需要人工处理。特殊的逻辑算法会对恶意文件进行扫描,搜寻破坏性代码和行为来确定病毒代码,然后产生病毒特征码并发送给客户机器上的病毒扫描软件。

由于“震网”恶意软件中包含了“0-Day”代码,这点十分特别。O Murchu于是把它交给手下一个没有处理“0-Day”代码经验的工程师,打算给他一个练手的机会。然而当O Murchu同时自己逐步分析“震网”源代码后,他发现“震网”代码的复杂程度远超自己的想象。

在这个恶意软件里,“0-Day”恶意代码在好几层伪代码的精心掩盖下很难被发现,要揭开它需要不小的工作量。整个恶意软件的体积很大——达到500K字节,这与以往那些仅有10K-15K大小的病毒形成鲜明对照。通常情况下,此类恶意软件都包括一个截图文件,例如一个自动弹出的用来欺骗用户输入个人信用卡信息的伪造银行页面。但在“震网”里却不但找不到这个文件,也没有任何其他无关文件。整个源代码看上去很紧凑,所有数据和指令结合的很默契。看得出“震网”的编写者功力不凡。

这引起了O Murchu的浓厚兴趣。O Murchu从事系统安全工作多年,如此高水平的病毒是第一次见到:“在我们见过的所有复杂、先进的安全威胁中,没有一个能达到如此水准。”O Murchu不禁陷入沉思。

越来越多的迹象显示“震网”的编写水平很专业,但O Murchu仅仅分析了500K大小代码中前5K代码。很显然要想彻底吃透“震网”就需要一个专门团队对它进行分析。但问题是这件事该不该做?

如果放弃的话,没有人会指责赛门铁克。毕竟作为网络安全公司最紧迫的任务是发现并阻止病毒在染毒电脑里发作。至于搞清病毒本身在客户电脑里会做什么则是相对次要的事情。

不过这次赛门铁克的工程师们认定为了客户的安全,有必要弄清“震网”背后的秘密。因为如果“震网”仅仅是一款普通间谍软件,那么它的源代码显得过于复杂和神秘了。巨大的疑问吸引着O Murchu,他决定揭开这个谜底。

“关于它的任何事都让我激动得头发都要立起来了,这里面一定有一些秘密等待我们揭开。”O Murchu说到。

当O Murchu完成对病毒代码初步分析时已经是周五下班时,于是他把相关线索移交给赛门铁克东京研究团队继续研究。赛门铁克在欧洲、美国和东京都有研究团队,这样可以保证任何时候都有至少一个团队随时能应对重大网络安全威胁。

随着研究深入,越来越多反病毒专家加入进来:Eric Chien——赛门铁克安全相应部门的技术负责人;Nicolas Falliere——赛门铁克驻巴黎的高级软件工程师和代码分析专家。他们发现“震网”每次仅感染一个系统。每入侵一个系统,“震网”就会自动向两个互联网域名中的一个发送宿主信息——www.mypremierfutbol.com和www.todayfutbol.com——主机分别位于马来西亚和丹麦。发送的信息包括系统内外网IP、计算机名、操作系统版本,当然也包括是否安装了西门子Simatic WinCC Step7软件。不仅如此,“震网”还允许黑客进行远程升级,甚至在宿主机上安装更多间谍软件。

为了阻止黑客继续恶意套取宿主机信息,为两个域名提供解析服务的DNS服务商已经设置了“死信”功能——阻止黑客访问这两个域名。赛门铁克专家们则更进一步:说服服务商把访问路由设置到一个“污水池”里——一台由赛门铁克控制的服务器。到周二早上,赛门铁克收集到了不少受感染机器的信息并汇总成报告与其他信息安全企业共享。

在一周时间里,共有大约二十个国家38000台电脑感染病毒。之前应该有超过10万台电脑染毒。尽管其特征码已经加入反病毒库里,“震网”的扩散速度仍旧很快。

当Chien和O Murchu在地图上勾勒出染毒电脑的地理分布时,一个奇怪的现象出现了。在最初发现的38000台电脑中,22000台电脑位于伊朗,其次是印尼——仅有6700台,第三位是印度——3700台。美国仅有400台。所有染毒电脑中仅有一小部分安装了西门子Step7软件:伊朗有217台,美国仅有16台。从分布上看“震网”明显有别于以往的电脑病毒:以往北美和韩国的电脑染毒情况比较严重,因为那里的互联网环境最为开放自由。而这次恰恰相反,互联网环境比较封闭的伊朗染毒情况反而十分严重。种种迹象表明,“震网”来头非比寻常,他很可能是某些专业网络战部队研发的产品,极可能就是美国货。

了解到这些细节后,赛门铁克工作人员一度感到很大压力。毕竟拦截黑客期望获得的数据的话,可能冒得罪美国政府的危险。但当被问及是否考虑这一点时,Chien想了一下回答道:“对我们而言病毒就是病毒,无所谓好坏。真正的坏小子就是那些编写恶意代码感染机器设备,导致各种不可预料故障的人。”

无论这个“坏小子”是不是美国政府或者它的盟国,攻击者已经成功地造成上千台机器损坏,对此赛门铁克决不能坐视:“我们并非只从属于某个国家,我们是一家跨国私营企业,有义务保护客户的利益。”

时针在一点一点挪动,此时所有研发人员都知道“震网”已经造成超过十万台电脑染毒,但大家还是不知道它在这些染毒电脑上究竟会做什么?

“我们花了很长时间思考:或许是网络封锁导致伊朗没有最新的安全软件,这导致震网在伊朗网络里泛滥。若放到北美,这种病毒充其量只能影响一些水处理系统或铁路控制系统。”Chien回忆道:“于是我们努力想知道,震网对伊朗人究竟有哪些影响?”

8月底的一个周五晚上,O Murchu正在庆祝他的33岁生日。夜里9点,他的老搭档Chien来了,这次他有点“小礼物”送给Murchu。

“我要给你看样东西,但今晚我们就不多做讨论了。”Chien边说边拿出自己的黑莓手机,里面有另一位反病毒专家发来的邮件,他认为“震网”代码中还隐藏着更多“0-Day”恶意代码。

Murchu看着Chien,他们在“震网”上已经花了超过一个月时间了,也研究了不少蛛丝马迹,但却迟迟得不到肯定的结论。虽然这封信没有提及太多细节,但里面提到的代码中还有没发现的“0-Day”已经足够激发起Murchu的斗志了。

“这就对了,今晚我不会多喝酒了。”Murchu说道。

第二天清晨,Murchu回到办公室认真挖掘代码,重点研究“震网”如何自我复制和扩散的,同时测试并记录自己的发现。他在下午离开办公室前把自己的发现转发给Chien,Chien接手继续研究到夜里。到这天结束他们又发现了三处“0-Day”:首先“震网”利用了Windows操作系统的一处打印池漏洞来扩散病毒:凡是使用共享打印机的电脑都可能通过打印池染毒;其次“震网”利用Windows键盘驱动文件和任务管理器的漏洞篡改了黑客帐号权限,使得黑客能完全控制染毒电脑;最后“震网”还调用一个硬编码在Step7系统中的帐号密码,通过这组用户密码控制了Step7的服务端数据库,由此感染那些远程连接数据库的电脑。

以往黑客都是通过互联网,譬如邮件或网站链接来传播病毒,但“震网”不同。“震网”的全部传播过程都在局域网里完成的。看起来黑客清楚目标系统并未与外网连接,因此他精心编写了这样一种能够隐藏在USB移动设备里,伪装成驱动文件的病毒。只要有人把U盘插进局域网内任意一台电脑,“震网”就会四处窥探,通过局域网传播。

(待续)

通宝推:易先生,盲人摸象,tanhuan,airman,关中农民,金陵明安,联储主席,林风清逸,岑子,桥上,二手玫瑰,胡一刀,mezhan,
全看分页树展 · 主题


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河