2015年冬天,乌克兰西部突然陷入黑暗,某州一半的人口失去电力供应。自从爆发局部冲突以后,停电已经是乌克兰人民最常见的“娱乐形式”,但这次却和以往有所不同:幽灵般的黑客潜入了电力供应系统,在千里之外切断了电网。
黑客进攻工业网络,这个可怕的梦魇终于扑向了现实。许多国家都三观颠覆,胆战心惊。他们要搞清的第一件事就是:这样的攻击究竟是怎么成功的?
美国网络情报公司 iSight Partners 最先拿到了攻击程序样本,并且从各种渠道流传出来。王得金拿到样本的时候,是事件发生的十天以后。王得金是一名工控安全专家,安全公司知道创宇旗下404实验室成员,他为雷锋网详解了这个攻击工具的奥秘。
造成了一百万人断电的元凶,是一个看上很普通的excel文件。然而你一旦打开它,就会亲手把魔鬼从瓶中放出来。它会悄无声息地释放一个下载器,前台风平浪静,后台却在暗流奔涌——全速下载一套凶残的攻击程序。
【excel攻击文件截图 提示“由新版本 Office 创建,需要加载宏才可以查看”(截图由微步在线提供)】
这个攻击程序就是臭名昭著的“暗黑能源”——专为破坏工业控制系统量身定制的武器。有证据表明俄罗斯人曾经使用这个工具攻击过北约、波兰和乌克兰。
王得金发现:为了逃脱查杀,有人在攻击前一个多月对它进行了最新的变种编译。这一版的“暗黑能源”中整合了数十个强大的木马和病毒,其中包括“杀盘”(Killdisk)——一个可以删除电脑中所有数据和引导信息的病毒。
这些木马病毒侵入了核心输电系统,合力切断了电网。并且由于磁盘全部被破坏,系统根本无法重启,以至于电网用了3-6小时才得以恢复运转。
有证据显示,黑客还同时攻击了乌克兰多个电网节点,但是并没有达到预期目标。也就是说,他们原本的计划,比实际呈现出来的效果还要凶残。更可怕的是:直到现在都没有人可以判断,究竟是什么组织进行了这次攻击。也就是说,黑客造成了如此巨大的破坏之后,居然还可以全身而退。
那么问题来了:如此可怕的攻击,是否会发生在中国呢?
有基本操守的国家都会对电力、能源等重要网络实行物理隔离。这些网络根本不会和互联网连通,仅仅通过远程渗透是无法进入的。然而事实证明,这并不妨碍美国黑客用“震网”病毒干掉了伊朗的核电站,也没有阻挡来路不明的组织撂倒乌克兰电网。
【时任伊朗总统内贾德视察核电站,红圈内的红点表示有两台离心机已经无故损坏,后证实为震网病毒所为】
他们是怎么做到的呢?
从伊朗的情况来看,美国把震网病毒放置在了某个核专家的U盘之内,而这位核专家也许为了方便,把U盘连到了核设施内部网络的主机上。业内“黑话”把这种行为称作“摆渡”。至于这个病毒是怎么进入专家的U盘之中,众说纷纭,其中最有趣的版本是:美国间谍在核电站周围撒了众多精美的U盘,而这位专家恰好捡到一个。(这是一个教育我们不要贪小便宜的故事。)
可见,工业系统很难和外界完全隔离,因为总会有人有意无意破坏规则。而一旦发生违规操作,就会使得所有的隔离失去效果,破坏程序会抓住转瞬即逝的机会把自己“摆渡”进去。
【CNN展示:黑客通过入侵工控网络,让设备过载起火】
像这个视频中展示的一样,如果黑客进入了工业生产网络,就可以直接让设备过载报废。但这只是最没有技术含量的一种玩法。
理论上来说,恶意程序一旦进入工业或军事系统,就可以任意修改其中的指令,
如果进入工业生产网络,可以提高载荷造成机器毁坏,甚至可以关闭防护系统造成人员伤亡;
如果进入能源系统,可以切断电力的供应,甚至改变炼油厂的工序,造成爆炸;
如果进入水利系统,可以控制水坝的开合;
如果进入军事系统,可以控制导弹的发射。
这么可怕的场景,是否真的会发生呢?
雷锋网走访了数位工控专家,他们普遍认为中国电力行业的安全防护比较到位,不仅在网络隔离防护方面做得较好,而且全中国的电网分布层级众多。即使黑客有能力打瘫一个节点,也不会造成大面积断电事故。
绿盟是一家专长于工业领域的安全公司,它的客户包括很多电力企业。其威胁分析系统产品经理刘弘利告诉记者,在第一时间他们也拿到了乌克兰电网攻击的excel文件,在自己的防御系统上运行,结果系统提示:这个文件存在高危风险。他解释说:
因为这只是个excel文件,它却反常地试图生成另一个文件。另外,分析系统还在其中测出shell code(利用漏洞的代码),因此判断它存在危险。一旦发现了高危文件,防御系统就可以对恶意程序的行为进行阻断,防止它进行下一步的攻击。
【绿盟的检测系统认为这个excel文件为高威胁文件】
原来,乌克兰电网被攻击,要怪他们没有采购天朝的工控安全系统咯。
不过,让人遗憾的是,中国这些先进的技术并没有武装大多数本土企业。普遍来看,中国工业的安全程度让人“目不忍视”。
【全球及我国(含台湾)暴露在Internet上的工控设备统计表】
一般来说,企业的内部网络分为两部分:工业生产网络和生产监控网络。从安全角度考虑,这两个网络都不应该和互联网相连通。但通过对中国所有连接到互联网的设备进行扫描,王得金和团队发现,有诸多和工业相关的设备竟然毫无隐藏,直接暴露在互联网上。即使一些工业网络表面上实现了隔离,也存在诸多漏洞:
一些生产监控所用的摄像头,和其他工业监控设备处在同一个隔离网络中。但问题在于这个监控摄像头连通了Internet,所以实际上把整个监控网络都“牵连”了出来。与此同时,生产网络和监控网络大多需要进行数据交换,这就使得黑客可以通过摄像头进入监控网络,最终进入生产网络实现破坏。
王得金描述了这样一条隐秘又有效的进攻路径。
【黑客通过监控摄像头入侵工控网络】
对于很多企业来说,黑进他们的工业生产网络比想象中还要容易。
那么,让企业重视工控安全真的有这么难吗?一位在工控安全领域从业多年的业务经理这样吐槽:
实际上,大多工业掌握在国企手中。很多企业的领导人并不认为自己会成为敌对势力的进攻对象。他们要做的就是“不求有功,但求无过”。给自己的工业生产添加安全系统并不是他们的选择。
其实,企业这样选择也有充分的理由:工业生产的首要任务就是稳定,任何扰动或者升级都可能带来意想不到的后果。如果是民用的电脑,升级之后出现bug还可以想办法修复,甚至重装系统。而生产线系统要求非常精密,连轻微的卡死都可能造成无法挽回的事故。
所以,什么“小步快跑,快速迭代”根本不适用于工业控制系统。对于工控来说,最好能一个系统用到地老天荒。
你可以看到很多企业的生产系统还在用Windows 2003系统,运气好的话甚至还可以见到跑Windows 98的系统。对于这样的系统,用弱不禁风来形容丝毫不为过。甚至拿一台外部电脑和它建立连接,它都会“一命呜呼”。
面对如此脆弱的工控设备,目前能够实现的保护大多是在生产系统外围进行安全加固,这种模式的问题在于:一旦黑客成功突破外围防护,就可以一路直捣黄龙,几乎必然造成损失。
王得金给雷锋网展示了一段视频。用黑客手段侵入工业逻辑控制器中,可以随意对工业生产流程进行更改:
【黑客入侵工控设备的演示】
看到这里,你一定会得出这样的结论:中国大多数工业网络安全措施非常落后,但是有关国计民生的能源、电网因为隔离措施做得较好,还是比较安全的。
然而,事实真的是这样吗?
中国最早的黑客之一、工控安全界的元老级人物魏强(Funnywei)提出了一个让所有人菊花一紧的设想。
先补充两个惊悚的背景资料:
1、中国没有能力制造精密的数控机床和工业控制器,工业中用到的逻辑控制器95%是来自施耐德(法国)、西门子(德国)、发那科(日本)等的国外品牌。
2、中国没有能力制造尖端的控制芯片,英特尔、高通、博通、德州仪器等有能力设计生产芯片的企业,无一例外全部属于美国。
【发那科(日本)机械臂生产车间】
魏强说:
一块小小的芯片,有十几亿个晶体管,制程是以纳米计算的。甚至在那么小的电路板上会有七层印刷电路,想破解芯片的结构是几乎不可能的。如果美国企业在芯片中多设了一个引脚,安插一个后门,我们几乎不可能发现。甚至一个后门可以分成数个,分散在代码之中,我们完全没有能力察觉。
另外,为了实现更多的功能,现在芯片越来越多地具有了自主连接蓝牙、Wi-Fi等无线网络的能力。在理论上可以实现远程改写代码。
如果果真如魏强猜测的那样,那么以下的推论就能够成立:
1、法国、日本等数控机床和控制器生产国,通过自家的后门可以得知机床生产零件的G代码(进而可以得知零件的参数和用途),并且可以随意对生产设备进行改动。
2、美国可以对所有使用美国芯片的设备(包括工业控制器)进行控制。
3、一旦发生战争或严重的对立,以上的遏制措施可以短时间内建立。
4、由于芯片带有无线通讯功能,即使设备不联网,破坏活动也可以由设备附近的特工通过无线电完成。
这个设想并不是没有佐证,君不见,2003年美国进攻伊拉克的时候,让伊拉克引以为傲的飞毛腿导弹命中率为0。
这个推测在软件层面同样成立。
工信部可以进入IBM看任何一行代码。
这是2015年IBM副总裁米尔斯为了向中国销售其产品所做出的承诺。但即使每一行代码我们都进行审计,也不可能排除在硬件层面的不可靠性。很多情况下我们购买进口工业软硬件,并不是因为他们的话语真诚,而是我们别无选择。
当所有工业和国防都建立在不透明的黑盒子组成的体系之上,没有人可以证明这个供应链的可靠性。纵然在和平年代一切看起来按部就班,红红火火。但是一旦进入战争状态,世界可能在一瞬间就变成了你不认识的样子——之前所构建的一切工控安全体系,都有可能在降维打击之下变得不堪一击。
【美国F-35战机】
王得金告诉记者:“美国对于军工产品生产要求极其严格。例如F-35,连一颗螺丝钉都不允许在美国以外生产。”反观中国,很多导弹所使用的芯片却都是美国进口的。连圆珠笔珠都做不出来的中国,不知什么时候才能有底气说出和美国同样的话。这就是龙芯、飞腾、兆芯的科学家们拼死也要研制出“中国芯”的原因。
然而,芯片的国产替代谁心中都没有时间表。面对现状,魏强提出了一个无奈但是有效的解决方案:
同一个生产流程,采用多套预备系统,分别采用不同国家的控制器,不同的操作系统、不同的软件逻辑。在这种情况下,机器的每一个动作都需要三套控制系统进行表决,如果有一套系统被攻击,给出异常的数据,那么它就会被表决踢出局。即使出现极端的情况:三个系统都遭到攻击,产生的结果全不一致,此时会自动调用备用系统。备用系统可以是一套隐藏系统,平时处于静默状态。攻击者根本感觉不到这套备用系统的存在,从而无法预先进行攻击。这就是所谓的“异构冗余”系统。
这种“异构冗余”系统的实质就是:在一堆不可靠的部件之上,构建出一个相对可靠的体系。这个体系有一个明显的缺点,就是需要增加大量的投资。不过魏强说:“核心工业的价值非常巨大,用这些投资来换取安全系数的增加,是非常划算的。”
【搭载龙芯的工业用主板】
黑客让乌克兰一百万人陷入黑暗只用了一秒钟;我们为了不让这“一秒钟”成为现实,却不知道要经过多少年。但相信终有一日,我们可以放弃“权宜之计”,用自主的芯片和世界平等对话,用真正的工业安全“逐黑客于漠北”。
2016,距离“智能制造2025”还有九年时间。对于我们的目标来说,九年的时间并不充裕。