APP下载

工业软件隐通道风险研究

2020-12-10李嘉伟刘京娟

网络空间安全 2020年10期

李嘉伟 刘京娟

摘   要:随着工业4.0智能化时代的到来,工业软件被提升到了前所未有的高度。目前,工业软件已经渗透于工业企业产业链的各个环节,其在促进制造业提质增效的同时,也带来了巨大的安全隐患。当前,针对工业软件安全性的研究多注重于“功能安全”,而隐通道作为工业软件“通信安全”的首要威胁,并未引起产业界的足够重视。文章简要概述了隐通道的定义、分类、成因以及典型案例,并基于法国施耐德电气的Quantum PLC设备搭建隐通道实验环境,详细分析了工业软件领域隐通道的构建过程以及数据隐蔽传输过程,并通过实验数据印证了隐通道可绕过系统访问控制策略进行敏感信息隐蔽传输的特性。

关键词:隐通道;隐蔽传输;工业软件;Modbus协议

中图分类号: TN918.91          文献标识码:A

1 引言

进入21世纪,互联网、云计算、人工智能等技术以极快的速度形成了巨大的产业能力,有力地推动了传统制造业的转型升级,以智能化、网络化、数字化为核心的新一轮工业革命即“工业4.0”已徐徐拉开帷幕[1]。工业软件作为工业4.0的核心,已经广泛应用于几乎所有工业领域的研发设计、生产控制、组装测试、售后运维、远程服务等环节,可谓“工业之魂”[2],但在其促进制造业转型升级的同时,也带来了巨大的安全隐患。由于工业软件自身会产生大量的工业数据和商业信息,一旦丢失或被滥用将使企业蒙受严重经济损失,甚至危及国家工业产业的安全,因此绝大多数工业软件属于高安全等级软件[3]。

目前,“功能安全”是国内外大多数工业软件厂商、工业软件用户以及安全企业所重点关注的方向,而“通信安全”,即工业软件与操作系统或其他工业软件进行信息交换时是否安全可靠,并未引起足够重视,隐通道便是工业软件“通信安全”的首要威胁[4]。

工业软件要想发挥其“工业大脑”的作用,离不开支撑其运行的底层操作系统以及辅助其进行信息传输的网络和协议[5],而操作系统、网络、数据库都可能存在隐通道。内网恶意用户通常会尝试利用工业软件自身或其所处操作系统、网络存在的漏洞,通过在系统外部开辟隐蔽通信通道的方式,绕过访问控制策略,直接将工业软件产生的工业数据或商业信息发送于外网攻击者,达到敏感信息隐蔽传输的目的。由于隐通道使用的是非正常的通信手段,这导致一般的安全机制无法对其进行有效的检测和预防,因此其虽不是最普遍的威胁源,但却对高安全等级的系统、网络、软件构成了巨大的安全威胁[6]。

本文对隐通道的定义、分类、成因以及典型案例进行了简要概述,针对施耐德Quantum PLC设备构建隐通道实际应用场景,对该隐通道的构造过程以及数据传输过程进行了详细分析。

2 隐通道概述

2.1 隐通道定义

隐通道的概念最初由Butler W.Lampson在1973年提出。他指出:隐通道是利用一些本来不是用于通信的系统资源或服务进行信息传输的通道[7]。美国可信计算机系统评价准则(TCSEC)对隐通道的描述为:隐通道是一个通信通道,隐通道可使一个主体(进程)能以违背访问控制策略的方式来传递数据[8]。

虽然上述定义已经能够说明隐通道的含义,但目前认可度最高的隐通道定义为:给定一个非自主安全策略模型和它在一个操作系统中的实现,中的两个主体和之间的通信是隐蔽的,当且仅当模型中相应的两个主体和之间的通信是非法的[9]。

2.2 隐通道分类

根据隐通道的依赖对象,可将隐通道划分为时间隐通道和存储隐通道。当攻击者通过隐通道传递数据时,如果其所依赖的对象为系统资源属性的改变,这类隐通道称为存储隐通道;如果其所依赖的对象为系统时间的改变,这类隐通道称为时间隐通道。因此,存储隐通道经常涉及到系统资源的释放与回收等信息,而时间隐通道经常涉及到系统时间的改变或时间的度量[10]。

