黑客大曝光:工业控制系统安全(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-19 00:41:44

点击下载

作者:(美)克林特E.博顿金(Clint E.Bodungen)

出版社:机械工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

黑客大曝光:工业控制系统安全

黑客大曝光:工业控制系统安全试读:

前言

黑客大曝光—工业力量

毫无疑问,本书沿袭了《黑客大曝光》系列书籍的一贯风格。无论称之为渗透测试(penetration testing或pentesting)、道德入侵(ethical hacking)还是红队测试(red team testing),本书主要从攻击的角度研究网络安全问题。而且,在本书中,我们主要研究工业控制系统(Industrial Control Systems,ICS)的网络安全(不管读者喜不喜欢,主题已经剧透出来了),根据情况也可以称之为in-security。注意监控和数据采集系统(Supervisory Control and Data Acquisition,SCADA)、工业控制系统(ICS)以及运营技术(Operations Technology,OT)都是最近在提到工业系统时常用的“万能”术语。如果真想深究营销术语,还可以将工业物联网(Industrial Internet of Things,IIoT)添加进去。不过,先将这些热门词汇抛在一边,除了很多其他的行业术语,例如:过程控制域(Process Control Domain,PCD)、过程控制网络(Process Control Network,PCN)、过程控制系统(Process Control System,PCS)、集散控制系统(Distributed Control System,DCS)等,还有监控和数据采集系统(SCADA)以及工业控制系统(ICS)也都旨在描述工业系统特定但又互不相同的方面。但是,这两个术语经常被错误地互换使用。有鉴于此,为了简单起见,本书中我们使用“工控系统”(ICS)来指代工业系统的所有方面,即便我们知道这个术语未必在每种场合下都是正确的。

渗透测试……确定要在工业控制系统中进行吗

从传统角度来讲,当从“红队”或者说从攻击角度来讨论工控系统网络安全时,通常会遭到持怀疑态度并且忧心忡忡的工业资产所有者和运营人员的强烈排斥。从“蓝队”或者说从单纯的防御角度已经出版了若干本内容翔实的工控系统安全图书,然而在我遇到的来自不同工业部门的人员中,还是有人认为那些详细介绍“工控系统入侵”(ICS hacking)技术的图书压根儿就不该出版。这一“理论依据”主要是源自于这样一支思想流派:他们认为类似的信息(甚至包括向部分人士披露有关工控系统的漏洞)都应该妥善保管起来,只有特定的专业团队还有信息共享和分析中心(Information Sharing and Analysis Centers,ISAC)才能够获取这些信息。这一方法也被看作是一种阻止黑客获取敏感信息的努力。因为很多人担心这类信息会帮助黑客们制订工控系统攻击方案或者“入侵攻略”。而细究起来,这种“策略”其实是“不公开即安全”(security through obscurity)的另一种形式,IT社区早在20年前也是这样的心态。这也正是整个行业中工控系统安全的领军人物经常说“工控系统的安全落后于其他行业十多年”的原因之一。

但是,真相是黑客们已经知道了这些信息,或者最起码知道如何获取这类信息,不论业界已经尽了多大努力来隐藏它们。不管用户喜不喜欢,通过主流的隔离措施与不公开的方法已经难以实现对工业系统的保护。正所谓木已成舟,已成定局。既然攻击者已经知道了工控系统和SCADA系统的存在,并且了解了它们的重要性,而且坦率地讲,攻击者也清楚它们到底有多脆弱,那么自然会对开展攻击燃起狂热的兴趣。事实上,与资产所有者以及运营人员在学习入侵技术以及如何实施入侵方面所付出的时间相比,黑客们往往花费了更多时间来学习工控系统,以及如何入侵这些系统。支撑这一发现的证据可以从世界各地众多“黑客”大会的会议日程中清晰地看到,例如著名的Black Hat和DefCon,而这只是其中的两个会议。事实上,大多数安全会议现在都会开辟出特色鲜明的“工控系统小镇”,让与会者可以体验一把工控系统设备的入侵。无论读者是否相信,工控系统入侵正在迅速成为主流话题。实际情况是,限制该类信息的获取不仅难以阻止黑客们获取信息,反而阻碍了真正需要这类信息的人们获取信息(工业资产所有者以及运营人员),更不要说工业社区中已经共享了大量关于安全事件和漏洞的信息。然而,关于工控系统漏洞利用以及入侵技术的重要信息往往会被忽视。

为什么了解攻击技术这么重要?简言之就是,如果能够像攻击者一样思考,并且了解其做法,那么就有更多的机会阻挡攻击者的入侵。想想看,以读者最喜欢的运动为例(无论是团队的还是个人的),是否有人在不了解对手攻击方式的情况下就踏上赛场?当然了,肯定会有这种情况,但是在这种情况下,通常是场有利于对手的一边倒的比赛。在对对手的攻击策略与攻击方法一无所知的情况下,实施针对攻击的有效防御是相当困难的一件事。在工控系统网络安全领域中也是这样。对攻击、漏洞利用和恶意代码感染的方法与技术细节越了解,有的放矢地开展防御就越准确、越高效,性价比也越高。考虑一下,下面哪种方法听起来更加高效、性价比更高?

1)以“层次防御”以及网络安全标准合规性的名义,尽可能多地尝试采用一揽子“最佳实践”。

