Stuxnet攻击原理以及如何预防类似攻击

让我们看看行业最复杂的攻击之一以及从中得到的教训。

伊朗核设施、零日漏洞、秘密特工和国家行动听起来更像是间谍小说的背景故事,而不会让人联想到恶意软件。然而,Stuxnet正是这样一个恶意软件。这个经过最多研究和分析的恶意软件仍然在世界各地的安全界被研究和讨论,尽管它已经出现了一年多之久。

你可能并没有经营核电厂,那为什么应该担心这个以特定离心机模型(特别是核电厂)为攻击对象的恶意软件呢?简单地说,Stuxnet带来了网络噩梦,并且永远地改变了安全世界,同时造成与监管控制和数据采集(SCADA)网络(很多能源和公用事业公司内的控制操作)相关的高风险。

类似Stuxnet的攻击是如何攻击你的企业,而你又该如何阻止这种攻击?让我们看看。

第一个问题,你为什么要担心这种恶意软件?最近Ponemon研究所的报告(IT安全状况:公用设施和能源公司的研究)显示,在这些公司中,保护监管控制和数据采集系统是最高的安全目标,且是最难以实现的目标。对于这些运行监管控制和数据采集网络的公司,Stuxnet带来的危害就像是拥有充足资源的坚定而技术熟练的攻击者造成危害。

对于其他公司而言,私有网络和SCADA网络存在差异,风险也不相同。最好的办法就是理解Stuxnet的攻击原理,它的意图,最重要的是为什么这种攻击能够如此成功,以及可能攻击你的网络的这种恶意软件的潜在变种。

在2009年6月、7月,以及2010年的3月、4月和5月,Stuxnet被用于针对五家企业的有针对性攻击,这五家企业都与伊朗核设施有关联。对特定企业的针对性是Stuxnet与传统高级持续性威胁的主要区别。

我们通常都会联想到高级持续性威胁,例如针对谷歌、Adobe、Juniper、Rackspace等的Aurora攻击,这种攻击利用了相同的零日IE漏洞,对多家企业部署了相同的技术以试图窃取源代码。

而另一方面,Stuxnet是一种非常复杂、资金充足、定制设计的攻击,显然是为了扰乱伊朗浓缩铀的生产的单一目的。如果说高级持续性攻击时针对某一范围内多个目标的机枪的话,那么,Stuxnet就是热敏GPS定位导弹。

安全研究人员研究了抵御Stuxnet的潜在抵御措施,他们创建了一个模拟核电厂网络,配备了Stuxnet在2009年和2010年初发动攻击时当时最优秀的安全防御工具。随后,这些研究人员分析了Stuxnet使用过的每个感染、传播和隐藏的切入点,来确定这些最佳措施是否能够阻止这种恶意软件的感染。

他们的结论是:“不行,以现在的部署情况,不能真正防止这种类型的攻击。”但是这些研究人员提出了一些建议:不要专门针对这些危险,应该将重点放在企业的漏洞上。

USB驱动器是第一个教训。可移动驱动器感染是非常常见的。恶意软件被放在USB驱动或者外部移动硬盘中,在电脑间传播。Stuxnet这种类型的攻击更加致命的原因在于它使用了零日快捷漏洞,这就不需要任何用户间的交互,只需要将驱动插入电脑。

针对这个问题的最佳防御手段就是可移动存储设备安全软件,很多安全供应商都供应这种安全软件,能够防止未知或未经授权USB驱动、CD/DVD、移动硬盘、数字音乐播放器等接入或者载入电脑。这些工具应该通过公司政策来强制执行,政策应该明确规定可移动存储设备是否能够用于特定计算机或者特定用户。

第二个教训就是传播。Stuxnet依赖于网络漏洞,将其自身藏在WinCC项目文件中以确保能够在指定时间内被执行。这种类型的传播需要工作站间的点到点通信。

你可以通过使用托管防火墙过滤潜在危险的流量来阻止这种类型的传播,,例如让一台计算机直接与另一台计算机通信的服务。Stuxnet利用了一个漏洞来从工作站A向工作站B发送精心设计的RPC信息,导致它执行代码下载恶意软件。如果工作站B部署了防火墙来防止入站连接的话,这种攻击就会失败。

第三个教训是身份验证。Stuxnet使用的Windows rootkit做的事情是整个安全行业从未见过的,它利用来自合法公司的合法证书来让windows驱动程序来掩盖其身份。

Stuxnet并不必担心其代码与其他恶意软件使用的所有复杂的技术混淆,如果你是一个管理员,你会怀疑WindowsSystem32文件夹下名为MrxNet.sys由RealTek编写,有合法证书的文件吗?

 你现在可以做的就是使用文件哈希和更改管理工具(例如来自Tripwire公司用于检测这些“隐藏在众目睽睽之下”的技术)。当一个新的驱动程序被安装时,监测关键windows驱动程序文件夹的更改管理工具会发出一个警告。如果这种安装并不是你的指示,那么可能是有人在没有按照更改管理程序来操作,或者更糟糕的情况,例如Stuxnet。