基于多变体的控制软件异构冗余与动态重构技术研究
2017-02-27员天佑周小伟安宝冉
员天佑,刘 金,周小伟,安宝冉
(中国工程物理研究院计算机应用研究所,四川 绵阳 621900)
基于多变体的控制软件异构冗余与动态重构技术研究
员天佑,刘 金,周小伟,安宝冉
(中国工程物理研究院计算机应用研究所,四川 绵阳 621900)
针对控制软件的防篡改问题,从工控安全角度出发,提出了一种利用多变体技术和虚拟化技术构建控制软件动态目标防御体系的新方法;通过多变体的异构冗余、动态重构和多模表决实现了软件层面的主动防御和安全态势感知,通过虚拟化技术实现了多变体执行环境的快速构建;着重介绍了技术路线、系统架构、动态重构策略、表决算法和同步机制;研究结果表明,该技术在提高控制系统可靠性的同时,使其具备了较强的主动安全防御能力。
多变体;动态目标防御;工控安全;异构冗余;动态重构
0 引言
工业控制系统长期遵循COTS原则,强调开放性、兼容性和可靠性,对信息安全的关注度不够[1],在信息化和工业化融合过程中逐步暴漏出严重的安全隐患。“震网”[2-3]事件的发生有力证明工业控制系统逐渐成为网络黑客、恐怖分子和敌对国家的重点攻击对象[4]。由于工业控制系统遍布工业、能源、水利、交通、市政和军工设施等重要领域,一旦出现问题将给工业生产、国家经济安全和人民生命财产造成巨大损失。为此工信部、国务院专门出台相关文件要求重视和加强工控系统信息安全。
目前的技术防护措施大都从传统信息安全领域继承而来,期间也不乏有新理论、新思想的提出。美国的动态目标防御技术[5-8]和我国科学家提出的拟态安全思想,成为颠覆传统防御思想的典型代表。旨在改变“游戏规则”,通过目标对象内在形态的多样化、动态化和随机化,使传统的基于先验知识和静态特性的攻击难度和成本大幅增加,是对象本身具备主动防御特性。
本文以动态目标防御和拟态安全思想为基础重点探讨利用多变体技术实现控制软件异构冗余和动态重构的技术途径。通过在虚拟环境下构件一套支持异构冗余、多模表决、动态重构和异常行为感知的多变体执行环境,确保单个控制软件变体被恶意篡改或出现异常时,控制系统功能不受影响。
1 系统结构
软件多变体是指功能等价,结构不同的软件个体[9-10],当多个变体同时运行时,通过同步比较它们的行为,可以感知由攻击导致的系统异常,并通过输出结果表决机制避免控制系统出错。要构件这样一个多元化的系统,要有足够多的变体程序和支撑多变体运行并能对其进行有效监控的执行环境。软件多变体可以通过随机编译技术自动生成,也可以人工编制。
多变体执行环境的结构复杂,由监视器、执行器和表决器构成,本文拟通过虚拟化技术进行构建,具体方法为:利用内核虚拟化技术构建多个虚拟容器,将控制软件的不同变体置于不同的容器中,它们之间通过通讯中间件进行数据访问、消息传递和行为同步,由监视器负责多变体控制软件的执行状态监测与同步控制,由多模表决器负责输出结果的仲裁和异常行为识别。系统综合运用了虚拟化技术、多变体技术和多模表决技术,攻击者很难穿透多个命名空间同时对多个变体进行精确攻击,使监控软件的安全性得到大幅提升。具体结构如图1所示。
图1 系统架构图
2 处理机制
多变体执行环境采用类似PLC的循环结构,由数据采集开始,经过信息输入,变体执行和结果表决,最终产生正确的控制信号。数据采集器负责收集设备状态信息、传感器信息、运行参数和控制指令等,将其统一传递给多个执行器;执行器并行运行多个控制软件的变体程序,通过一系列控制业务相关的复杂运算产生多个输出结果给表决器;表决器通过表决产生唯一正确的控制信号,输出给被控对象。整个循环执行过程由监视器进行监测,并通过各种同步信号对数据采集器、执行器和表决器的行为进行精确控制。系统运行过程中如果有控制程序被恶意篡改,执行器将输出错误的运算结果,通过多模表决可以实现容错处理,确保控制系统稳定运行,同时对执行器的这一异常行为进行感知,并通过人机接口向操作员发出报警指示。具体结构如图2所示。
图2 多变体执行环境内核模型
中间件可在不同虚拟容器之间进行高效通讯,各部组建之间的数据及信息传递通过它来实现。
该模型中监视器发挥着至关重要的作用,其它模块的行为由它通过同步信号进行严格控制,其控制行为可通过图3所示的有限状态机加以描述和实现。
S0:初始化,配置各模块的运行参数,随机加载多变体程序;
S1:触发数据采集模块进行数据采集,等待结果;
S2:将采集数据统一传递给所有的执行器;
S3:触发执行器运行,等待结果;
S4:获取执行结果,将其传递给表决器;
S5:触发表决器,等待结果;
S6:获取表决结果,将正确结果输出;
S7:超时处置;
S8:表决错误,输出安全值;
S9:循环周期等待。
图3 监视器控制状态图
状态迁移过程通过表1中的同步信号进行触发,在软件实现时这些信号以消息的形式存在,通过中间件进行传递。
表1 同步信号表
3 动态重构策略
本课题主要研究应用软件层面的控制系统动态重构技术。拟通过两种方法实现:一是在系统启动过程中随机选择多个变体程序进行动态加载和运行,实现启动环节的动态重构。二是在系统运行态同时并行运行多个变体,随机选择其中3个变体的输出结果进行表决,实现运行态动态重构。这两种方法可混合使用。为了确保表决器不受攻击,可通过沙箱进行保护,后期可采用FPGA对表决算法进行硬件化处理。
4 多模表决算法
在工业控制系统中,运算结果最终以数字量和模拟量形式呈现,通过I/O模块输出到设备。其表决方法也有所不同。
1)数字量表决算法。
对于离散量而言,运算结果有“true”和“false”两种情况,分别用“1”和“0”表示,其表决算法为:
Out=(Out1&Out2)|(Out2&Out3)|(Out1&Out3)
2)模拟量表决算法
模拟量通过相似度判定法则进行表决,具体方法为:将a,b,c三个运算结果值看作同一坐标轴上的三个点,求它们之间的欧几里德距离,通过欧几里德距离判定它们之间的相似程度。欧几里德距离计算公式为:
表2 真值表
判定结果分为相似和非相似两种情况,通过与一个事先设定的阈值λ作比较,大于等于该值表示差异较大,小于该值表示相似,判定结果用&表示,具体表达式如下:
仲裁规则如下所示,L代表表决后的正确输出值,m代表安全输出。本例只考虑3个变体程序中的一个被恶意篡改产生错误输出时的结果仲裁。当3个变体中有二个以上的变体程序被篡改时仲裁没有意义。
&ab&ac&bcL
5 结论
传统的控制系统冗余大都采取软硬一体的同构、热备方式,在可靠性方面可以做到故障切换,但很难实现系统级的多模冗余容错。在信息安全方面完全是一个开放、同构、静态的系统,极易受到攻击,如果控制程序被恶意篡改产生错误的运算结果和输出,系统将无法识别。本文所提出的多模异构冗余和动态重构技术虽然仅限于控制软件层面但能同时兼顾可靠性和安全性。由于系统在启动和运行过程中能够动态重构,且具备多模冗余表决机制,在单个控制软件变体被恶意篡改或出现错误时系统控制功能不受影响,具备一定的主动安全防御功能。在系统实现方面利用成熟的虚拟化和中间件技术,共享一套硬件资源,成本低、可实现性强。本文研究重点是多变体执行环境构建、同步技术和多模表决机制,给出了模型和算法,软件实现过程不做详解,用户可根据需要选择不同的语言进行开发。
由于采取了多模冗余和表决技术,系统的实时性会有一定影响,但在硬件性能不断提升的今天,依然能够满足大多数控制系统的应用需求。
[1] Dzung D, Naedele M, von Hoff T, et al. Security for industrial communication systems[J]. Proceedings of the IEEE, 2005,93(6):1152-1177.
[2] 华 镕.震网给工业控制敲响了警钟[J].仪器仪表标准化与计量,2011(2):30-34.
[3] 严宵凤.震网引发网络安全新思考[J].信息安全与技术,2011,2:17-19.
[4] Shreeve J L. The new breed of cyber terrorist, The Independent,online edition[EB/OL]. http://news.independent.co.uk/world/science technology/article622421.ece, May 2006.
[5] 张晓玉,李振邦.移动目标防御技术综述[J].通讯科技,2013(6):111-113.
[6] Sushil J, Anup K G, Vipin S, et.al.Moving Target Defense-Creating Asymmetric Uncertainty for Cyber Threats[M].[s.l]:Springer Press,2011,1.
[7] Matthew D, Stephen F, William U, et.al, MT6D: A Moving Target IPv6 Defense[C].MILCOM.U.S:IEEE Communication Committee,2011,1321-1326.
[8] Jafar H J, Ehab A, Quan Q. Transparent Moving Target Defense Using Software Defined Networking[J].HotSDN,2012(12):127-132.
[9] Cox B, Evans D, Filipi A, et al.N-variant systems:A Secretless Framework for security through Diversity[A]. Proceedings of the 15th USENIX Security Symposium[C]. pages 105-120.USENIX Association,2006.
[10] Salamat B, Jackson T, Wagner G,et al. Run-Time Defense against Code Injection Attacks using Replicated Execution[J]. IEEE Transactions on Dependable and Secure Computing,2011.
Research on Heterogeneous Redundancy and Dynamic Reconfiguration of Control Software Based on Multi-Variant
Yun Tianyou, Liu Jin, Zhou Xiaowei, An Baoran
(Institute of Computer Application, China Academy of Engineering Physics, Mianyang 621900,China)
To meet the anti-tamper requirement for control software, a new method is proposed to construct the moving target defense system of control software based on multi-variant and virtualization. The function of active defense and security situational awareness is achieved by heterogeneous redundancy, Dynamic reconfiguration and multimode voting of variant. multi-variant execution environment is structured by virtualization. The technical route, system architecture, dynamic reconfiguration, voting algorithm and synchronization mechanism are detailed in this paper. The research results show that this technique can improve the reliability and security actively for industrial control systems.
multi-variant;moving target defense;industrial control security;heterogeneous redundancy; dynamic reconfiguration
2016-07-22;
2016-08-24。
国家重点研发计划项目(2016YFB0800203);国防基础科研项目(JCKY2016212C005)。
员天佑(1977-),男,高级工程师,主要从事自动控制、故障诊断和工控安全相关技术方向的研究。
1671-4598(2017)01-0105-02
10.16526/j.cnki.11-4762/tp.2017.01.030
TP3
A