2)对于经过验证得出的的确存在漏洞的地方,根据其潜在影响的严重程度进行优先级排序,针对最有可能面临的威胁部署相应的对抗措施。

如果回答是“1”,那么恭喜啦,因为你肯定拥有巨额的网络安全预算还有大量合格的工作人员!但是即便如此,仍然需要针对试探性的攻击威胁构建安全保障网。

对于存在合规要求的某一行业来说,合规性通常是其实施和改进网络安全控制措施的唯一强制驱动力,其预算往往捉襟见肘,即便如此,聘请渗透测试人员仍会体现出巨大的价值。事实上,预算不足正是渗透测试的用武之地。在结合适当的风险评估过程(详见第2章)使用时,渗透测试(详见第4章)与威胁建模(详见第3章)相结合的方式能够提供更有针对性而且更加高效的风险管理策略。由于具备同恶意攻击者一样的技术水平和知识储备,渗透测试人员能够帮助验证潜在威胁是否确实会对系统构成巨大风险(同只采用传统的风险评估方式相比具有更高的准确性)。这些信息有助于改进风险缓解策略、明晰目标资源中需要关注的重点、确定可以“接受”哪些风险,从而降低对目标资源(金钱、时间和人力)的影响。提示很多人不会立即将渗透测试和威胁建模关联起来。但是,渗透测试人员在网络攻击方法方面所具备的经验与知识储备在威胁建模过程中确实是非常宝贵的资源。

当谈到工控系统的可用性、正常运行时间以及功能安全时,(由于渗透测试通常具有主动性和侵入性的特点)往往会存在一些对渗透测试的偏见。如果未经规范培训的测试人员没有采用能够保障工控系统安全(“ICS safe”)的测试方法,这种担心确实不是空穴来风。很多在IT系统中没有危害的渗透测试方法可能会在工控系统环境中出现副作用,以至于给安全与生产带来风险。甚至非常简单的测试方法,比如端口扫描在工控系统环境中通常也是禁止的。

所以,如何应用渗透测试来保障工控系统安全呢?首先,本书将教会读者在不影响生产系统的前提下,如何应用针对工控系统的渗透测试方法与技术。其次,我们意图展示如何通过以基于威胁建模的方法应用渗透测试知识,甚至在无须开展主动渗透测试的情况下,制订出更加高效(以及性价比更高)的风险缓解策略与部署方案。

本书所涵盖的内容

无论是作为工控系统渗透测试指南还是用于离线威胁建模,本书旨在帮助读者了解攻击者所具备的“攻击性”知识,使读者在风险管理方面所做出的努力具有更高的准确性与性价比。我们在这里使用术语“管理”的原因在于风险缓解并不总是最优的选择。在某些情况下,最优的解决方案可能只是降低、接受或者转移风险。

依据若干工业安全标准所提出的要求,必须开展渗透测试,而且渗透测试也应该成为每个风险管理项目的一部分,但我们的本意并不是为具体的工控系统网络安全标准提供“合规性”指南。本书也无意于作为工控系统风险缓解或管理技术的专用指南。正如前文提到的,从这一角度出发已经出版了很多书籍,因此没有必要再进行重复。而我们将要分析研究的风险缓解技术以及对抗措施则与本书中介绍的攻击方式与策略密切相关。

我们将会讨论在CVE以及ICS-CERT公告中已经公开披露的几个漏洞及其众多技术细节,还有相关的漏洞利用技术。但是,在工控系统厂商以及其他业界成员开始提心吊胆之前,需要指出的是我们不会披露0-day漏洞(未公开漏洞)与漏洞利用工具。本书中所讨论的全部内容都可以采用各种方式公开查询得到。我们所做的仅是对其中部分CVE与ICS-CERT公告进行剖析和研究,以展示如何开展针对工控系统设备、应用程序与环境的渗透测试、脆弱性研究以及威胁建模。

