独家连载 | 零日漏洞:震网病毒全揭秘(29)
作者: 日期:2015年10月21日 阅:3,015

640.webp

事实证明,将关键系统远程接入因特网,会带来显而易见的安全隐患。但是震网却揭示了更为可怕的场景……

第九章 工控系统失控(接上)

2010年8月关于震网病毒破坏西门子公司PLC的新闻,引起了德克萨斯州奥斯汀市一位25岁计算机安全研究员的兴趣。这位研究员名叫迪龙•贝雷斯福德(Dillon Beresford),他和其他大多数人一样,从来没听说过PLC,特别想看看PLC到底能有多脆弱。因此,他从网上买了几个西门子公司的PLC。接下来的两个月,他就躲在鸽子笼公寓的卧室里研究、测试。幸运的是,他只用了几个星期就发现了几个可以用来攻击的漏洞。

比如,他发现程序员计算机和PLC之间的所有通信都是非加密的,所以任何攻入网络的黑客都可以在代码由计算机向PLC传输时,看到代码并把它复制下来,之后再根据自己的意图将修改后的代码发往PLC,实现操纵等目的。如果PLC拒绝非授权计算机向其发送命令的话,这种情况将不会发生。但是,贝雷斯福德发现,PLC会无原则的接受任何用特定协议“说话”的计算机发来的命令。PLC甚至不要求命令发送方“加盖”用来证明其来源可信的数字签名戳。

虽然在安装Step 7的计算机和PLC之间会有一个身份验证包和某种密码,但贝雷斯福德可以在3小时以内就把这个密码破掉。他还发现,居然可以通过在通信过程中简单抓取身份验证包,并在自己发送(伪造)命令时重放验证包的手段,轻松绕过这个安全机制而免去破解密码的麻烦。此外,一旦控制了某个PLC,就可以发布修改密码的指令,从而把合法用户拒之门外。

贝雷斯福德还发现了其他的漏洞,包括西门子公司的程序员在PLC固件中有意留下的后门。比如,供应商经常会在产品中留下一个硬编码的密码,以便于在用户出现麻烦时,自己可以远程登录并提供帮助,就像是给控制系统产品加装了“安吉星”(OnStar,通用公司为汽车提供远程协助和远程控制的一种服务系统)。但既然供应商可以利用后门,攻击者又何尝不可?进入西门子所有系统的预留后门,用的都是同样的用户名和密码:basisk。这个数据硬编码在固件上,任何一个有些手段的人都可以设法看到。利用这个高权限后门,攻击者可以删除、修改PLC上的数据,甚至向PLC发出指令,破坏任何受其控制的设备或进程。

贝雷斯福德把他的发现报给了正与西门子公司合作修复系统漏洞的ICS-CERT。但是,并非每个漏洞都有办法修复。有些问题,比如命令非加密传输、缺乏强有力的安全认证机制等,属于系统底层构架的问题,而非程序代码中的错误(bug)。要解决这些问题,西门子公司必须更新系统固件,对于某些系统而言甚至必须重新设计。而且,这些问题并非仅仅存在于西门子公司的产品中,而是普遍存在于市面上大多数控制系统产品中。这些问题可以成为“前互联网时代的遗产”——那时候设备所处的网络环境是孤立的,因而不需要考虑外部攻击的问题。

一直以来,控制系统供应商和关键基础设施业主认为,要对控制系统发起攻击,必须掌握与PLC相关的大量知识和丰富经验,因此,系统是相对安全的。但是,贝雷斯福德的发现,颠覆了他们的认识。他只花了2万美元在网上买了一些二手设备,然后花了2个月的业余时间来研究,就在PLC里面找到了这么多漏洞,并掌握了利用漏洞进行攻击所需的全部技能。

在贝雷斯福德之后,又有众多研究者发现了西门子和其他公司多型产品的更多漏洞。关键基础设施安防系统制造商伍泰安全(Wurldtech Security)创建的控制系统漏洞数据库显示,2008年以来,共有超过1000种控制系统漏洞和控制系统协议漏洞被发现。其中,大多数漏洞仅能让攻击者造成“操作人员无法正常监视”的效果,也有一些漏洞一旦被利用,将产生更严重的后果。

2011年,南加州某公共事业公司专门聘请了Mocana安全公司,对其变电站控制系统的安全性进行评估。结果发现,系统存在多个漏洞,攻击者可以借此控制变电站的设备。“我们之前从来没接触过这种设备,但是在一天之内就发现了这么多漏洞,”公司副总裁库尔特•斯坦姆伯格(Kurt Stammberger)说,“这是非常严重的问题,坦白的说,至少一年半之前这些问题就已经出现了,可是却没人注意。”

由于控制系统的寿命长达数年、又缺乏像通用计算机那样定期打补丁的安全机制,控制系统的安全问题越来越突出。一台普通台式计算机的生命周期约为3-5年,到时间就会换新的。但控制系统的寿命可以长达20年。即使旧系统被换掉,新系统仍然要具备跟其他设备通信的能力,这样一来,旧系统中固有的安全漏洞也被继承下来。

