
最全工控资料库和软件库:(点击标题试试)
针对工控系统面临的主要安全问题进行较为深入的分析,结合自主可控技术、可信计算技术、冗余容错技术,设计自主可信工控计算机、三模冗余可信执行装置,提出一种可信联锁互锁方法,探索一种实现工控系统安全的途径。实验结果表明,该系统能够完成对操作站关键安全属性的可信度量,能够确保执行装置每一步动作的安全,系统开销可控制在接受范围内。
0
引 言
工业控制系统(industrial control systems,ICS)一旦遭到恶意破坏,重要信息被截获,所造成的损害可能极为严重,甚至可能造成人员的生命安全,这将是互联网络安全事件无法比拟的。2010年美国和以色列运用“震网”病毒成功袭击了伊朗布什尔核电站的工业控制系统。在此之后,有关工控系统的安全事件被陆续曝光,
例如2011年,美国伊利诺伊州城市供水系统被入侵,导致供水泵被破坏;2012年,两座美国电厂遭USB病毒攻击,工控系统中的数据被窃取。
通过上述案例可以看到,由于传统的工业控制系统在设计时过多地考虑效率和实时性,而没有将安全性进行同步考虑,从而留下了大量安全隐患。
针对上述问题,本文基于自主可控技术、可信计算技术提出了一种工控系统安全可信的实现方法。
1
工控系统安全问题分析
随着工业控制系统信息化程度的提高,越来越多的通用协议、通用硬件和通用软件被应用于工业控制系统,由此传统计算机系统中的病毒、木马等威胁也开始向工业控制系统扩散,安全问题日渐凸出。归纳起来,造成工控系统安全问题的主要原因有以下几方面。
1.1 基础软硬件自主可控的问题
目前大多数工业控制系统的工程师站/操作站/HMI安装使用的仍都是基于国外基础软硬件的产品,例如操作系统主要是Windows系统或VxWorks系统。而且为保证过效率及系统的稳定性,通常现场工程师不会对系统安装任何补丁,从而埋下安全隐患。更为严重的问题是,操作系统的非国产化导致无法实现真正的“自主可控”,攻击者可以通过在操作系统中预置“逻辑炸弹”或“后门”窃取重要数据或直接对工控系统进行破坏。
例如2009年的Windows黑屏事件足以证明,通过预置的“后门”可随时关断我们的系统。
1.2 通信协议的问题
工业控制系统越来越广泛地采用TCP/IP等通用协议,导致传统通信协议漏洞也被大量引入工控系统。例如,基于微软的DCOM协议的OPC Classic协议(OPC DA,OPCHAD和OPC A&E)采用不固定的端口号,导致极易受到攻击。又如路由交换协议,
包括VLAN、QinQ、DHCP、OSPF、BGP、RIP、IGMP、IGMP snooping、PIM等,设备厂商一般都有一些私有的扩展。私有协议由于其不可控制性,不可避免存在巨大安全风险。
1.3 安全策略和管理的问题 由于缺少安全方面的专家指导和经费投入,很多工业控制系统在设计时对安全问题考虑不足、管理也不到位,留下了大量安全隐患。例如笔记本电脑、移动硬盘、U盘等移动存储介质通常可以随意接入工控系统。
1.4安全防护的问题 通用计算机系统为了确保主机安全通常会安装杀毒软件、IDS等。对于工控制系统,通常不会安装任何杀毒软件、IDS。因为即使安装了杀毒软件、IDS等安全产品,由于需要不定期的升级,无法适应工业控制环境。
1.5 应用软件的问题 现在的工控系统软件的开发不像IT信息系统软件在开发时会按照软件工程的要求,拥有严格的安全软件开发规范及安全测试流程,因此造成工控系统拥有较多的安全漏洞。
恶意攻击者很有可能会利用这些安全漏洞实施破坏。总之,来自信息网络的安全威胁将逐步漫延到工控系统,这也是我们当前迫切需要研究的重大问题。
不管攻击者的目的是出于经济目的,还是国家间网络对抗的需要,都需要我们深入研究工控系统的安全问题,并提供切实有效的安全防护措施和方法。
2
系统总体设计
本系统主要由操作站和执行装置组成。操作站采用自主可信工控计算机,操作站会向执行装置发出指令,执行装置接到命令后执行开启、停止、状态保持等控制动作,系统组成如图1所示。
其中操作站采用嵌入了可信密码模块(trust cryptography module,TCM)的自主可信工控计算机,以确保主机安全;执行装置中设计了三模冗余可信度量模块,实现对操作站的可信验证,同时通过三模冗余设计,提高自身的可靠性。