本书也不打算对工控系统或者通用渗透测试方法进行全面介绍。但是,当我们认为出于功能所需并且与上下文相关时,将会提供辅助资料,或者在需要进一步指导或者额外信息的事件中指明正确的方向。例如,部分读者可能并不了解工控系统环境的运行机制,所以本书将从较高的层面对工控系统进行有一定深度的基础介绍,以帮助读者理解本书的内容。(那些对工控系统已经有深入了解的读者可以忽略这部分内容。)类似地,还有部分读者可能对渗透测试的基础内容不太熟悉,对此本书也提供了大量关于传统渗透测试方法的参考资源,涵盖了从基础入门到高级技巧的所有内容。

我们的总体目标主要关注于本书各主题所涉及的同工控系统有关的细节。放心好了,对于想要进一步获取本书未涉及的细节以及指导的读者,我们也提供了资料、链接,以及参考文献以供读者进行更深入的了解。

本书面向的读者

本书可以作为对工控系统网络安全感兴趣的读者的参考用书,但是,最终本书面向的对象是对工控系统有关的脆弱点、威胁或威胁建模,以及渗透测试技术等技术细节感兴趣的读者,包括:·承担针对工控系统的渗透测试项目,以及希望了解工控系统渗透测试技术的渗透测试人员·监控工控系统网络的网络安全分析人员·工控系统网络安全威胁情报分析人员·致力于工控系统相关设备与应用程序漏洞挖掘的研究人员·研发适用于工控系统设备、应用、网络产品的网络安全产品开发商·工控系统厂商·对工控系统渗透测试技术感兴趣的网络安全爱好者以及渗透测试人员

其他对本书感兴趣的读者群体包括:·工控系统资产所有者以及负责招聘渗透测试团队的管理人员·工控系统资产所有者以及负责工控系统安全团队的管理人员

虽然这些读者群不需要知道工控系统渗透测试过程中的所有技术细节,但是他们应该对工控系统网络安全威胁与渗透测试技术有一个大概的了解。

本书的组织方式

在学习本书的过程中无须逐页阅读。例如,对工控系统环境已经非常熟悉的读者可以跳过第1章。渗透测试人员则可以直接跳到与其当前测试内容有关的具体章节。不过,书中每个主题的安排顺序均同现实中渗透测试项目的实施流程相一致。所以,为了了解工控系统渗透测试的全过程,从头开始逐页阅读也是个不错的选择。资产所有者以及管理人员也可以采用这种方式,来获取对整个工控系统渗透测试和威胁建模过程,以及各组成部分的完整认识。

本书的每一部分都会安排案例分析。这些案例分析虽然是虚构的,但是其背后蕴含的内容都是由可行的事件所组成的,将这些内容组合起来可以构成一个完整的场景。故事中涉及的特定行业、系统以及装置设备的细节并未明确描述,所以来自不同行业的读者都可以从中找到与自己行业似曾相识的感觉。在阅读这些案例分析时,读者可以尝试着将自己带入工控系统安全专家的角色,看看自己能否找出故事中的机构、人员所犯下的错误,正是这些错误最终导致了信息泄露以及入侵攻击。关于这些案例分析中用到的方法、技术的参考文献和技术细节可以在每个案例分析的结尾位置或者案例分析所在的章节中找到。对抗措施在全书都可以找到,也可以在第三部分找到。

第一部分(第1章至第3章)主要包括从较高层面构建渗透测试项目的相关内容,为后续内容做铺垫,并对工控系统、风险评估以及威胁建模过程进行了简短概述。

第二部分(第4章至第8章)深入介绍了工控系统渗透测试过程中的细节。首先对工控系统渗透测试策略进行了概述,然后以《黑客大曝光》式的风格介绍了细节、技术以及实例。为了更详尽地涵盖工控系统渗透测试技术的方方面面,我们对工控系统设备、应用程序以及协议中最常见漏洞类别中的部分样本进行了分析。每类都表示若干种相关的、现实中已经披露的漏洞,包括与之关联的ICS-CERT公告。本着渗透测试的“完整性”原则,本书就工控系统漏洞研究进行了高级进阶内容的入门介绍(再提醒一下,书中未披露现实中存在的任何0-day漏洞)。由于恶意代码迅速成为工控系统安全中的一个重要主题,所以我们对工控系统恶意代码也进行了分析,并介绍了其实现机制及对抗措施。

第三部分(第9章和第10章)主要通过研究工控系统网络安全策略来形成风险评估过程的闭环,但是仅仅涉及了本书中讨论到的攻击技术。正如前文所述,已有大量内容对工控系统网络安全对抗措施进行介绍,我们会在适当的位置做出提示帮助读者获取相关信息。本部分的目标是帮助读者针对攻击采取正确的响应与对抗措施。因此,为了便于参考,针对各自章节攻击方式所提出的对抗措施也均会进行相应的总结。