再来看打补丁。有些控制系统运行在已无法从微软得到技术支持的老旧Windows版本上,这意味着,如果发现新的漏洞,根本没有补丁可打。退一步来说,就算有补丁可用,也往往会被搁置一旁。因为,一方面,操作人员害怕打了补丁之后,系统会运行不稳定;另一方面,打补丁或者进行其他安全配置需要花上几个小时,而控制系统及受其控制的进程(往往是公共事业服务)却不能轻易暂停。

此外,随着越来越多的供应商将安全系统和控制系统打包在一起,新的问题又出现了。过去,安全系统是与控制系统分别配置的硬件模拟系统,这样,即使控制系统出现问题,也不会影响到安全系统紧急关闭设备和进程的能力。但是,现在供应商们把安全系统和控制系统集成到一起,使得一次攻击同时瘫痪两个系统成为可能。

其实,控制系统中的很多漏洞都可以通过“物理隔离”的方法解决。也就是说,让内网无法与因特网连接、也无法与可能连接因特网的其他系统连接。但实际中,这一点往往很难实现。

2012年,一名英国的研究者就曾经用一种专门定位网络电话、智能电视和控制系统等设备位置的特殊搜索引擎“撒旦”(Shodan),发现至少有1万个控制系统存在与因特网的连接。这些控制系统分别来自水净化厂、大坝、桥梁和火车站。

2011年,一位名叫pr0f的黑客在网上搜到南休斯顿地区的某个西门子控制系统之后,成功侵入某水厂的控制系统。虽然系统有密码保护,但密码只有3位,一下就被他猜中了。“很遗憾,这根本不是什么高级持续性威胁之类的高大上攻击,”他对记者说,“坦白的讲,我所看到的多数情况都是由于(遭入侵方的)无知和愚蠢、而非攻击者有多大本事造成的。”进入工业控制系统之后,pr0f对水槽布局图和数字控制系统界面进行了截图,并没有实施破坏行为。“我不是没头脑的汪达尔主义者(故意破坏他人财产的人)。那样做很愚蠢。”他在一封网上发布的信中写道,“把安装着工业控制系统的计算机接入因特网的人,是不是更愚蠢呢。”

更可怕的是,工业控制系统中的很多现场设备,要么直接接入因特网,要么与因特网之间只隔着一个调制解调器或一道默认口令。比如,用来控制电网开关和断路器的口令就是默认的,这样一旦出现紧急情况,工人就能马上想起来、不至于忘记。出于同样理由,控制系统不会像标准IT系统那样,为防止有人暴力破解密码,而设置“连续输错密码N次自动锁定”的功能。因为,没有人希望看到,在某种紧急状况下,操作员却由于输错几次密码而被彻底挡在系统之外。2011年,马克•梅弗雷特(Marc Maiffret)带领一个测试团队渗入了南加州某水处理厂的远程控制系统,并获得了用于向饮用水中添加化学物质的设备的控制权。整个过程用时不到一天。梅弗雷特说,只须再向前几步,就可以把大量化学物质倒入水中,让水变得无法饮用。

事实证明,将关键系统远程接入因特网,会带来显而易见的安全隐患。但是震网却揭示了更为可怕的场景。攻击者无须远程接入目标,只须让精心设计的蠕虫利用U盘在不同计算机间插拔就能实现传播,通过将恶意代码嵌入工程师用来对PLC编程的项目文件即可实现感染。2012年,智能电网控制系统制造商加拿大特尔文特公司(Telvent Canada)就曾遭到黑客入侵。入侵者盗取了该公司生产的工业控制系统的项目文件。美国很多石油、天然气和水利系统中所使用的,正是这些系统。特尔文特公司对用户系统进行管理的,也正是这些项目文件。虽然公司没有声明攻击者是否对这些项目文件进行了修改,但这次事故充分表明,攻击者可以通过渗透类似特尔文特这样的公司、并感染其产品项目文件的途径,对石油、天然气管道发起攻击。

对于关键基础设施而言,直接入侵计算机网络并非唯一风险源。有证据表明,曾有利用电磁脉冲手段干扰工业控制系统和现场设备的事故发生。1999年11月,一艘正在距圣迭戈海岸25英里处进行训练的美国海军舰船上的雷达系统,对附近沿海某地区的水利和电力基础设施的控制系统无线通信网造成了干扰。这让工人们无法对水管中的阀门进行开启和闭合操作,只好派技术人员到偏僻的现场去进行手动操作,以避免水库溢出事故。电磁脉冲干扰还曾经在20世纪80年代引发一起天然气爆炸。当时,荷兰登海尔德军港附近的某个海军雷达系统,干扰了用于控制天然气管道开关阀门的控制系统无线通信网,造成管道爆炸。(待续)

译者:李云凡

 

关键词:

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


相关文章