操作站向执行装置发送的每一条指令中包含自身当前的可信值。
该值由操作站中可信度量系统生成、维护并保存于可信密码芯片TCM中。执行装置中的三模冗余可信度量模块在收到指令后,首先读取指令中的可信度量值,通过与预置的标准值进行对比,判断操作站当前状态是否可信,若是可信状态则执行当前指令,若是不可信状态则认为操作站已发生安全问题,其发送的指令不再可信,指令将被拒绝执行。
2.1 自主可信工控计算机的设计与实现
工控机本质上是一种加固的增强型个人计算机,通常采用全钢化工业机箱,使用插板式结构,设有“看门狗”定时器等。工控机虽然外表“强悍”但目前国内的工控机处理器主要基于Intel CPU,操作系统大多采用Windows或VxWorks,数据库多是ORACLE或SQL Server,自主可控水平低,存在大量安全隐患。近年来,我国在自主可控方面的取得了一系列显著成果,尤其是在国家核高基以及863、973等重大专项的支持下,国产处理器、国产操作系统等核心软硬件已经具备对国外产品的替代能力。
例如国产处理器方面有龙芯、飞腾、国芯、申威等产品;在国产操作系统方面,有中标麒麟、ReWorks、天熠等产品;在国产数据库方面,主要有达梦、神舟OSCAR、金仓等通用数据库产品;在计算机外围部件(如内存、外存、显示屏、电源、安全控制芯片)、办公软件、服务中间件等方面,也有了相应的自主技术和产品。总之,这些成果为实现工控制系统真正的“自主可控”奠定了基础。
2.1.1 自主可信工控计算机总体设计
自主可信工控计算机基于CPCI总线架构,整机主要由两个计算单元、存储单元、两个网络交换单元、供电单元、散热单元、背板、机箱等组成。计算单元是整个系统的核心。计算单元板载设备管理模块管理系统状态,板载端口控制芯片提供硬件级端口控制通路,板载TCM模块提供可信密码服务和系统控制通路。图2为计算单元原理。

其中,考虑到上下游产业链的成熟度,处理器采用龙芯3A处理器。
龙芯3A处理器采用MIPS指令集,其工作频率为900MHz~1GHz。芯片组采用AMD780E芯片组(包括RS780E北桥芯片和SB710南桥芯片)。AMD780E支持HT1.0和HT3.0协议,传输速率高达4.4GT/s,内部集成图形控制器,支持DirectX10,提供两个PCI-Ex8总线接口控制器,为高速网络接口提供足够的数据带宽。SB710提供一条33MHz/32位PCI总线;SB710集成5个OHCIHost控制器和两个EHCI Host控制器,提供高达12个USB2.0接口。SB710集成SATA Host控制器,可以提供多达6个SATA接口。网络控制利用780E提供的PCI-E总线扩展思路千兆以太网接口。
千兆以太网控制芯片采用Intel 82574芯片。Intel 82574芯片集成了符合802.3标准的MAC控制器、PCI-E总线控制器、内部缓存、物理层信号收发器。
可信密码模块通过可信控制电路,可以实现端口控制、主动度量等功能。可信控制电路主要包括见表1。计算单元结构布局及可信核心电路连接关系如图3所示。


2.1.2 可信度量功能的实现 部署在自主可信工控计算机上的可信度量系统实时检测工控机的硬件信息、杀毒软件信息、重要系统文件完整性状态以及是否有非法USB设备接入等安全属性,并将检测结果转换成系统值。系统值与当前平台状态可信值执行扩展运算生成新的可信度量值,保存于TCM的PCR寄存器中。
在向执行装置发送指令前,调用GetHash()函数获得PCR寄存器当前的平台可信值,连同指令一并发给执行装置进行检测。主要流程如图4所示。