最后,第四部分的附录中包含了术语表以及在风险评估、威胁建模及渗透测试项目中卓有成效的流程图和图表。

各章概述

下面是对各个章节的概要,分别对各章节的内容进行了简要介绍。

第一部分 做好准备:工业控制系统渗透测试就位

第1章 工业控制系统安全概述

从较高的层次简短介绍工控系统架构、组成部分、功能以及术语等方面,读者能够获取到理解本书概念所需的基本工控系统知识。

第2章 工业控制系统风险评估

就如何在工控系统风险评估过程应用本书内容以及如何根据环境开展工控系统渗透测试提供了一个简短的高级指南。

第3章 通过威胁建模获取具有可操作性的工业控制系统威胁情报

虽然数十年来术语威胁情报(threat intelligence)在情报界一直是个不可或缺的概念,但是在工业界中则是最近才流行起来的一个时髦词汇。本章讨论了如何利用威胁情报以及如何利用获取的相关资源对工控系统风险管理策略进行改进。

第二部分 工业控制系统入侵

第4章 渗透测试策略

为了得到准确、符合实际的结果以及保护运营过程的功能安全,必须拟定合适的工控系统策略。本章主要基于现实的风险场景讨论工控系统渗透测试策略,并就避免对工控系统生产环境造成影响的方法与步骤进行了概述。

第5章 工业控制系统协议攻击

本章详细介绍了在常见工控系统协议中发现的漏洞以及与之对应的漏洞利用技术。

第6章 工业控制系统设备与应用攻击

本章结合ICS-CERT公告,研究了工控系统设备和应用程序的漏洞,以及相应的漏洞利用技术。

第7章 工业控制系统“0-day”漏洞研究

大部分渗透测试依赖于众多的已知漏洞。但是,未披露甚至未发现的漏洞(即0-day漏洞)却会带来更加严重的问题。因此,具备独立挖掘未公开漏洞的能力在风险管理策略中会赋予策略制订者以关键优势。虽然仅仅一个章节不足以涵盖漏洞研究的方方面面,但是,本章不仅对工控系统漏洞挖掘策略进行了概述,还提供了可供进一步研究的关键资源。

第8章 工业控制系统恶意代码

自从2010年遭受Stuxnet攻击以来,工业界清醒地认识到恶意代码已经将工控系统环境作为了攻击目标,并且确实能够对工控系统环境造成影响。自从那时起,众多攻击活动均以Stuxnet为模板,开发出了针对工控系统的恶意代码,用以潜入、感染关键系统,甚至对关键系统造成破坏。本章分析了恶意代码开发人员在编写专门针对工控系统环境的恶意代码时所用到的结构、机制及技术。最后,为了帮助读者对恶意代码所能造成的工控系统威胁拥有更加深入的认识,本章对部分现实中针对工控系统的知名恶意代码攻击活动进行了介绍。

第三部分 融会贯通:风险缓解

第9章 工业控制系统安全标准入门

本章对常见的工控系统网络安全标准,以及这些标准同本书中所提及的技术与内容的关联进行了简要介绍。

第10章 工业控制系统风险缓解策略

虽然本书并不想成为一本关于工控系统网络安全对抗措施技术的详细指南,但第10章仍然对与本书主题相关的工控系统风险缓解策略及对抗措施进行了介绍。

第四部分 附录

附录A 缩略语表

附录A中的内容是工控系统网络安全中常用的缩略语。

附录B 术语表

附录B中的内容定义了工控系统网络安全中常用的术语。

附录C 工业控制系统风险评估与渗透测试方法流程图

附录C中提供了一组开展工控系统风险评估以及渗透测试的模板与流程图。

基本组成模块:攻击与对抗措施

同其他带有《黑客大曝光》题目的图书一样,本书的基本组成模块也是在“入侵”章节中所讨论的攻击与对抗措施。本书中对攻击的强调方式同整个《黑客大曝光》系列中的其他图书一样:攻击图标

采用这种图标对攻击进行强调可以很容易地识别出特定的渗透测试工具和方法,帮助读者快速定位到说服管理层为新安全计划提供资金支持时所需要的信息。当涉及对抗措施时,我们也遵循了“黑客大曝光”系列图书采用的一贯方式,在每次介绍完一种攻击方式或者一系列相关的攻击方式之后,紧接着介绍对抗措施。对抗措施的图标也保持不变:对抗措施图标

该图标提醒读者下面介绍的将是关键修复信息。

在第5章和第6章中对每种攻击方式的风险评级是这样计算的,首先对各攻击方式的流行度、难易度以及影响力进行赋值,然后对各单项得分取平均值。致谢

