对Stuxnet蠕虫攻击工业控制系统事件的综合报告

来源:岁月联盟 编辑:lion 时间:2010-09-28

 

Report_On_the_Attacking_of_Worm_Struxnet_by_antiy_labs.rar
文件类型: .rar f56d0c49e7db3706371dc1c2260ab70b.rar (697.37 KB)

出处: 安天实验室安全研究与应急处理中心(Antiy CERT) (2010年9月27日第1版)

第1章 事件背景
    近日,国内外多家媒体相继报道了Stuxnet蠕虫对西门子公司的数据采集与监控系统SIMATIC WinCC进行攻击的事件,称其为“超级病毒”、“超级工厂病毒”,并形容为“超级武器”、 “潘多拉的魔盒”。

    Stuxnet蠕虫(俗称“震网”、“双子”)最早出现于今年7月,到目前为止利用了至少4个微软操作系统漏洞(包括3个新的零日漏洞)和2个WinCC系统的漏洞,并伪造了驱动程序的数字签名,通过一套完整的入侵、传播和攻击方式,突破工业专用局域网的物理限制,针对WinCC系统发起攻击。它是第一个直接攻击现实世界中的工业基础设施的恶意代码。据相关报道,迄今全球已有约45000个网络被这一蠕虫感染,其中60%的受害主机位于伊朗境内。9月27日,伊朗政府已经确认该国第一座核电站“布什尔核电站”遭到Stuxnet蠕虫的攻击。

    安天实验室自7月15日捕获该蠕虫的第一个变种,在第一时间展开分析,发布了分析报告及防范措施,并对其持续跟踪。截止9月27日18时,已经累计捕获13个变种、 500多个不同hash值的样本实体。
 
第2章 样本典型行为分析
2.1 攻击目标

Stuxnet蠕虫在以下操作系统中可以激活运行:

· Windows 2000与Windows Server 2000

· Windows XP与Windows Server 2003

· Windows Vista

· Windows 7与Windows Server 2008

即目前主流Windows NT系统全部在攻击范围之中。

存在漏洞的软件系统包括:

· SIMATIC WinCC 7.0

· SIMATIC WinCC 6.2

但不排除其他版本存在这一问题的可能。

2.2 攻击流程

    Stuxnet蠕虫的最终攻击目标是SIMATIC WinCC系统,该系统用于工业控制系统的数据采集与监控,一般部署在专用内部网络中,与互联网实现物理上的隔离。为了实现攻击,Stuxnet采取了多种手段进行传播,如图1所示。


图1 Stuxnet蠕虫的传播方法

    Stuxnet蠕虫首先侵入位于互联网中的主机,然后感染U盘,利用微软的快捷方式文件解析漏洞(MS10-046),传播到工业专用内部网络;接下来,在内网中,通过快捷方式解析漏洞、RPC远程执行漏洞(MS08-061)、打印机后台程序服务漏洞(MS10-061),实现内网主机之间的传播,最后抵达安装了WinCC系统的主机,展开攻击。

样本在主机上的典型运行流程如图2所示:

 

图2 样本的典型运行流程

2.3 本地行为

1、病毒衍生以下病毒文件到系统目录:

%System32%driversmrxcls.sys

%System32%driversmrxnet.sys

%Windir%infoem7A.PNF

%Windir%infmdmeric3.PNF

%Windir%infmdmcpq3.PNF

%Windir%infoem6C.PNF

2、利用ZwCreateSection创建PE节,通过内存映射把代码映射到创建的节表中,然后通过LoadliraryW获取基址,去除NTDLL.DLL模块中4096字节PE文件头的保护,并修改偏移40处的代码为HOOK了NTDLL.DLL模块的6个函数调用,分别为:

· ZwMapViewOfSection

· ZwCreateSection

· ZwOpenFile

· ZwClose

· ZwQueryAttributesFile

· ZwQuerySection

试图访问西门子SIMATIC WinCC系统数据库;开启lsass.exe进程,试图将病毒代码注入到该进程中。

3、增加系统服务,以达到开机启动

    新增系统服务,名称为MRXCLS,加载驱动文件%System32% Driversmrxcls.sys。

2.4 传播行为

    在2.2节,我们已经介绍Stuxnet蠕虫主要采用三种途径传播,下面逐一解析。

1. 快捷方式文件解析漏洞(MS10-046)

    这个漏洞利用Windows在解析快捷方式(.lnk)文件时的一些机制,让系统加载指定的DLL文件,从而触发病毒或木马。

    具体而言,Windows在显示lnk文件时,会根据文件中的信息寻找它所依赖的图标资源,并将其作为文件的图标显示给用户。如果图标在一个DLL文件中,系统就会加载这个DLL文件。而对于攻击者精心构造的lnk文件,系统将加载指定的DLL文件,从而使其中的恶意代码开始执行。

    Stuxnet蠕虫在运行时,监控计算机中新增的U盘设备(图3)。一旦发现U盘,就将快捷方式文件和DLL文件拷贝到其中(图4)。接下来,当用户将这个U盘再插入到专用局域网中的计算机上,打开浏览时,就会触发漏洞,引起Stuxnet的执行,从而实现利用U盘的“摆渡”攻击。

 

