随着工业4.0的持续推进,信息化与工业化高速融合,处于物理隔离环境的工业控制系统(ICS)逐步与外部网络进行数据交互,使其原本存在的漏洞面临新技术的安全攻击威胁。这也使得攻击者通过各种方式将工业控制系统列为目标,对其进行勒索或破坏,否则,攻击者会对工业控制系统造成宕机甚至毁灭影响。现有的安全防护技术通过增加安全防护产品对工业控制系统进行防护,如同在危险地区建立隔离区,而未从源头对工业控制系统中存在的漏洞进行修复,长此以往,漏洞不会消失,安全防护负担会随着攻击技术的演变而加重。 通过研究安全测试工作尽可能有效地发现工业控制系统中存在的漏洞,帮助运营者掌握自身存在问题的严重性,以更有针对性的举措逐步解决安全问题,以多种方式提供局限性的见解,以供各方进行研究。
引言
随着工业互联网概念的提出,网络安全工作始终是重中之重。通过近十年的政策指引,各工业企业对于其负责的工业控制系统的安全情况有了较为清晰的认识,也为其增加了多种安全防护产品以提升工业控制系统的安全防护水平。 然而,由于工业控制系统的特殊性,如高可用性,使得难以通过中断系统而直接修复存在的安全漏洞,仅仅通过在系统外围部署各种安全产品以保障系统的运行安全和数据安全,这也阻碍了工业数字转型的发展。 没有安全就没有发展,只有切实地解决工业控制系统中存在的漏洞,对于工业化的升级转型才能奠基坚实的基础。
1 ICS 主要漏洞
工业控制系统(ICS)通常被定义为用于调节发电、水务、石油和天然气以及运输系统等关键工业过程,常见类型的 ICS 是监控和数据采集系统(SCADA)以及分布式控制系统(DCS),ICS 环境包含许多特定于工业控制和管理的组件。 常见类型的ICS 组件是可编程逻辑控制器(PLC)、人机界面(HMI)、传感器/执行器、安全仪表系统(SIS)、历史站、远程终端单元(RTU)和工程站等。 每一个组件中存在着不同的漏洞。
1)可编程逻辑控制器(PLC),作为生产中的控制器设备,通常使用逻辑进行编程。 PLC 通常具有定制的操作系统以及功能代码和数据块的组合,可能存在损坏、修改和配置操纵的风险。
2)人机界面(HMI),是工厂中需要人为控制以提供或在某些情况下显示过程或大型设备状态的设备,通常运行 Windows 等商用轻型操作系统,但系统漏洞通常无法修补或保护。这使得它们成为网络攻击者的有吸引力的目标,攻击者可能在获得操作系统访问权限以安装恶意软件或控制 ICS 环境中的其他设备。
3)传感器/执行器,向 PLC 提供原始数据,它们无法为其提供的数据进行身份验证或完整性保证,导致控制逻辑基于未经身份验证的输入,即没有完整性校验,使得其执行未经授权的命令。
4)安全仪表系统(SIS),通常作为独立运行的系统来监测工业过程的状况,如果发现系统存在可能损坏的状态时将其关闭。类似传统 IT 系统般使用工业协议进行数据传输,遭受恶意软件攻击的可能性增加。
5)数据历史站,通过收集和维护过去事件的记录以供分析和显示,通常在数据库平台中,具有与常见数据库平台相同的漏洞。
6)远程终端单元(RTU),通常驻留在远程位置以监控现场设备并将数据传输回中央监控站,其安全特性较差,且容易受到身份验证绕过、数据操纵和格式错误的协议消息等攻击。
7)工程站,允许工程师操控 ICS 系统中的组件,可能运行在不受支持的操作系统上, 或在通用管理员账户下运行并允许远程访问,自身存在软件漏洞、USB 代码执行,未安装安全防护软件等。
2 安全测试现状
2.1 安全测试对象及方法
现阶段,随着《中华人民共和国网络安全法》《关键信息基础设施安全保护条例》《网络安全等级保护条例(征求意见稿)》等相关法规政策的出台,对于工业控制系统开展安全测评的工作已全面展开,然而为了保障工业控制系统的可用性,在实际工作中绝大多数未对工业控制系统进行安全测试。 针对工业控制系统开展安全测试的目的就是为了发现存在的漏洞,并寻找合适的修复漏洞方式。 通过开展安全测试以暴露工业控制系统中存在的问题,安全测试目标主要包括控制设备、通信网络、工作站、服务器、数据等。
1. 工业控制网络的安全测试。
可以通过搭建仿真环境,即采用与生产系统相同的设备(版本、型号均一致),将生产数据放置于仿真环境进行运行,采取各种攻击方式对网络进行测试,以发
现工业控制系统中的漏洞。而这种做法成本太高,并不是所有企业能够在其经济范围内所能承受的。
2. 工控设备的安全测试。
现阶段对于工控设备的漏洞检测是基于指纹匹配的方式进行,无法对其匹配到的漏洞进行验证测试,难以预估设备存在的漏洞可能对工业控制系统造成的危害程度。而通过安全测试以获取工控设备的操作权限来评估工控设备的安全性和健壮性。
3. 工控服务器和工作站的安全测试。
工控服务器和工作站大部分是 Windows 或 Linux 系统,且很大一部分为老旧系统,并且部署于隔离的网络环境中,考虑到组态软件的兼容性,用户未对其进行补丁更新和系统升级,导致长期运行后安全漏洞未进行修复,使其存在潜在的安全威胁。
2.2 安全测试风险
对工业控制系统进行安全测试应慎之又慎,工业控制系统的设计是为了控制自动化装置实现生产业务的过程,如果在安全测试过程中发生错误,可能导致系统执行错误指令后误操作,导致设备损坏,甚至造成人员伤亡事件。
工业控制系统的主要威胁来自人,通过开展安全测试工作尽可能识别出可被威胁利用的漏洞。与常规 IT 系统相比,在对工业控制系统进行主动与被动测试时,这些系统的资源空间非常有限。由于这些工业控制系统的寿命比 IT 系统的寿命长得多,所使用的 CPU 通常比较落后,其在安全测试中难以承担过大的流量,可以通过在测试设备上进行,而不是在控制关键过程的操作系统上进行。
由于工业控制系统在抵御攻击方面的局限性,必须考虑设计因素以保护它们免受外部影响。工业控制系统与其他IT系统和网络的完全分离是实现保护的最佳方法。然而,由于来自工业控制系统的数据用于为业务决策提供输入,或是即时需要的,这导致需要开发工业控制系统组件和IT系统之间进行数据交换以防止 IT 系统与工业控制系统任何组件进行直接连接。
3 依托新型技术
与物理实际环境相比,通过建立仿真模拟环境可以不受模拟环境中物理组件的束缚,在使用的协议方面具有较强的灵活性,能够根据需要扩展或复制工业控制系统组件,也不存在损坏单个组件的风险,适用于可能损坏物理组件或软件部件的各种测试。仿真测试环境的设计用于工业控制系统协议的数据捕获以及通信分析,可用于测试工业通信中的各种异常情况。然而,仿真模拟环境受到通信协议和模拟设备数量的限制,由于实际操作中使用的设备数量众多,要将整个工业网络包含在测试台中并不容易,再加上人为因素,模拟设备达不到与物理设备相同
的水平,整个设备的模拟将需要相当长的时间,并且在某些生产情况下将无法实现。从实用的角度来看,我们需要创建更多具有更高仿真环境的测试平台。
随着机器学习、人工智能 AI 的发展,借助其强大的学习能力和方案解决能力,通过智能化实现工业生产自动化的安全测试保障工作。
AI 不仅可以帮助渗透测试人员自动收集所有信息,还可以对其进行分析并确定不同的行动方案。例如,它可以根据收集到的信息确定要部署的最佳模拟攻击,或者它可以用来识别应该首先攻击的目标主机,因为成功的可能性更大。在工业控制系统安全测试的这个阶段,试图确定工业控制系统可能具有的所有潜在漏洞。AI 可以通过分析扫描结果并删除所有不适用或产生干扰的内容来帮助测试人员了解扫描结果,同时考虑从前一阶段收集工业控制系统的信息以及来自外部等来源的威胁情报,通过智能化关联所有收集到的信息和知识来帮助确定工业控制系统攻击阶段的最佳行动方案。AI 可以通过确定渗透目标的最佳行动方案来提供帮助,但它们也可以根据工业控制系统的运行环境进行利用,这些利用的结果可以反馈给 AI 模型,使其能够生成以前未出现的利用替代方案或新的利用途径。AI 可以通过分析评估期间获得工业控制系统的数据,并将其与威胁情报和先前参与中获得的知识相结合,来增强报告的实用性,从而生成针对工业控制系统的可操作安全建议和修复方案。
在工业控制系统安全测试中,安全测试的未来在于使用人工智能使结果更准确,评估更高效,结合更广泛的经验和知识来决定什么是执行评估的最佳行动方案,帮助用户发现问题、解决问题。
4 结束语
随着新技术不断更迭,工业控制系统面临的威胁也会越来越多,只有扎实解决工业控制系统自身安全问题,才能使得工业控制系统的安全防护能力有质的提升。 本文通过研究在工业控制系统中开展实战化或仿真测试,从物理、虚拟和混合测试多个角度,对使用的工业协议和各个组件进行安全测试,不仅要关注各个测试环节中展示的现象,更要对工业控制系统中的应用程序、执行过程、生产环境等特定内容进行研究。目前,有很多解决方案,但其中大多数只是表面上触及工业网络的各个组件,尤其是在通信协议及其安全性领域,以及 PLC、HMI、DTU 等单个物理组件的安全性,通过智能化 AI 技术,更深入地学习工业控制系统的特殊性,可以全面、有针对性地解决工业控制系统中的漏洞隐患。
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。