其中,主要功能函数说明如下:
(1) oc():检测工控机的主要硬件的完整性。
(2)Clamdtest():检测杀毒软件是否开启及病毒库版本号是否最新。
(3)Filetest():通过哈希计算检测计算指定文件的完整性。
(4)USBtest():检测是否有非法USB设备接入。
(5)Changexxz():将检测结果转换成相应系统值。
2.2 三模冗余可信度量模块设计
2.2.1 三模冗余可信度量模块总体设计 三模冗余可信度量模块遵循容错设计思想,采用了三模冗余设计,整个系统的输入、输出、处理3个模块都采用了三模冗余的设计方法,各模块能通过表决的方式,检测、屏蔽和隔离产生的故障。各处理器之间通过双端口RAM进行两两通信,而通过串口与上位机进行通信,三处理器模块共用一个外设总线与外界进行输入输出通信,如图5所示。

操作站通过串口给A,B,C这3个控制模块发送指令,3个模块收到指令后,通过握手协议进行通信,握手成功后,由其中一个模块通过串口给上位机回复确认信号。然后各自执行任务,执行完任务后,两两控制模块通过双端口RAM相互通信,并各自对结果进行表决或是比较,然后通过外设总线控制数字的输入输出、A/D、D/A、电机控制等。
2.2.2 可信度量功能的实现 操作站工控机向执行装置发送指令时会从TCM的PCR寄存器中读取可信值并将该值通过串口传送给三模冗余模块进行检验。从串口传入的度量值会直接发送给三模冗余模块的3个计算单元(CPU1~CPU3),每个计算单元调用mima()函数与预存值进行校验,CPU1、CPU2和CPU3将校验结果两两互传,并调用zhongcai()函数按2∶1方式进行仲裁,仲裁结果通过协商由最先完成仲裁计算的CPU负责输出。
若仲裁通过则执行该指令,反之则丢弃该指令。工作流程如图6所示。

3
实验测试
测试环境由操作站(自主可信工控机)和执行装置两部分组成,操作站上运行功能测试软件。在向执行装置发送指令前点击功能测试软件的“校验”按钮,操作站将可信度量值发送给三模冗余度量模块,三模冗余模块会对操作站的可信性进行度量,若度量通过,则在校验结果显示区显示“三模冗余密码安全装置可信校验成功!请发送指令!”,允许操作站发送的指令,否则显示“三模冗余密码安全装置可信校验失败!拒绝接收指令!”。实验测试结果表明,该系统能够完成对操作站关键安全属性的可信度量,确保执行装置所执行的每一条指令作都来自合法操作站,且操作站的安全状态符合预定的安全策略。
针对增加可信度量功能对系统性能的影响进行测试。增加可信度量功能与未增加可信度量功能的系统的CPU占用率对比如图7所示。

增加可信度量功能与未增加可信度量功能的系统的内存占用率对比如图8所示。

操作站与执行装置间收发指令时延的对比如图9所示。

性能测试表示,增加可信功能后,CPU占用率增加约1.4%,内存占用增加约1.8%,操作站与执行装置间收发指令增加的时延小于200ms。综合来看,增加可信功能后对系统性能的影响很小,不会对用户体验造成实质性影响,对于实时性要求不高的一般性应用其影响也可以忽略不计。
4
结束语
本文针对工控系统中的一种典型应用场景,提出了一种安全可信解决方法,通过三模冗余设计、可信联锁互锁设计,提高了系统的安全性、可靠性,确保病毒、木马等恶意攻击对操作站的破坏不会影响到执行装置的正常运行,确保执行装置能够始终安全、可靠地运行。
通过实验,进一步验证了相关设计方法及实现机制的可行性。相关技术和观点可应用于各类有高安全性要求的工控系统领域。

推荐阅读(点击标题试试)
点击文章顶部“易维通订阅号”进入公众号,回复“XZ”可查看资料库已经更新的资料列表。
长按以下二维码分别进入【软件库】和【资料库】自助下载。


声明:本微信转载文章出于非商业性的教育和科研目的,并不意味着支持其观点或证实其内容的真实性。版权归原作者所有,如转载稿涉及版权等问题,请立即联系我们,我们会予以更改或删除相关文章,保证您的权利!