图3 查找U盘

 

图4 拷贝文件到U盘

2. RPC远程执行漏洞(MS08-067)

    这是Windows操作系统的Server服务在处理RPC请求时存在的一个漏洞,攻击者可以发送恶意RPC请求触发这个漏洞,完全入侵用户系统,以系统权限执行任意指令,并获取数据。

    该漏洞具有很高的利用价值,曾被多种恶意代码利用。Stuxnet蠕虫通过它实现自身在局域网内的传播(图5)。

 

图5 RPC攻击

3. 打印机后台程序服务漏洞(MS10-061)

    存在该漏洞的计算机可以远程地将一个文件写入到目标主机的%System32%目录。具体而言,攻击者制造一个恶意打印请求、将其发送到通过RPC暴露打印后台程序接口的系统,触发此漏洞。目标主机不能正确地验证远程用户是否具有足够的权限,从而允许攻击者在系统目录中创建文件。

    Stuxnet利用这一漏洞将自身从被感染主机拷贝到其它主机,通过拷贝到特定位置或其它机制促使其执行。

    值得注意的是,这是一个零日漏洞,首先被发现于Stuxnet蠕虫中。

2.5 攻击和破坏行为

    Stuxnet使用WinCC系统中硬编码的一个默认账户及密码,尝试访问存储该系统数据的SQL数据库(图6)。

 

图6 对WinCC的数据库操作
 
第3章 攻击事件的新特点
    此次事件呈现了许多新的攻击手段和特点,与传统的安全事件有非常大的区别,在此逐一分析。

3.1 专门攻击工业控制系统软件

    Stuxnet的攻击目标直指西门子公司的SIMATIC WinCC系统,这是一种运行于Windows平台的数据采集与监视控制(SCADA)系统,被广泛应用于钢铁、汽车、电力、运输、水利、化工、石油等工业领域。Stuxnet利用了该系统的两个漏洞。

    这是一次专门针对工业控制系统的攻击。一方面,攻击的目的和意图非常明显;另一方面,专门针对此类软件的攻击是非常复杂的,这也体现了攻击者的实力超乎寻常。

3.2 利用多个零日漏洞进行传播和危害

    Stuxnet至少利用了微软操作系统的下列漏洞:

1. RPC远程执行漏洞(MS08-067)

2. 快捷方式文件解析漏洞(MS10-046)

3. 打印机后台程序服务漏洞(MS10-061)

4. 尚未公开的一个提升权限(EoP)漏洞

    其中,后三个漏洞都是在Stuxnet中首次被使用,是真正的零日漏洞。

    此外,Stuxnet试图从广域互联网渗透到专用局域网,并在局域网中散播。可以看到这些漏洞的针对性极强,完全适应这一需求。如此大规模、极富针对性地利用零日漏洞,并不多见。

3.3 含有数字签名的驱动程序

Stuxnet在运行后,释放两个驱动文件:

· %System32%driversmrxcls.sys

· %System32%driversmrxnet.sys

    这两个驱动文件伪装了RealTek的数字签名(图7)以躲避杀毒软件的查杀。目前,这一签名的数字证书已经被颁发机构吊销,无法再通过在线验证,但目前反病毒产品多数依靠静态手段判定PE文件是否带有数字签名,因此有可能被欺骗。

 

图7 Stuxnet伪造的数字签名

3.4 明确的攻击目标

    Stuxnet蠕虫感染的主机60%分布在伊朗境内,WinCC在该国被广泛使用于基础国防设施中。9月27日,伊朗国家通讯社向外界证实该国的第一座核电站“布什尔核电站”已经遭到攻击。据了解,该核电站于今年8月开始正式运行。因此,此次攻击具有明确的地域性和目的性。
 
第4章 防范方案与安全建议
4.1 抵御本次攻击

西门子公司关于此次攻击的解决方案是:

http://support.automation.siemens.com/WW/llisapi.dll?func=cslib.csinfo&objid=43876783

下面根据我们的分析结果给出进一步防范和解决方案。

1、安装相关的专杀工具,扫描和清除Stuxnet蠕虫

2、安装被利用漏洞的系统补丁

微软提供的补丁文件下载地址如下:

· RPC远程执行漏洞(MS08-067)
http://www.microsoft.com/technet/security/bulletin/MS08-067.mspx

· 快捷方式文件解析漏洞(MS10-046)
http://www.microsoft.com/technet/security/bulletin/MS10-046.mspx

· 打印机后台程序服务漏洞(MS10-061)
http://www.microsoft.com/technet/security/bulletin/MS10-061.mspx

此外,特别需要注意的是一个尚未修补的提升权限(EoP)漏洞,以及微软发现的另一个与此类似的提权漏洞。请用户及时关注这两个漏洞的后续补丁。

3、安装软件补丁

