欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

震网事件的九年再复盘与思考

来源:本站整理 作者:佚名 时间:2019-10-06 TAG: 我要投稿

1、小序
2010年7月,“震网”(Stuxnet)蠕虫攻击事件浮出水面,引发了国际主流安全厂商和安全研究者的全面关注,安天、卡巴斯基、赛门铁克等安全厂商,Ralph Langne等著名安全研究者,以及多国的应急组织和研究机构,都投入到了全面的分析接力中。最终使这场攻击的大量细节被呈现出来:这是一起经过长期规划准备和入侵潜伏作业;借助高度复杂的恶意代码和多个零日漏洞作为攻击武器;以铀离心机为攻击目标;以造成超压导致离心机批量损坏和改变离心机转数导致铀无法满足武器要求为致效机理,以阻断伊朗核武器进程为目的的攻击。
9年的时间过去了,这一安全事件依然在安天的研究视野中。安天从2010年7月15日展开对震网的分析工作,搭建了模拟环境,在9月27日发布了《对Stuxnet蠕虫攻击工业控制系统事件的综合分析报告》[1],在后续形成了对其传播机理进行分析的《对Stuxnet蠕虫的后续分析报告》[2],以及分析其对工业生产过程作用机理的《WinCC后发生了什么》[3]系列分析报告。
安天提出了震网与毒曲(Duqu)同源的猜测,并先后发表了两篇验证性报告,并启动了对火焰(Flame)恶意代码的马拉松式的模块分析。在工作推进中,安天逐步认识到震网、毒曲、高斯(Gauss)、火焰,这些高度复杂的恶意代码间存在着同样的背景联系。这些研究工作对安天后续展开对方程式组织(Equation)的深度分析起到了非常重要的作用。
由于历史原因,其中部分研究文献并未公开,而一些分析进展是碎片化的,虽然在我们的对外技术演讲中有所提及,但并未作为文献发布。这是安天编写这篇文献的原因之一。震网的整体运行框架、USB摆渡机理和传播失控分析,以及图解Tilded框架与Flamer框架的关联,将震网、火焰、毒曲、高斯、Fanny、Flowershop之间的关系进行串接的相关章节,是对这些成果的整理。
今天看来,在前期分析震网系列事件的过程中,我们缺少一种真正意义上的框架化方法。依然更多的是从自身习惯的反恶意代码视角来看待整个攻击过程。尽管我们给震网这样的复杂攻击提出了一个A2PT(即高级的高级可持续性威胁)的命名,但分析中始终缺乏作业到作战视角的思考。在相关专家的指导下,我们对网空博弈、敌情想定有了新的体悟,逐渐从威胁框架视角进行方法论切换,实现自我能力完善。也希望通过威胁框架这一视角来解读“震网”这场看起来依然高度复杂的“昨天的战争”。
本文也详细解读了一个值得思考的问题,震网作为一种没有感染属性的蠕虫,为何会有大量的样本存在。这个原理我们在早期的分析工作中已经发现,即震网的载荷投放程序,在每落地一台机器时,会有一个内嵌配置数据的自我更新,从而导致震网的每次落地形成的主执行体的HASH均不同,同时其实际攻击载荷多数均被包裹在主DLL之中,并不落地。而震网的相关域名则是在其已经达成其主体作业效果的情况下才被曝光的。这从某种意义上也昭示了面对更高级、隐蔽的攻击行动,以HASH、域名等为主体的威胁情报实际上早就面对着无效的危机。

图 1-1 震网事件时间轴
2、为什么是震网
在信息技术发展历史上,出现过大量典型的安全事件,但为什么“震网”被视为具有威胁里程碑意义?震网被认为是第一个以现实世界中的关键工业基础设施为目标的恶意代码,并达到了预设的攻击目标,或者说,这是第一个“网络空间”意义上的重大攻击事件,而非传统的网络攻击事件。尽管此前也存在着一些通过信息攻击手段影响工业设施的传闻,但基本都缺乏技术层面的实证支撑。
从安天此前提出的观点来看,震网的里程碑意义并不是在于其相对其他简单的网络攻击的复杂性和高级性,而在于其证实了通过网络空间手段进行攻击,可以达成与传统物理空间攻击(甚至是火力打击)的等效性。在2016年的报告中,安天研究人员将上世纪70、80年代的“凋谢利刃与巴比伦行动”(在1977年~1981年间发生的以、美联合,在两伊战争期间针对伊拉克核反应堆进行军事打击的事件)与震网事件进行对比分析看出,通过大量复杂的军事情报和成本投入才能达成的物理攻击效果仅通过网络空间作业就可以达成,而且成本也大大降低。正如美国陆军参谋长前高级顾问Maren Leed所讲的——网络武器可以有许多适应环境的属性,从生命周期的成本角度看,它们比其他的武器系统更为优越[4]。

震网系列攻击也全面昭示了工业基础设施可能被全面入侵渗透乃至完成战场预制的风险,震网的成功是建立在火焰、毒曲恶意代码的长期运行、信息采集的基础上。在攻击伊朗铀离心设施之前,攻击方已经入侵渗透了伊朗的多家主要国防工业和基础工业厂商,包括设备生产商、供应商、软件开发商等,表2-2是多个企业遭遇入侵的事件。
表 2-2 伊朗基础工业体系遭遇渗透的情况

3、震网整体结构和运行逻辑
震网的结构非常复杂。其中又经历了从0.5到1.x的版本更迭,其破坏机理从以干扰离心机阀门、造成超压导致离心机批量损坏调整为修改离心机转数。同时其开发框架也发生了变化。我们以流行更为广泛的1.x版本为对象,进行整体结构和运行逻辑梳理。震网的核心是仅在内存中解密存在的DLL文件(以下简称主DLL文件)。DLL文件包含32种不同的导出函数以及15种不同的资源,每一个导出函数都有不同的控制功能,其中主要涉及导出函数15(初始入口点)、导出函数16(安装)、导出函数32(感染连接的移动设备,启动RPC服务)、导出函数2(钩挂API以感染Step7工程文件)等;每个资源也分别执行不同的功能,主要涉及资源250、资源201、资源242等;导出函数正是利用这些不同功能的资源来控制震网执行不同的分支操作。

[1] [2] [3] [4] [5] [6] [7]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载