摘要
工业互联网的信息安全威胁特征仍然由工业控制系统的脆弱性主导,无论是信息系统相关威胁还是过程控制相关威胁,都与工业互联网边缘端点的脆弱性紧密相关。本文首先定义了工业互联网边缘端点的主动防护概念与特点,分析了不同类型边缘端点的脆弱性,并在此基础上给出了现阶段边缘端点的三种主动防护手段,具体包括:基于可信计算的主动免疫机制、面向Linux的主动式自主防护方法和面向Windows的“白名单”防护技术,简析了每种主动防护手段的优势与不足,为工业互联网边缘端点的安全防护提供支撑。
关键词:工业互联网;边缘端点;脆弱性;主动防护
1 引言
近年来,网络化、信息化的发展促进工业控制系统的大规模集成与互联,工业互联网建设已经成为新一轮工业革命的重要内容之一。作为一种新兴业态与应用模式,工业互联网是传统互联网、新兴信息技术与工业控制系统全方位深度融合的产物,为智能制造的发展提供了关键基础和重要支撑平台:一方面为智能制造的个性变革提供了共性基础设施和先进的技术推动力;另一方面也可作为支撑其他产业发展的纽带,驱动多种产业模式的智能化变革。为此,世界各国已开展对工业互联网的建设,力求抢占全球新一轮产业竞争的制高点。特别是工业互联网对我国制造强国建设和网络强国建设起到关键性推动作用,在国家的高度认可和重视下,其产业生态体系逐渐形成并发展壮大,其平台建设已经从概念框架走向落地实践。然而,工业互联网强化了信息技术的深度融合与网络的互联互通,这种体系和架构的变革势必打破工业控制系统相对封闭、孤立的物理信息环境,日益暴露的脆弱性和安全威胁也不再是简单的线性叠加,在有组织、高强度的攻击面前,工业互联网将面临严重的信息安全威胁,因此,安全是工业互联网健康发展的前提和保障。
自2010年的震网病毒爆发以来,针对工业控制系统的攻击事件频繁发生,2015年BlackEnergy、2016年IronGate、2017年WannaCry、2018年GreyEnergy以及2019年Triton等安全事件表明,针对工业控制系统的攻击威胁已经呈现有组织、多阶段、高隐蔽、强持续的特征趋势。特别是近几年出现的高级可持续性威胁,往往采用系统零日漏洞去实现靶向的多步攻击,复杂的伪装技术使其难以被精确地检测与防护。实际上,工业互联网的核心基础仍是面向智能制造的工业控制系统,而工业控制系统的本质职能就是以具体工艺为指导,采用工业专用信息系统自动化完成工业生产过程的管理与控制。因此从技术层面考虑,工业互联网的信息安全威胁特征仍然由工业控制系统的脆弱性主导,具体表现在两个方面:一是信息系统相关威胁的专有性与原发性,即由工业专用系统平台的固有脆弱性引起的安全隐患;二是过程控制相关威胁的转移性与继发性,即利用过程控制的脆弱性将信息安全隐患扩散至工业生产的功能故障。从上述威胁特征的表现形式可以发现,无论是信息系统相关威胁还是过程控制相关威胁,都与工业终端的脆弱性密切相关,特别是工业互联网的边缘端点,如现场控制网络的可编程逻辑控制器(Programmable Logic Controller,PLC)、工业物联网(Industrial Internet of Things,IIoT)的传感器节点等,它们往往是工业互联网实现工业生产管理和控制功能的核心,不仅能负责管理工艺流程、控制现场设备、采集现场数据,而且还在一定程度上对运行故障进行处理,因此边缘端点的安全性尤为重要。然而,由于其不可避免地存在系统漏洞等脆弱性,并且自身防护能力弱,再加之工业互联网的全互联互通属性可能增加更多的攻击入口和攻击路径,边缘端点的安全防护将成为工业互联网安全建设的主要内容之一。
相比于工业防火墙、入侵检测等被动防护措施,本文定义边缘端点的主动防护为:边缘端点能够主动发现入侵行为,并且自身内部具有防护功能,阻止恶意攻击的执行与扩散,或者说借助于其他外部安全措施,边缘端点能够主动弥补自身的安全缺陷,间接提升自我防护能力。简单地说,边缘端点的主动防护主要涵盖两个方面:一是强化自身的防护功能,二是弥补自身的安全缺陷。实际上,随着IT技术和OT技术的不断融合,边缘端点的软/硬件平台越来越通用化,虽然为智能制造的网络化动态集成与可重构带来了便利,但随之而来的信息安全隐患也日益暴露,比如,现有工程师站、操作员站广泛采用Windows操作系统作为工业应用的基础运行环境,容易导致用操作系统漏洞被遗留下来;工业可编程嵌入式设备在设计时存在安全缺陷,容易导致现场执行器被恶意控制;边缘端点所支持的工业以太网协议在实现时存在安全隐患,容易导致协议栈缓冲区溢出,这些都将使得针对边缘端点的攻击愈演愈烈。现阶段,工业防火墙和入侵检测系统已经得到了广泛应用,但仅采用被动的“封、堵、查”防护措施,工业互联网的安全防护仍然存在较多问题,特别是在防御高级可持续性威胁方面表现出诸多不足,因此边缘端点的主动防护将成为工业互联网安全发展的一个新突破口,在不改变或低影响工业可用性的前提下,通过增加与边缘端点高度集成的信息安全组件,强化和提升边缘端点的自身防护能力,从而克服边缘端点的固有安全脆弱性,达到保障工业互联网安全稳定运行的目标。
2 现阶段边缘端点的三种主动防护浅析
2.1 基于可信计算的主动免疫
边缘端点面临着内生脆弱性的约束,而这种内生脆弱性主要表现在软/硬件平台的脆弱性,特别是无法避免的操作系统漏洞问题。作为一种有效可行的防护措施,可信计算充分集成了完整性检验、身份认证、数据加密、访问控制等安全功能,通过建立可信根和信任链保障系统的完整性和安全性,边缘端点自身具有防护能力,能够主动免疫多种网络攻击。可信计算技术的核心是可信芯片,这也是整个可信链的信任根,通过信任的传递建立可信链,从而形成可信度量、可信管理、可信证据采集、可信状态证明的可信计算环境。具体地,边缘端点的可信保护机制可以体现在三方面:(1)操作系统的完整性度量与软件的可信执行计算;(2)数据存储与通信的机密性保护;(3)身份的真实性验证。从边缘端点的启动阶段和运行阶段出发,基于可信计算的主动免疫能够完成边缘端点自身的本质安全防护,构建高安全、高可信的运行环境。在启动阶段,依据系统启动流程与优先级顺序,从信任根开始到硬件平台、操作系统以及上层应用,逐级进行完整性度量与重要代码安全性检测,主要包括引导加载程序检测、操作系统镜像检测、核心引擎检测等,从而将信任进行扩展,为边缘端点的稳态运行提供安全可靠的前提保障;在运行阶段,在提供边缘端点身份认证、机密通信等基本安全功能的同时,将可信链进一步向上层传递,完成程序级静态信任度量与应用行为动态信任度量,不仅实现工业应用软件自身基本程序信息及运行环境检查,而且能够实时监控软件的动态应用行为,防止恶意修改与病毒入侵,保障工业应用软件的运行可信。基于可信计算的主动免疫是一种有效提升设备本质安全防护的方法,目前已经有可信PLC等相关研究成果出现,但在边缘端点的应用方面仍值得进一步研究:一方面,边缘端点往往具有有限的计算资源和存储资源,而可信计算的应用必定会占用其一部分系统资源,加之工业互联网具有高可用性与高实时性要求,因此如何实现轻量级的可信计算需要进一步探讨;另一方面,各种边缘端点具有异构的软/硬件体系,为满足不同设计需求,边缘端点的可信计算也应具有多样化特点,能够支持功能可裁剪、可配置以及易定制化等,因此,如何实现高适应性、可重构的可信计算体系也是需要解决的关键问题之一。图1是基于可信计算的主动免疫安全机理与实例。
图1 基于可信计算的主动免疫安全机理与实例
2.2 面向Linux的主动式自主防护
在目前的工业控制系统或未来的工业互联网中,很多边缘端点都采用Linux操作系统作为底层的支撑系统,如PLC或DCS控制器采用实时Linux操作系统增强工业控制的可用性、IIoT传感器节点往往采用嵌入式Linux操作便于功能的裁剪。然而,Linux操作系统面临着越来越多的信息安全威胁,2020年的黑帽子信息安全大会显示,一系列用于间谍活动的Linux后门恶意软件正在国内横行,这些软件很容易经过动态编译并可针对特定目标进行定制。可想而知,如果这些Linux后门恶意软件被植入到诸如PLC、DCS控制器等工业控制核心部件,不仅一些机密的工艺信息易被窃取,而且某些关键生产控制过程也可能遭受破坏,造成生产事故。因此,针对Linux操作系统下现阶段比较流行的恶意代码攻击问题,面向Linux的主动式自主保护成为一种简而有效的防御方法。具体来说,这种方法是一种基于用户态的Linux进程/文件管控方法,根据Linux进程的创建流程,通过内核提供的接口对进程相关系统调用实施监控,并将调用信息返回至用户态,与用户定义的规则进行比对,对恶意创建的进程进行终止,从而实现Linux系统下对恶意代码启动的管控。同时,该方法也能够对Linux系统中用户添加的敏感性文件进行保护,对敏感性文件的操作需要获得用户许可,并将敏感操作信息存储至相关日志中。实际上,面向Linux的主动式自主保护主要涉及到三方面机制:可装载内核模块(Loadable Kernel Module,LKM)、Hook操作和Netlink连接。其中LKM实现监控模块的可装载和卸载;Hook操作能够实现内核调用的监控;Netlink连接实现用户态与内核态之间的通信,并且支持异步通信。工业互联网中PLC、IIoT等设备长期处于稳定的工作环境,对可用性、实时性具有较高的要求,因此这种方法的主要优点在于只对恶意代码启动时进行管控,不需要修改边缘端点的软/硬件结构,占用系统资源较少,同时轻量级的设计能够保护边缘端点的系统稳定性,并且具有一定的兼容性。但这种方法可能遭受到拒绝服务攻击(Denial of Service,DoS),即当一个恶意攻击者频繁地启动恶意代码软件,将有可能消耗边缘端点大量的系统资源,轻则可能干扰工业控制操作,重则可能导致系统崩溃。图2是面向Linux的主动式自主防护基本原理。
图2 面向Linux的主动式自主防护基本原理
2.3 面向Windows的“白名单”防护
广义上讲,工业互联网中边缘控制网络的工程师站、操作员站也可以称作边缘端点设备,它们往往采用Windows操作系统作为底层的支撑系统,目前针对该系统的工控攻击已非常常见,例如,“Stuxnet”病毒就是通过感染Windows系统下SIMATIC WinCC软件破坏核设施控制系统;“Flame”病毒的主要攻击目标也是Windows计算机,实施网络间谍窃取机密情报信息。不同于PLC、IIoT设备,工程师站、操作员站等Windows设备具有良好的计算资源和存储资源,因此增加信息安全防护组件可以几乎不用考虑工业可用性影响,面向Windows的“白名单”防护已经成为一种成熟有效的主动防御技术。这种技术的主要机理如下:首先,自动扫描Windows系统内部所有磁盘文件,生成每个文件的数字签名,根据所有PE文件的数字签名创建白名单库,通过识别和阻止任何白名单外的程序运行,实现对网络、U盘等传播的病毒、木马等恶意代码的启动控制;其次,可定制添加需要监控的配置文件和关键注册表键值,防止敏感配置文件和注册表被恶意篡改和破坏,同时能够配置USB设备的访问权限,保障数据交换安全;最后,可以对日志、报警记录进行丰富、全面地记录,以供后续的追踪溯源与大数据分析。这种技术能够成功应用的前提条件是诸如工程师站、操作员站等边缘端点具有较稳定的、非易变的软件运行环境,同时由于这类边缘端点具有较优良的系统资源,针对该技术的拒绝服务攻击影响也有限。面向Windows的“白名单”防护基本安全功能架构如图3所示。
图3 面向Windows的“白名单”防护基本安全功能架构
3 结语
本文首先分析了工业互联网的信息安全威胁特征,并给出了边缘端点的主动防护定义,在此基础上,重点分析了现阶段边缘端点的三种主动防护手段,具体包括:基于可信计算的主动免疫机制,该机制能够为边缘端点建立从启动阶段到运行阶段的可信链,并提供身份认证、机密通信等安全功能,但在轻量级、高适应、可重构的可信计算方面仍需进一步研究;面向Linux的主动式自主防护方法,该方法能够有效地管控Linux进程启动与文件访问,但针对该方法的拒绝服务攻击问题需要进一步解决;面向Windows的“白名单”防护技术,该技术能够识别和阻止任何白名单外的程序运行,防止敏感配置文件和注册表被恶意篡改和破坏,目前已成功应用到现有工业控制系统中,但前提条件是具有较稳定的、非易变的软件运行环境。上述每种主动防护手段都具有自己的优势与实现条件,仍需要进一步展开研究,从而保障工业互联网的安全建设。
★基金项目:辽宁省自然科学基金资助计划项目(2019-MS-149)。
作者简介
万明(1984-),男,内蒙古通辽人,副研究员,工学博士,现就职于辽宁大学信息学院,目前为工业控制系统信息安全产业联盟(ICSISIA)首批智库专家、辽宁省工业信息安全专家组首批专家、沈阳市拔尖人才,主要研究方向为工业互联网信息安全、智能计算与机器学习、未来网络架构与安全。
为便于排版,已省去参考文献
摘自《自动化博览》2021年1月刊暨《工业控制系统信息安全专刊(第七辑)》
声明:本文来自工业安全产业联盟,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。