作者 | 陈峻
审校 | 重楼
引言
如您所见,在工业4.0所描述的智能化工厂的环境中,工业物联网(IIoT)设备的广泛采用,彻底改变了生成模式,提高了整体效率、自动化和数据驱动的决策。然而,这种快速整合也使得工业系统面临着更大的网络威胁和攻击风险。特别是对于关键基础设施的保护,可谓迫在眉睫。下面,我将从工业系统面临的潜在安全问题出发,针对IIoT的各种攻击向量,梳理出时下业界常用且有效的应对措施。
IIoT通用架构
在全面识别和深入讨论IIoT所面临的不断演变的威胁与潜在的漏洞之前,让我们首先对工业物联网系统的通用架构有所了解。如下图所示,典型架构分为三个层级:
- 边缘层,包括各种端点设备和边缘网关单元。典型的端点包括相互连接的制动器、控制系统、以及传感器等设备。而网关单元负责汇聚转发指示,实现与之相连器件的互通互联。
- 平台层,包括软件平台和用于数据集成、转换、分析的应用服务。它们利用Web或移动网络连接,为不同层级之间的数据和控制交换提供管道。
- 组织层,包括服务于组织域的应用和云托管专有应用。它们通过内网基础设施和Web驱动的协议,提供用户界面,实现规则和控制的下发与上传。
各个层级往往在逻辑上依次配合与协作,以有线和无线连接的互通方式,实现了IIoT对于数据的无缝收集、分析和交换,以及过程自动化的控制,进而促进了生产链路的性能优化。
不过,由于工业连接与控制设备最初的设计重点主要追求的是功能性、而非安全性,因此它们特别容易受到网络安全攻击。各种工业物联网通信协议中的缺陷经常会被恶意利用,加上生产环境的运营和管理不足,攻击一旦发生,就可能导致关键设备的损坏、重要功能的丧失,以及部分或全部设备的报废,进而带来灾难性的后果。例如,针对供水和净化厂的网络攻击就可能会导致包括:水处理和生产、流量统计、水位和电导率分析、pH值分析、以及化学加药泵等关键操作受到篡改或失效,进而对公众健康产生严重的影响。
功能分层与攻击
具体而言,鉴于工业物联网按照功能级别可以分为操作技术(OT)和信息技术(IT)两大类别,它们所面临的网络攻击可以按照如下方式进行区分:
类别 | 层级 | 组件 | 攻击 |
OT | 1 | 器件中嵌入的传感器、制动器、变送器和电机 | 窃听、暴力搜索、伪造数据包、非法输入、逆向工程、以及恶意软件 |
2 | 分布式控制、PLC和网关系统 | 回放攻击、中间人(MitM)、有/无线设备的嗅探、用蛮力猜测密码 | |
3 | 控制室、操作员、HMI和SCADA系统 | 恶意软件、数据窥探、IP欺骗、以及数据操纵 | |
IT | 4 | 办公应用、数据中心、内部网络、电子邮件、以及互联网服务 | 应用协议攻击、网络钓鱼、SQL注入、恶意软件、DNS中毒、以及远程代码执行 |
5 | 云服务、业务应用、信息分析、Web、以及手机应用 | 拒绝服务(DoS)、MitM、反向通道、间谍软件、身份识别缺陷、以及恶意插件 |
OT 分层与攻击
- 第一层涵盖了嵌入式设备、传感器、执行器、变送器、以及电机等器件。攻击的开展往往依赖于深入熟悉IIoT的系统架构,能够访问设备与工程图纸,以及具有全面的安装和操作权限。
- 第二层由专有硬件组成,包括:分布式控制系统(DCS)、可编程逻辑控制器(PLC)和网关。它们便于第一层中的器件之间实现通信和控制。攻击的实施往往旨在影响信息流,并阻碍两层之间的常规通信。
- 第三层包括基于IP的数据采集设备、主站、人机接口(HMI,是将人与设备连接起来的操作员触点,主要用于显示信息、跟踪操作时间、以及查看机器输入和输出数据)、监控和数据采集(SCADA)系统、以及相关工业自动化控制和监控系统。该层级的攻击会使用IP数据包的操作手段,通过伪造源地址等属性特征,来隐藏发送者的身份。一旦攻击得逞,收件方会被欺骗,并以为数据包来自已授权的用户或组件。
IT 分层与攻击
- 第四层属于业务支撑服务,包括各种办公应用、内联网络、外部网络、以及邮件服务等。攻击的开展往往利用的是已知或未识别的服务漏洞。
- 第五层包含了各种企业应用对于数据进行提取或分析的技术,以及各种云计算服务工具。该层级的攻击则多采取欺骗性对抗、以及监控操纵等复杂的隐蔽形式。
针对SCADA的攻击与检测
在上述五个功能层级中,处于第三层的SCADA系统属于IIoT生态系统的主要硬件系统。它负责跟踪不同的工业过程。其中,主站单元或主终端单元(MSU/MTU)是SCADA的主要控制组件,而子MSU或子MTU则起到辅助控制的作用。通常,工业自动化控制和遥测系统会依赖SCADA系统,使用本地控制器,连接到IIoT上。对此,攻击者往往设法使用断开与操控制动器或传感器的方式,让工业环境内的SCADA丧失或偏离原有的功能。具体而言,针对SCADA系统的常见攻击模式与技术有如下五种:
- MitM攻击。为了收集的数据,已获得网络访问权限的攻击者,可以通过安装恶意软件,在有线或无线网络中,主动监控并拦截MTU、子MTU或远程终端单元(RTU)之间的通信,进而将篡改后数据传递给预期接收方。
- 伪装攻击。为了保持连接与会话的控制权,攻击者会采用合法名称,并利用虚假的IP地址,来冒充已授权的操作员身份,以逃避检测。
- 恶意代码攻击。攻击者利用已发现的漏洞,通过木马或蠕虫等恶意代码,感染网络中更多的MSU/MTU,导致系统出现故障或引发不稳定的行为。
- DoS攻击。由于MSU/MTU无法管理超过最大限定传输单元的数据传输,因此被控制的RTU会利用数据包的碎片缺陷,通过大量畸形数据包,淹没MTU,以耗尽系统中正常数据交换的可用资源,进而导致连接的失效与系统故障。
- 时间表攻击。已获得访问权限的攻击者通过修改系统或设备的固有时间表,实现其指定的恶意行为。
目前,针对SCADA上述攻击的检测手段包括:利用贝叶斯算法、概率森林和选择树等基于机器学习的机器学习模型;而防御技术则包括:SCADA的密钥建立(SKE)、SCADA密钥管理体系结构(SKMA)、以及逻辑密钥层级结构(LKH)等各种自适应密钥管理协议。
IIoT系统的常见攻击与对策
正如前文所述,SCADA只是IIoT中的一种主要硬件系统。而整个生态体系是一个多元的协作网络。因此,与之对应的网络攻击也是全面、立体且复杂的。近年来,诸如:水利、电力、交通、以及公共事业等关键性基础设施,都已经广泛地连接或应用到了各类IIoT生态系统中。我们有必要梳理出将针对IIoT系统的准确性、可靠性和安全性等多方面的威胁与攻击。总的说来,我们归纳为如下五个方面:
网络钓鱼攻击与对策
为了破坏IIoT系统网络,并控制与其连接的操作系统,钓鱼攻击者会针对安全意识薄弱的操作员与供应商,利用社会工程策略和设立虚假网站等手段,诱骗其点击恶意链接或安装恶意软件,进而达到传统的网络钓鱼攻击的效果。
目前,可用于自动检测和分析IIoT网络钓鱼攻击策略包括:
- 创建Web浏览器的扩展,以扫描用户网站的安全属性、证书,以主动发现其是否包含危险性代码或误导性URL。
- 通过基于关联规则和分类的网站排名,在对象和关联标准之间创建相关性,以检测钓鱼特征。
- 构建浏览器沙箱,作为处理网络钓鱼攻击数据的代理,一旦发现攻击,立即触发警报。
- 采用智能Web应用防火墙(IWAF,Intelligence Web Application Firewall)。这是一种用于识别关键基础设施中的网络钓鱼攻击的自动主动安全工具。它使用机器学习的脉冲神经(spiking neuron)模型,解析出IIoT设备上的网络流量特征,对网络钓鱼攻击进行识别和分类,创建出失陷指标(IoC,indicators of compromise),并将其转换为组策略对象(GPO),从而建立防火墙规则,以阻止网络钓鱼攻击。
- 进一步使用进化脉冲神经网络(eSNN,evolving spiking neural network),在基于区域的策略防火墙内部,构建智能化的URL过滤器,以模拟人脑的运作方式,查找出那些由算法所生成的有害域名。
- 利用URL编码(UE)技术,在执行DNS查询之前,通过神经网络计算URL之间的相关系数,解析URL的分散可视化,分析各种域名之间的关系,然后将解读出的映射存储起来,以便处理域名空间的复杂性,从而在垃圾邮件中提取URL的序列模型,识别和发现恶意网站地址。在整个过程中,为了根据URL的特征实现对网站的分类,其机器学习技术会提取IP地址、WHOIS记录和网络钓鱼URL等词汇特征,并利用数据表达式来构建规则签名,进而过滤可疑的域名。
勒索软件的攻击与对策
与通常的勒索软件不同,IIoT勒索软件通常具有针对性,更专注于基础的系统组件,以造成拒绝服务(DoS)或锁死生产环境中的文件被等危害。而且,为了尽快恢复生产,工业组织往往不得不支付赎金,以换回访问权限。其中,IIoT的边缘网关特别容易受到勒索软件的攻击。一旦得手,攻击者就会迅速更改网关的密码,然后用恶意代码替换到原有固件。在完全控制了网关的基础上,攻击者便可据此加密各种从PLC和I/O设备处获得的数据,以及通过互联网注入或提取数据。
目前,可用于自动检测和分析勒索软件攻击策略包括:
- 通过收集和分析与系统性能相关的数据,如:CPU使用率、内存负载、I/O设备使用率、以及CPU处理需求等,将这些指标与IIoT系统在无恶意软件时的正常指标进行比较,及时发现网关在遭遇勒索软件攻击时,系统资源利用率和处理请求等指标会大幅提升这一特征,并作为预测依据,以便及时采取隔离等措施,进而大幅提升IIoT系统应对此类攻击的抵御能力。
- 使用在数据包和数据流级别同时运行的两个独立分类器,基于会话的流量特征,动态创建机器学习的检测模型,以查找诸如Locky之类的勒索软件。
- 采用结合了经典自动化编码(CAE)和变分自动化编码(VAE)的混合深度检测模型,最小化数据的维度,以提供准确的恶意行为可视化。
针对协议的攻击与对策
IIoT系统的OSI网络框架,通常由物理层、数据链路层、网络层、传输层和应用层,这五个层级组成。前四层使用的协议与传统物联网相似,包括:IEEE 802.15.4 6LoWPAN、蓝牙低能耗(BLE)、IEEE 802.11(供WiFi使用)、LTE、以及UDP/TCP协议等。显然,针对每个层级上不同协议的攻击也各不相同:
1.对物理层和数据链路层的攻击与对策
- 在这两个层面上,DoS攻击最为普遍。它会用相同的频率传输信号,以干扰会话,占用和耗尽传感器节点的原有连接与传输资源,降低甚至终止节点的处理能力。通常,拥塞区域映射模型(JAM)可以通过将数据包重新路由到备用信道上,来绕过无线传感器网络(WSN)的拥塞区域,进而起到减缓作用。
- MitM攻击,也是一种常见手段。攻击者会通过WSN和RFID传感器网络(RRSN)实施数据的篡改。AES、WEP、WPA2等加密技术,能够有效地应对此类风险。
2.对网络层的攻击与对策
- 在该层面上,恶意设备会通过直接路由攻击,来修改数据传输的路由表,进而通过DoS攻击淹没网络资源并阻塞数据。而SVELTE框架等物联网特定入侵检测系统(IDS)解决方案,可以通过出口过滤、疏散分类、授权与控制技术,来提供有效的防御。
- 针对邻居发现协议(NDP)的攻击,会导致网络通信的中断,以及目标系统被欺骗泄漏数据。而IPSec和安全邻居发现(SEND)两种安全技术可以有效防御此类攻击。
- 此外,作为一种浓缩的传输协议,数据报传输层安全(DTLS)也可保护网络层数据传输的完整性和机密性。
3.对传输层的攻击与对策
- 在该层面上,去同步攻击往往通过插入带有虚构命令标志序列号的消息,来干扰终端同步。而消息身份验证可以有效地起到防御此类攻击的效果。
- SYN洪泛攻击往往利用海量SYN消息(但不发送ACK消息,以响应被攻击方的SYN ACK),来阻塞目标消息队列,并阻止其处理有效的SYN查询。而通过改进传输协议中的内存和队列管理,以及通过数据包过滤、屏蔽和代理(中介)等方法,可以减缓此类攻击。
- 由于缺乏内置的数据加密和身份验证措施,为带宽有限的物联网应用所创建的简单通信系统MQTT极易受到传输层攻击。而基于属性的加密(ABE)方式通过提供广播编码,实现了可扩展且可靠的安全MQTT协议,能够将安全的消息传递给多个预期接收方。
4.对应用层的攻击与对策
- 在应用层,由于SCADA的Modbus消息协议缺少对虚假主从IP地址的识别,因此未经授权的远程攻击者可以通过提交具有错误IP地址的请求,发起MitM攻击。
- 如果Modbus的主设备和代理设备连接的验证检测不到位,外部攻击者可以利用Modbus主设备向任何从设备发送随机命令,而无需完成身份验证。
- 如果在处理请求消息和单独的输入读取响应上存在开发缺陷,Modbus系统会被攻击者滥用,在SCADA网络上发起分布式拒绝服务(DDoS)攻击。
- 由于Modbus-TCP将Modbus协议报头扩展了7个字节,并大幅限制了数据包的大小,因此攻击者可以制作一个超过260字节的自定义数据包,并将其发送到Modbus主从设备处。一旦设备未被正确地设置为拒绝此类数据包,则可能会遭遇缓冲区溢出攻击。针对应用层的攻击,我们可以使用具有深度数据包检查功能工业防火墙,利用基于多项特征数据聚类优化模型的企业级IDS,以及基于自主渐进神经网络和支持向量机(SVM)模型的网络入侵防御系统(NIPS),来识别各种异常的Modbus-TCP流量模式。
对供应链的攻击与对策
相对于组织的IT系统,IIoT环境显然要复杂得多。特别是在工业4.0的OT环境,网络与设备中的许多部件都是由多个供应商生产,再由另一个供应商组装,最后由第三方交付(如下图所示)。整个供应链环境难免潜藏安全隐患,例如:硬件设备的芯片中可能被植入恶意代码,安装后门,或是本身使用了带有缺陷的芯片。这些潜在的威胁不但会持续增长与蔓延,而且具有一定的隐蔽性,可能在很长一段时间内都不被注意或发现。
对此,我们可以引入物联网供应链威胁的风险分析(RIoTS)。作为一种用于物联网等互联技术的风险分析技术,它建议采用攻击树的方法,对供应商及其组件进行建模,以发现供应商的潜在威胁,暴露IIoT系统内部隐藏的危险,以便制定针对供应链攻击的预防策略。针对IIoT供应链攻击的防护,我们可以从部件的上线前、中、后三个阶段进行实施:
1.上线前
- 身份验证:必须使用不可伪造的加密密钥,来验证部件的签名证书
- 遵守标准:所有被纳入IIoT的部件都必须遵守相关行业标准
- 安全测试:部件在被投入生产环境之前,必须完成基本的安全性测试
2.上线中
- 分段分离:不但要对部件所处的关键网络进行分段,而且要将其与外部网络相分离
- 安全集成:在集成到第三方部件或生产环境时,必须持续对部件及其所处的网络状态进行风险识别与评估
3.上线后
- 检测警告:持续检查部件的行为与状态,按需发送警告
- 安全更新:软件必须通过安全的连接方式予以更新与运维
小结
不可否认,由于工业系统更注重的是生产设备的稳定运行,因此它们的服役周期往往较长,部件较为陈旧、升级难免不及时到位。鉴于这些复杂因素,在日常运营的过程中,攻击者会持续针对IIoT系统及网络的各个层级,根据发现到的各类漏洞,利用各种手段,展开不同的攻击。因此,我们有必要持续保持高度警惕,深入识别多条威胁向量,运用多种成熟的或前沿的防御技术与对抗策略,来积极应对,打好“组合拳”。
作者介绍
陈峻(Julian Chen),51CTO社区编辑,具有十多年的IT项目实施经验,善于对内外部资源与风险实施管控,专注传播网络与信息安全知识与经验。