2.3 隐通道成因

假设存在某一高安全等级软件或系统,针对的安全策略为。在的开发过程中,实现其安全策略的程序与算法称为安全模型,是的形式化描述,是计算机能够理解并执行的程序[11]。隐通道可在安全模型的监控下,以违反安全策略的方式进行信息传输,因此假如中存在隐通道,则中必然存在满足安全模型但却违反安全策略的信息流动方式。

使用函数代表模型所能覆盖的安全空间,则代表安全策略所确定的安全空间,代表安全模型所确定的安全空间。多数情况下,,只有理想化的安全模型,才能够完全实现安全策略,即,此时有。受到技术人员水平以及软硬件环境等多方面因素的影响,在从安全策略向安全模型翻译的过程中,多少会有偏差,即,此时在中便会存在隐通道。因此,安全模型所覆盖的安全空间未能彻底涵盖安全策略的要求,是隐通道形成的根本原因[12]。

3 隐通道典型案例

3.1 磁盘移臂隐通道

最早被发现的隐通道为磁盘移臂隐通道,1977年由Marvin Schaefer等人在KVM/370系统中发现。该隐通道属于存储隐通道,发送方和接收方之间的数据通信载体为磁盘磁臂的移动路径[13]。

假设在一个高安全等级系统中存在两个进程,分别为和,的安全等级高于,并且已被恶意用户控制,试图将敏感数据发送于。但由于高安全等级系统中存在强制访问控制策略,无法访问的数据,同时无法直接与进行通信。此时,可利用系统存在的安全漏洞,采用表面上合法的方式,绕过强制访问控制策略,将敏感信息泄露给。具體过程为:

(1)开辟一个属于自己的文件目录,该文件目录所占用的磁道编号为51、52、53、54、55、56、57、58、59,同时可对该文件目录进行合法读取和访问;

(2)请求读磁道55,请求完成后,释放CPU资源;

(3)如要发送“比特1”,请求读磁道57,请求完成后,释放CPU资源;

(4)如要发送“比特0”,请求读磁道53,请求完成后,释放CPU资源;

(5)同时请求读磁道52和磁道58,若首先完成了对磁道52的访问,则确认收到“比特0”,若首先完成了对磁道58的访问,则确认收到“比特1”。

不断重复上述操作,和可以在不违反系统强制访问策略的前提下,传送连续的比特流,整个过程如图1所示。

3.2 数据包间隔隐通道

数据包间隔隐通道多出现于计算机网络中,该隐通道属于时间隐通道[14]。假设在一个高安全等级网络中存在两台主机,分别为和,已被恶意用户控制,试图将敏感数据发送于。在向发送敏感数据之前,通过合法通信对相邻数据包的到达时间间隔进行约定:

(1)如果接收相邻两个数据包到达的时间间隔超过ls,则表示所要发送的数据为“比特0”;

(2)如果接收相邻两个数据包到达的时间间隔小于0.5s,则表示所要发送的数据为“比特1”。

依据相邻数据包到达的时间间隔对信息进行编码和解码,这种隐通道属于时间隐通道,数据收发双方不需要修改数据包的内容,也不会产生新的流量,仅通过调整正常通信过程中数据包的发送时间间隔即可达到信息传输的目的,该隐通道具有很高的隐蔽性[15]。

4 Quantum PLC设备隐通道分析

4.1 理论基础概述

4.1.1 施耐德电气Modicon Quantum

Quantum是法国施耐德电气有限公司开发的一款用于过程应用、高可用性和安全解决方案的大型可编程逻辑控制器(Programmable Logic Controller,PLC)[16]。该PLC设备广泛应用于冶金、电力、化工、建材等行业的工业控制和自动化领域,在处理离散变量、模拟量以及过程回路控制方面具有强大的能力。Quantum继承和发展了施耐德电气PLC产品的优势,并且融入了当今最先进的IT技术和网络技术,具有结构灵活、功能强大、使用简便、性价比高、集成度高、兼容性好等众多优势[17]。