首先,我要感谢我的妻子Ashley以及我的母亲。你们牺牲了无数个夜晚和周末照顾宝宝,为我腾出了时间来撰写本书。特别感谢Joel Scambray相信此书能够传承“黑客大曝光”系列图书的一贯品质。感谢团队中的作者、编辑以及所有在本书撰写过程中做出贡献的人,感谢大家为此付出的时间和努力。我们平时都有日常工作也都有家庭需要照顾,但几个月里大家经常熬夜并牺牲周末的休息时间来完成本书的撰写工作。最后,向在网络安全职业道路上对我产生深远影响的人们致以衷心的感谢(感谢Chuck Gordon和Danny Weaver为我指点迷津,感谢Gordon Wingate、Chad Skipper、John Groman III、Nikos Salmatanis、Jonathan Pollet、Jeff Whitney、Russel Treat及Bryan Parker教给了我很多宝贵的经验,并且给予我足够的信任,为我提供了很多机会)。——Clint Bodungen

我要感谢朋友们以及工业网络安全圈中的同事们所付出的不懈努力,尤其是ISA-99/ISA-62443安全标准团队,还有在过去的15年里一直致力于识别并降低关键基础设施风险的专家们。——Bryan Singer

感谢Clint Bodungen让我有机会参与到本书的撰写工作,当我需要思路时他给予我帮助,并督促我按照进度完成撰写工作!我还要感谢Joel Scambray,感谢他提出的宝贵建议,帮助我在保持理智的情况下完成了本书的撰写工作。——Aaron Shbeeb

特别感谢我的妻子,她是一位非常理性的伴侣,如果没有她做的奶酪通心粉以及无私的奉献,我可能连目前一半的水平都达不到。还要感谢我的宝贝们,他们使我在每天的生活中充满欢笑,并且不断以各种方式带给我惊喜。——Kyle Wilhoit第一部分做好准备:工业控制系统渗透测试就位·第1章 工业控制系统安全概述·第2章 工业控制系统风险评估·第3章 通过威胁建模获取具有可操作性的工业控制系统威胁情报案例研究 第一部分:无尽的灾难

星期三,上午9点45分

Bob端着他上午的第二杯咖啡在显示终端前坐下,继续扫视着人机界面(Human-Machine Interface,HMI)。在他面前的桌子上,并排摆着三台连接在一起的23寸显示器。他轻蔑地笑了笑,登录提示符惹得他心烦。“这就是信息安全,呵呵……”,他在心里挖苦道。

Bob记得以前事情要简单许多,也要方便许多。以前他可以离开他的终端一阵子,去外面抽根烟,喝上一杯新鲜的咖啡,等到他回来终端显示器上还跟他离开时一个样子。而现在,他离开以后回来不得不先在屏幕上输入烦人的口令。“有没有搞错!”Bob想着,“谁会没事干在我上厕所的时候动我的终端?”

Bob在键盘上输入他的用户名—operator1和口令—operator1234。终端显示器大多采用灰色调,显示着不断变化的数据读数,还有全彩色显示的水箱、仪表、水泵和阀门,对于控制室操作员而言,一切如常。

突然,显示屏上一些奇怪的东西引起了Bob的注意。作为一名经验丰富的操作员,Bob见过各种各样的警报,几乎没有什么是他没遇到过的。但是这次不一样。“这是……”Bob身体前倾,眯着眼聚精会神地盯着屏幕。点击了几次鼠标之后,Bob啜了几口滚烫的咖啡,然后拿起了电话:“嘿!Jim。最近还好吗?”“做一天和尚撞一天钟呗,兄弟……有什么事吗?”“嘿,我这里的一些控制器上出现了奇怪的读数。这不合常理啊,并且突然出现了好几次。你能检查一下吗?”“好的,没问题,兄弟。编号是多少?”

Jim把Bob告诉他的设备ID号记在本子上,“我这就检查一下,马上给你回电话。”“谢谢你,Jim。”Bob挂上电话继续享用他的咖啡。

Jim把工作站中电子邮件的窗口最小化,然后打开了Windows远程桌面工具。公司工作站通常不允许访问过程控制网络(Process Control Network,PCN),但是Jim已经在他的工作站上安装了第二块网卡(Network Interface Card,NIC)。这样他的工作站就既可以连接到公司网络,也可以连接到过程控制网络,从而很方便地同时访问公司服务和过程控制网络中的设备。类似这样的双宿主连接是违反新制订的网络安全策略的,但自从转换到以太网标准以来,Jim和他的工程师同事们一直都是这样访问数字设备的。尽管这样做会带来潜在的安全风险,但操作员们为了在人机界面上也能收到电子邮件的通知仍然经常这么干,而工程师们这么干则是为了更便捷地访问过程控制网络中的设备。

