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

640.webp

俄罗斯公司卡巴斯基是东欧和中东地区的市场霸主,这次总算找到了施展身手的机会。利用毒区攻击者来不及反应的时间差,他们拿到了5台指挥控制服务器的镜像……

第十四章 震网的子孙(接上)

拉伊乌是一名在卡巴斯基工作的罗马尼亚人,年方33。他和另一名研究员,与一帮市场营销人员一起,在布加勒斯特一家规模很小的分公司上班。他浓密的头发黑白相间,眼神有一种与他年龄不相称的成熟和智慧。这让它在以年轻人为主的研究团队中脱颖而出,成为深孚众望的领袖。而且,他僧侣般冷静的举止,让他在同时面临多项棘手任务时,仍能很好的应对压力。在他带领团队深入探查震网和毒区幕后强大操盘者的几个月里,他的这些可贵品质得到了充分的发挥。他们的行动,甚至引起了外国情报机构的注意。

640.webp

2000年,23岁的拉伊乌加入了仅有几十名员工的卡巴斯基公司。他一来,就被分配到了一个名为“布拉格计划”的下一代反病毒引擎研发项目组。

在社会主义国家罗马尼亚长大的拉伊乌,从小就对化学而非计算机特别着迷。他最喜欢观看某些化学成分混合在一起之后发生的燃烧反应,最喜欢学习用于揭示世界本质与结构的化学基础知识。但有一次,他在做实验时,险些烧掉家里的房子。于是,他的父母给他买了一台国产的山寨PC,希望把他的兴趣转移到不那么危险的方向。很快,他就自学掌握了编程技巧,并在十几岁时,从零开始设计了一个名为RAV的反病毒引擎。

他开发RAV的工作始于高中时期。一次,他们学校的网络遭到了病毒感染,但杀毒软件却检测不到。拉伊乌见状,熬了一个通宵,提取出病毒特征码,制作了专杀工具。随着时间的推移,他不断增加工具中的代码和病毒特征码,最终形成了一个相对成型的杀毒引擎。他为它取名为MSCAN,并免费分发给需要的人。消息传开后,一个罗马尼亚企业家找到了拉伊乌,邀请他加入他的GeCAD软件公司,并开始用RAV(Romanian Anti-Virus的缩写)为名销售他的程序。RAV很快成为公司的主打产品,并在一次又一次的测试中击败各路竞争对手,赢得了微软的关注。2003年,微软与GeCAD公司签订了RAV的采购合同,但此时,拉伊乌已经离开了公司,转投卡巴斯基。

当时,卡巴斯基实验室在美国还没什么名气,主导美国杀毒软件市场的是赛门铁克和迈克菲。作为一家俄罗斯公司,卡巴斯基在西方国家面临着不被信任的挑战。特别是公司创始人尤金•卡巴斯基(Eugene Kaspersky)曾在一个具有克格勃背景的研究机构受训,并在军事情报部门任职。但是,在东欧等地区,特别是在美国公司不被信任的中东地区,卡巴斯基逐渐积累起一定的声誉。

拉伊乌刚进入卡巴斯基时,干的是程序员的工作,之后于2004年进入公司新组建的恶意代码调查与逆向工程团队。2010年,这个团队已经在全球各大洲设立了子团队,而拉伊乌则成为了团队的负责人。毒区曝光后,多个子团队都加入了研究分析毒区的行动。

团队的技术工作由格斯特夫牵头。格斯特夫是个清瘦的小伙子,有一头浅棕色的短发,还有点轻微的驼背,让人很容易联想到,这肯定是他长期弯腰盯着电脑而造成的。当他和同事们仔细检视代码时,发现其中有很多罕见的现象。

640.webp (1)

亚历山大·格斯特夫