4.1.2 Modbus协议

Modbus协议是一种串行通信协议,由Modicon(法国施耐德电气有限公司旗下品牌)公司于1978年发明[18]。通过此协议,控制器相互之间、控制器经由网络(例如以太网)以及其他设备之间可以进行通信,其已成为一种通用的工业标准。通过Modbus协议,不同厂商生产的控制器设备可连接成工业网络,从而实现集中监控[19]。

Modbus协议定义了一个与基础通信层无关的简单数据协议单元(Protocol Data Unit,PDU),特定总线或网络上的Modbus协议映射能够在应用数据单元(Application Data Unit,ADU)上引入一些附加域[20],Modbus帧的具体格式如图2所示。

启动Modbus事务处理的客户机会创建Modbus PDU,其中的功能码向服务器指示将执行哪种操作,常用的功能码及含义如表1所示。

4.2 测试环境搭建

本文基于搭建的真实PLC运行环境,采用流量分析技术,详细展示了该隐通道的工作原理。测试环境中的主要设备包括Quantum PLC、上位机、恶意主机以及防火墙,测试环境的逻辑部署图如图3所示。

将攻击机网卡设置为混杂模式,监听其所处网络内的所有数据包,Quantum PLC和上位机之间的数据通信可被攻击机获取;上位机按照一定的工艺流程下发相关控制指令,与Quantum PLC进行通信;Quantum PLC接收上位机下发的指令并执行相关操作,但目前Quantum PLC已被木马软件所控制,企图与攻击机进行通信;防火墙实现对的合法性以及指令的合法性检查。

4.3 隐通道构建

4.3.1 常规通信过程

上位机与Quantum PLC之间的正常通信会涉及到Quantum PLC寄存器与线圈的读写操作。上位机与Quantum PLC之间的常规数据交互如图4所示。

根据图4展示的内容可以发现,上位机与Quantum PLC之间采用的通信协议为Modbus,执行的指令主要为Read Input Registers、Read Coils、Write Multiple Registers以及Write Multiple Coils,上述指令对应的Modbus功能码分别为0x04、0x01、0x10以及0x0F,且上述四个指令往往按照一定顺序出现,即按照Read Input Registers→Read Coils→Write Multiple Registers→Write Multiple Coils的顺序依次出现。上位机利用上述功能码的Modbus协议发布读写指令,按照工艺流程来调整Quantum PLC寄存器的值,进而达到控制Quantum PLC的目的。在正常情况下,上位机发出的每个请求只会收到一个响应。

4.3.2 信息隐蔽传输

在此测试环境中,Quantum PLC处于内网当中且已被木马控制,但由于防火墙的存在,其无法将敏感数据直接发送于攻击机。防火墙虽然对敏感数据设置了访问控制策略/过滤规则,但其并不会限制针对Quantum PLC的正常读写操作。因此,攻击机可与内网木马约定通信规则,使用正常的、合法的Modbus数据帧,绕过防火墙的约束,达到信息隐蔽传输的目的。

攻击机可根据网络中Modbus响应的数量规律,与Quantum PLC之間构建信息传输的隐通道,具体方式为:

(1)约定数据传输“开始”信号。当攻击机在网络中首次监听到两个Write Multiple Registers响应时,即可认为Quantum PLC准备向其发送数据,具体过程如图5所示;

(2)传输比特“0”的信号。隐蔽数据传输开始(即收到数据传输“开始”信号)后,在收到数据传输“结束”信号前,如果一个Write Multiple Registers请求对应一个Write Multiple Registers响应,则认为Quantum PLC向攻击机发送比特“0”,具体过程如图6所示;

(3)传输比特“1”的信号。隐蔽数据传输开始(即收到数据传输“开始”信号)后,在收到数据传输“结束”信号前,如果一个Write Multiple Registers请求对应两个Write Multiple Registers响应,则认为Quantum PLC向攻击机发送比特“1”,具体过程如图5所示;

(4)约定数据传输“结束”信号。当攻击机在网络中首次监听到三个Write Multiple Registers响应时,即可认为Quantum PLC结束数据发送,具体过程如图7所示。