Jim觉得,只要IT部门不知道,这样做又不会伤害到谁。

过程控制网络工程工作站的远程桌面弹了出来,Jim开始进行诊断检查。的确,Jim马上意识到他有麻烦了。他的几个可编程序控制器(Programmable Logic Controller,PLC)进入了故障模式并进行重置。一般来说这并不会导致出现紧急情况,因为当它们重置时,它们会故障转移到“B网络”中的备份PLC。但是现在备份PLC也出现了同样的问题(进入了故障模式并重置),于是备份PLC又故障转移到最初主网络“A网络”中的PLC。这种情况一直重复出现,PLC不断在重置与故障转移之间循环。而且不止一对PLC出现了这种情况,好几对PLC都是这样。如果这种情况继续下去,操作员将失去对某个设备的控制。

Jim从他IT部门的一个朋友那里学到了一招,想着也许能派上用场。他打开了Wireshark,这是一个用于网络流量分析的网络“嗅探器”。看着网络数据包在显示屏上一屏一屏地滚过,他立即意识到事情不对劲。他的过程控制网络中的流量通常相对比较小,并且是可以预测的。然而现在他看到了大量的ICMP协议请求以及一些来自与之相邻的公司网络的TCP协议流量。Jim之前从未在他的过程网络中看到过这样的网络流量,更不要说这些流量是来自一个公司网络了!

Jim拿起电话打给他在IT部门的朋友Mike,“嘿!Mike,我是Jim。最近怎样?”“没什么特别的,只是要处理一些安全评估的事情。”

Jim的脸涨得通红,心中窜起一团火:“安全评估?是哪种安全评估?你们正在做的事情会影响到我的设备吗?我这里的PLC出问题了!”“呃……应该不会吧,”Mike说道,听起来有点困惑。“过程控制网络不在这次评估的范围之内。我们只是评估公司的IT网络啊。”“我看到从公司网络过来的各种网络流量在冲击我的设备。我们不是应该有防火墙之类的东西能够阻止这类事情发生的吗?”Jim着急地问。“我们在公司网络和过程控制网络之间是架设有一台防火墙,但是我们允许ICMP包通过。毕竟几个ping探测包能有什么危害呢?我们还开放了几个TCP端口用来与工业实时历史数据库之类的东西进行通信。再说了,我们的评估只是做一些轻度的Nmap扫描而已,主要就是一些ping扫描和SYN请求数据包。”Mike辩解道,但是也开始有些紧张了。“Nmap是什么鬼?”Jim大喊道,同时更加烦躁起来,“你们不要把我的设备当成你们的IT网络!不管它是不是应该在你们的评估范围之内,你们的评估正在影响我的设备!我要你们立即停止这么做!”“啊,天哪!好的,我马上告诉他们让他们停下手边的活。如果你那边有什么变化马上告诉我。”“好的,多谢了兄弟。”Jim他挂了电话,靠在椅子上,摇了摇头。

几分钟以后,Jim发现来自公司网络的可疑流量没有了,他的过程网络看起来似乎恢复了正常。“呵,IT安全……”他在心里讽刺道。第1章 工业控制系统安全概述

凌晨3:30,电脑显示器发出苍白的亮光,网络交换机闪着绿光,一名黑客坐在键盘前,正在研究着他的下一个目标。只有轻巧的键盘敲击声,以及超负荷运转的计算机设备的散热风扇发出的声音,等待着发起虚拟世界中的破坏行动。下面让我们与这位疯狂的大反派一起,开始他遍及全球且持续多日的以咖啡因为动力的黑客狂欢之旅。已经有多个大型石油和天然气设施倒在了他的破坏征程之上。

在他最喜欢的搜索引擎中点击了几次鼠标之后,黑客很快寻找到了下一个目标:位于墨西哥湾的一台石油钻机。两次Nmap扫描之后,“Vendor X”控制系统让他眼前一亮,这是一个可编程序控制器(Programmable Logic Controller,PLC)。几次键盘敲击之后,攻击开始了。片刻之后,钻井平台上发生了火灾并失去控制,人员接到指令开始疏散。损失已经不可避免。此时,黑客已经清除了系统中他所有的访问痕迹,开始寻找下一个目标。

据传,1995年一名政府雇员说服法官对凯文·米特尼克判处了四年半的审前单独监禁和八个月的审后单独监禁,理由是只要他对任何投币电话吹段儿口哨,就能够下达发射指令发射美国的核武器。时至今日,虽然很多人会抱怨这种说法明显夸大其辞,但如果他们相信黑客大会上的新闻报道和消息的话,其中的绝大多数人会觉得前文描述的工业控制系统(Industrial Control System,ICS)入侵场景是完全有可能发生的。