8月18日,西门子发布了WinCC系统的安全更新补丁,下载地址是:

http://support.automation.siemens.com/WW/llisapi.dll/csfetch/43876783/SIMATIC_Security_Update_V1_0_0_11.exe?
func=cslib.csFetch&nodeid=44473682

4.2 安全建议

此次攻击行为,至少凸显了两个问题:

1、物理隔离的专用局域网并非牢不可破;

2、专用的计算机软件系统,包括工业控制系统,也有可能被攻击。

因此,我们对存在这些隐患的有关部门和企业提出如下安全建议:

· 加强主机安全防范意识,尤其是内网主机安全,即便是物理隔离的计算机也要做到及时更新操作系统补丁;

· 为计算机安装安全防护软件,特别是反病毒软件,并及时更新病毒数据库;

· 形成应用软件安全性的意识,关注敏感主机中所用软件的安全隐患,并及时更新存在漏洞的软件;

· 加强局域网安全,尤其重视网络服务的安全性,关闭主机中不必要的网络服务端口;

· 加强对可移动存储设备的安全管理,关闭计算机的自动播放功能,使用可移动设备前先进行病毒扫描,为移动设备建立病毒免疫,在敏感环境下,使用硬件式U盘病毒查杀工具。


第5章 工业系统安全将面临严峻挑战
    在我国,WinCC已被广泛应用于很多重要行业,一旦攻击成功,则可能造成使用这些企业运行异常,甚至造成商业资料失窃、停工停产等严重事故。

    应该看到Stuxnet带来的问题不只如此。一般来说,一种新的攻击方法、攻击思路和攻击目标出现,都会较长时间带来示范效应,导致今后攻击的重点从传统的信息网络向工业网络转移。

    对于Stuxnet病毒的出现,我们并未感到十分意外,早在去年,安天已经接受用户委托展开了化工行业仪表的安全性研究,情况不容乐观。

    工业控制网络,包括工业以太网,以及现场总线控制系统早已在工业企业中应用多年,目前在电力、钢铁、化工等大型重化工业企业中,工业以太网、DCS(集散控制系统)、现场总线等技术早已渗透到控制系统的方方面面。工业控制网络的核心现在都是工控PC,大多数同样基于Windows-Intel平台,工业以太网与民用以太网在技术上并无本质差异,现场总线技术更是将单片机/嵌入式系统应用到了每一个控制仪表上。工业控制网络除了可能遭到与攻击民用/商用网络手段相同的攻击,例如通过局域网传播的恶意代码之外,还可能遭到针对现场总线的专门攻击,不可轻视。

    针对民用/商用计算机和网络的攻击,目前多以获取经济利益为主要目标,但针对工业控制网络和现场总线的攻击,可能破坏企业重要装置和设备的正常测控,由此引起的后果可能是灾难性的。以化工行业为例,针对工业控制网络的攻击可能破坏反应器的正常温度/压力测控,导致反应器超温/超压,最终就会导致冲料、起火甚至爆炸等灾难性事故,还可能造成次生灾害和人道主义灾难。因此,这种袭击工业网络的恶意代码一般带有信息武器的性质,目标是对重要工业企业的正常生产进行干扰甚至严重破坏,其背景一般不是个人或者普通地下黑客组织。

    目前,工业以太网和现场总线标准均为公开标准,熟悉工控系统的程序员开发针对性的恶意攻击代码并不存在很高的技术门槛。因此,对下列可能的工业网络安全薄弱点进行增强和防护是十分必要的:

1、基于Windows-Intel平台的工控PC和工业以太网,可能遭到与攻击民用/商用PC和网络手段相同的攻击,例如通过U盘传播恶意代码和网络蠕虫,这次的Stuxnet病毒就是一个典型的例子。

2、DCS和现场总线控制系统中的组态软件(测控软件的核心),目前其产品,特别是行业产品被少数公司所垄断,例如电力行业常用的西门子SIMATIC WinCC,石化行业常用的浙大中控等。针对组态软件的攻击会从根本上破坏测控体系,Stuxnet病毒的攻击目标正是WinCC系统。

3、基于RS-485总线以及光纤物理层的现场总线,例如PROFIBUS和MODBUS(串行链路协议),其安全性相对较好;但短程无线网络,特别是不使用Zigbee等通用短程无线协议(有一定的安全性),而使用自定义专用协议的短程无线通信测控仪表,安全性较差。特别是国内一些小企业生产的“无线传感器”等测控仪表,其无线通信部分采用通用2.4GHz短程无线通信芯片,连基本的加密通信都没有使用,可以说毫无安全性可言,极易遭到窃听和攻击,如果使用,将成为现场总线中极易被攻击的薄弱点。

    工业控制网络通常是独立网络,相对民用/商用网络而言,数据传输量相对较少,但对其实时性和可靠性的要求却很高,因而出现问题的后果相当严重。

    传统工业网络的安全相对信息网络来说,一直是凭借内网隔离,而疏于防范。因此,针对工业系统的安全检查和防范加固迫在眉睫。