通过上述方式,Quantum PLC上的木马程序可将敏感信息(如制造工艺、设备重要参数等)编码为零一比特串,利用构造好的隐通道,以比特为单位向攻击机传输数据,攻击机只需对接收到的零一比特串进行解码即可。由于Write Multiple Registers响应为Write Multiple Registers请求的正常反馈,且未传递任何敏感信息,因此防火墙并不会对其实施拦截,Quantum PLC也不会发出任何报警。

4.4 实验分析

在测试环境中构建文中第3.3节所述隐通道,通过分析网络中的数据包来验证该隐通道的信息隐蔽传输特性。

假设试验场景:Quantum PLC要将比特串“10”传输给攻击机。信息隐蔽传输的整个过程如下。

(1)正常通信

在Quantum PLC向攻击机传输数据之前,上位机与Quantum PLC通信正常,此时攻击机捕获的流量信息如图8所示。

根据图8展示的流量信息,在正常通信情况下,一个Write Multiple Registers请求对应一个Write Multiple Registers响应。

(2)传输开始

Quantum PLC开始数据传输时,会向攻击机发送“开始”信号,攻击机会首次捕获如图9所示的网络流量信息。

根据图9展示的流量信息,Quantum PLC在收到一个Write Multiple Registers请求后,反馈了两个Write Multiple Registers响应,此后攻击机会持续记录Write Multiple Registers响应的数量变化规律。

(3)传输比特“1”

Quantum PLC准备传输比特“1”时,攻击机会捕获如图10所示的网络流量信息。

根据图10展示的流量信息,在攻击机收到数据传输“开始”信号后,Quantum PLC针对一个Write Multiple Registers请求,反馈了两个Write Multiple Registers响应,此时攻击机记录数据:比特“1”。

(4)传输比特“0”

Quantum PLC准备传输比特“0”时,攻击机会捕获如图11所示的网络流量信息。

根据图11展示的流量信息,在攻击机收到数据传输“开始”信号后,Quantum PLC针对一个Write Multiple Registers请求,反馈了一个Write Multiple Registers响应,此时攻击机记录数据:比特“0”。

(5)传输结束

Quantum PLC结束数据传输时,会向攻击机发送“结束”信号,攻击机会首次捕获如图12所示的网络流量信息。

根据图12展示的流量信息,Quantum PLC在收到一个Write Multiple Registers请求后,反馈了3个Write Multiple Registers响应数据包,此后攻击机不再记录Write Multiple Registers响应的数量变化规律,直至再次遇到Quantum PLC发出“开始”信号。

在上述数据传输过程中,所有数据包均未被防火墙拦截,且Quantum PLC未发出异常报警,Quantum PLC与攻击机通过构建隐通道的方式绕过了防火墙的访问控制策略/过滤规则,成功实现了敏感信息的隐蔽传输。

5 结束语

本文以工业软件领域存在的隐通道为研究对象,系統分析了隐通道的定义、分类、成因以及典型案例。同时,以Quantum PLC设备为实验对象,基于本地搭建的测试环境,通过构建真实的隐通道应用场景,详细阐述了工业软件领域隐通道的构造过程以及数据传输过程。通过实验数据可以看出,本文构建的隐通道成功绕过了防火墙的访问控制策略/过滤规则,实现了敏感信息的隐蔽传输。本文各项实验均在本地搭建的测试环境中完成,拟在下一步工作中,在真实的工业生产场景中开展工业软件隐通道相关研究,并探索隐通道的有效检测手段。

参考文献

[1] 张曙.工业4.0和智能制造[J].机械设计与制造工程, 2014(8):1-5.

[2] 苏楠,陈志.工业软件是制造强国之重器[J].科技中国, 2019,260(05):9-11.

[3] 靳江红,莫昌瑜,李刚.工业控制系统功能安全与信息安全一体化防护措施研究[J].工业安全与环保,2020.

[4] 张猛,孙昊良,杨鹏.基于改进卷积神经网络识别DNS隐蔽信道[J].通信学报,2020.

[5] 张博.网络安全之IP隐通道研究[J].网络安全技术与应用, 2018,215(11):18-19.