抛开凯文·米特尼克不论,很多工程师和资产所有者都会很快地忽略掉类似的入侵场景,他们认为借助精心部署的多重防护设备,那些灾难性事件就不太可能或者不可能发生,其中防护设备包括安全仪表系统(Safety Instrumented Systems,SIS),诸如限位开关、机器超速保护装置、物理紧急安全阀之类的物理保护装置,还有其他一些安全防护组件。与此同时,网络安全研究人员和业内专家对最新发布的漏洞大肆吹捧,就好像它们是让恐惧成为现实的关键。而那些真正懂得控制系统安全的人则明白,导致灾难性的事件远没有利用一个最新的漏洞那么简单。

解决这两个阵营在观点上的极端差异,需要同时对网络安全和工程的运行方式有着深入的理解。工控系统安全在很多方面不同于“传统的”网络安全(如IT安全、信息安全、业务网络安全等)。那些想要完全掌握工控系统安全所有理论和“最佳实践”的人们很快会意识到,工控系统安全不仅需要了解涵盖常见网络硬件和操作系统的网络安全知识,还需要知道控制系统的工作方式,以及工业过程的物理和工程要求,因此工控系统安全要求涵盖内容广泛、涉及多个学科专业。只有掌握了所有这三个学科知识的人才能够更好地理解和解决现代工业过程中所面临的现实威胁。1.1 信息物理系统:机器崛起

虽然在电影《终结者》里女主角Sarah Connor警告我们机器人终将统治人类的预言有些言过其实,但是现代工业过程所面临的现状是:工控系统领域里存在着清晰而现实的危险。其潜在影响几乎无所不包,从大规模生产的中断到危及人身安全的危险故障都包含其中。20世纪60年代末到70年代初,电子化工业控制系统开始投入使用。在可编程序控制器(PLC)之前,工业过程的控制通过一系列复杂的硬接线继电器、定时器、序列发生器和手动控制技术(如真空回路控制)来进行管理。1968年,通用汽车旗下的Hydra-Matic自动变速器发布一份招标建议书,希望能够开发一套新的设备取代硬接线继电器,可编程序控制器随之诞生。Dick Morley发明了模块化数字控制器(MOdular DIgital CONtroller),即Modicon,Dick Morley也被称为“PLC之父”。PLC的核心是梯形逻辑(ladder logic),是用于控制工业过程的主流方法。而梯形逻辑的核心则是一个大型的If-Then-Else决策树,用于对过程或生产操作进行顺序控制。图1-1是梯形逻辑的一个例子。

PLC的横空出世带来了大量基于逻辑的数字系统的出现,例如监控与数据采集系统(Supervisory Control and Data Acquisition,SCADA)、集散控制系统(Distributed Control Systems,DCS)等。如今,除了工业自动化控制之外,工控系统和自动化系统在我们的日常生活中几乎无处不在。例如,供暖系统、通风系统、空调系统(HVAC)、建筑升降机、家中的智能电表、变电站自动化系统和电网传输配送系统中的SCADA系统和传感器网络、汽车制造中的机器人控制系统、食品和饮料厂中的自动包装系统等,而这些还只是控制系统渗透到我们日常生活中方方面面的少数几个例子。图1-1 梯形逻辑实例

但是任何一名软件程序员都知道,基于逻辑的电子系统很容易出现故障,而这些故障在硬接线模拟系统中却并不存在。不过,在20世纪70年代到90年代,由于许多系统仍然依赖于模拟I/O(输入/输出),并且与业务网络完全隔离,因此其中很多威胁被看作是“可管理的”。但是,20世纪90年代初,鉴于诸如ControlNet、DeviceNet、Profibus、Serial Modbus等众多协议都是基于某一个特定厂商所持有的专有技术而制订的,而资产所有者对生产车间信息可视化和平台标准化的需求程度越来越高,厂商也想方设法降低生产成本。使用通用开放技术的呼声越来越高,由此这推动了通用开放技术在生产车间中的应用,例如Windows操作系统和以太网(使用网络互联协议,即IP协议)。在这种融合之下,资产所有者需要管理两个网络:负责业务信息的信息技术(Information Technology,IT)网络和负责生产运行维护的运营技术(Operational Technology,OT)网络(尽管术语OT在2010年左右才推出)。今天,这种IT与OT的融合已经相当流行,并且出于业务上的需要,通常还会要求将某些OT数据传送到IT网络中去。1.1.1 传统威胁的全新攻击向量