一个特别有趣的部分,是攻击者用于“向染毒计算机发送盗取数据附加载荷”的功能组件。与毒区和震网所有其他部分代码不同的时,他用的编程语言不是C和C++,而是格斯特夫和拉伊乌从未见过的另一种语言。他们花了几周的时间查找资料、请教专家,却仍未找出答案。于是,他们发了一篇求助博客,并从回复内容的碎片信息中拼出了结论。原来,攻击者用的是C语言的一种变体,此外还对代码进行了特别的压缩处理,以减小体积。这种编程风格在10年前的商业软件中很常见,但对于现代的程序、尤其是恶意程序而言,可谓绝无仅有。显然,攻击者并非对前沿技术信手拈来的编程高手,而是谨慎保守的老派程序员。此外,拉伊乌推测,由于C++有时会在执行编译后,生成不可预测的代码,或出现不按既定方式执行的情况,因此攻击者为了确保对恶意代码进行更有效控制,最终选择了C语言,并在汇编过程中对代码进行了压缩,以增加代码密度、减轻传输负荷。

接下来,他们开始研究毒区的传播机制。在这方面,毒区与不受控制任意传播的震网相比,可谓大相径庭。看起来,毒区在传播过程中没有利用零日漏洞,也没有震网的自主传播功能。毒区的做法是,只有当某台染毒计算机收到攻击者从指挥控制服务器发来的指令时,才会向其他计算机传播病毒。而且,在与服务器之间通信方面,毒区采用的手段远比震网更加隐蔽。为了防止有人截获并读取通信数据,他们使用了一种强加密算法AES,并将恶意代码嵌入一个.JPEG图像文件中隐藏了起来。在感染规模方面,震网共感染了超过10万台计算机,而被发现感染毒区的计算机总共只有30多台。

虽然数量不多,但毒区的受害者分散在多个不同国家,目标包括军事机构和制造管道、阀门等工业设备生产商。所有目标的共同点是,他们生产的产品或提供的服务都具有重要的战略价值。如卡巴斯基所料,他们发现的很多目标都与伊朗有关。目标机构要么在伊朗设有办公室,要么与伊朗之间有贸易往来。目前为止,唯一一家与伊朗无关的受害者,就是首先发现毒区的匈牙利公司。

对多家受害机构日志文件的分析结果显示,攻击者对AutoCAD文件有独特的兴趣,特别是与伊朗工业设施中使用的控制系统有关的文件。AutoCAD是一款计算机辅助设计软件,可以用于绘制二维和三维建筑图纸、设计计算机面板和其他产品,还可以用于绘制计算机网络的拓扑结构图和厂房机器分布图。如果有人打算对工厂发动炸弹袭击,或用类似震网的数字武器实施攻击,这些文件定能派上用场。

攻击者在整个攻击过程中展现了很强的条理性。他们认真考虑了入侵目标的方式、编译用于攻击各目标的恶意文件的时机、以及指挥控制服务器的分布。他们在欧亚各地部署了多个服务器,以将每个服务器对应的染毒计算机数量控制在2-3台。这样做,既可以让他们同时跟踪多个不同目标,又可以确保万一外部人员闯入服务器时,也只能看到很有限的内容。实际上,这些服务器扮演的,是攻击者用于中转盗取数据的中间站,即“代理服务器”的角色。它们可以降低对外部人员全面暴露攻击行动的风险,并防止有人通过追溯被盗数据,查到攻击者的身份。比如,从匈牙利目标公司盗取的数据,首先会被发往一台位于印度的服务器,然后再通过菲律宾的服务器,中转至其他位置。而来自伊朗目标的数据,则会先发往越南的服务器,再转发至德国和其他位置。研究人员努力沿着这条路径追踪,但每次都会在追到3个代理服务器后走进死胡同。最后,他们判断,这是一场没有结果的战斗,于是放弃了跟踪。

不过,在这些服务器的宗主公司的帮助下,卡巴斯基拿到了包括越南境内用于控制伊朗方向目标的服务器在内,总共5台服务器的镜像文件。在赛门铁克发布毒区消息两天后的10月20日,卡巴斯基发现,攻击者实施了一次大规模战场清理行动,慌慌张张的擦除了服务器上的所有数据。但为什么他们花了两天才做出响应,原因不明。然而,正是这个时间差,使卡巴斯基有机会获得了这些日志文件,并以此为线索对毒区进行分析。这些日志显示,攻击者早在2009年11月就在德国建立了一个指挥控制服务器。这意味着,在匈牙利人发现毒区感染之前的两年前或更早,毒区的攻击活动就已经开始了。卡巴斯基研究员猜测,毒区可能比震网上线更早,而非更晚。他们相信,很快就能找到相关证据。(待续)

译者:李云凡

 

关键词:

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


相关文章