由于资产所有者看到了网络融合带来的好处,用于观察和改进工业过程的技术开始加速发展。这些技术包括:记录过程变量及其变化的工业实时历史数据库(data historian),制造执行系统(Manufacturing Enterprise Systems,MES),企业资源规划系统(Enterprise Resource Planning,ERP),实验室信息管理系统(Laboratory Information Management Systems,LIMS)等等。这些系统都基于常见的操作系统,比如Unix操作系统和微软的Windows操作系统,从而加速了信息技术网络和运营技术网络的进一步融合,也刺激了对以太网技术(以及后来的无线网络技术)的进一步需求,以实现对工业过程的分布式监视和控制。随之而来的是,原本在隔离网络中几乎完全被忽视的控制系统网络威胁忽然间走上了前台。

然而,仅仅是网络融合所带来的连通性还并不是最值得关注的部分。首先,这些威胁并不仅限于最新发布的漏洞。工业网络中大量系统所使用的Windows操作系统版本已经多年甚至数十年未曾更新。因此,这些系统已经错过了无数个微软的“周二补丁日”,这也意味着其中存在着数千个未经修复的漏洞。尽管这些漏洞早已在大多数传统IT系统中进行了修补,任何针对这些漏洞的利用尝试都很可能无功而返,但是受这些漏洞影响的OT系统却会显著增加暴露的机会。

除了标准操作系统的漏洞之外,工控系统的设备、协议及应用程序本身在设计之初也都没有考虑到安全问题。在某些情况下工控系统设备可能经常会出现故障需要重启或完全失效无法工作,而这些情况在IT网络中通常被看作是正常的。要知道,工控系统应用程序和协议最初在设计开发时并没有采用认证和加密机制以及其他常见网络安全对抗措施等方式来提供安全保障。

让问题变得更复杂的是,这些系统本身所具有的关键性和敏感性使得对其开展补丁修复工作较为困难,这也是导致工控系统的安全补丁非常过时的一个主要原因。这些系统中的很大一部分属于“高可用性”系统,在定期维护时间窗口之外进行关机来安装更新和补丁程序通常是不现实的。即使是在定期维护时间窗口之内,许多传统的网络安全措施(例如反病毒软件、安全更新和补丁)也都有可能对工控系统设备和网络产生负面影响。

最后,所有这一切的X因素(即未知因素)是在工控系统环境中经常会出现IT技术能力匮乏的情况。工控系统网络的很大一部分是由IT设备与系统连接、维护和操作的。而通常工控系统中的这些资产是由工控系统操作员和工程师而不是经验丰富的IT专业人员来维护,这就很可能导致维护、配置过程中出现各种常见错误以及系统未加固的问题,从而为许多潜在的脆弱性埋下了隐患。这些脆弱性涵盖了从唾手可得的漏洞到关键致命的漏洞等各种级别,而这些漏洞通常都不会存在于当今典型的IT架构之中。

我们将在后续章节中详细讨论这些问题。至少我们现在已经知道:工业控制系统的运行不同于IT系统,工业控制系统的健壮性也不如IT系统。事实上,有许多现实状况、系统弱点和脆弱性可能导致工业控制系统出现故障而无法运行。1.1.2 后果:这将导致什么呢

当我们考虑这一类故障在具有强烈化学反应、高温高压和机械部件的工业过程中带来的潜在影响时,我们也必须考虑它们对人身安全、健康与福利的潜在影响。在一些情况下,系统故障也可能会对环境造成影响,例如化学品或石油泄漏;或者对当地经济造成影响,例如大规模的停电。而所有的这些情况,都可能会导致政府对相关企业予以罚款并提起诉讼,从而给企业带来经济损失,企业信誉也可能受到影响。

一些工业安全标准例如由国际自动化协会(International Society of Automation,ISA)提出的ISA-84标准和国际电工委员会(International Electrotechnical Commission,IEC)提出的IEC-61508标准,还有信息集成标准例如国际自动化协会提出的ISA-95标准都已经开始着手解决控制系统的网络安全问题。后来,ISA-99(现在为ISA-62443/IEC62443)以及其他一些标准规范,比如北美电力可靠性委员会(North American Electric Reliability Council,NERC)提出的NERC CIP和美国联邦法规6CFR27,还有美国国土安全部(Department of Homeland Security,DHS)提出的化工设备反恐怖主义法令(Chemical Facility Anti-Terrorism Statutes,CFATS),也都开始着手解决现代工业控制系统中的网络安全问题。这一模式的转变在很大程度上是因为人们越来越广泛地认识到—当前,由于需要在不确定性更强的网络与传统IT网络之间建立连接,工业控制系统实际上面临着设备完整性和功能安全性的双重威胁。当工控系统由于故障未能执行(或者对其予以控制使其难以执行)预定功能时,可能导致以下影响:·灾难性的功能安全故障·在环境中释放有害物质·生产损失·产品召回

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载