基于FNN的多Agent SCADA安全防御模型*

2016-12-23 07:25赵恒博曹谢东
网络安全与数据管理 2016年7期
关键词:知识库职责职能

赵恒博,曹谢东

(西南石油大学 电气信息学院,四川 成都 610500)



基于FNN的多Agent SCADA安全防御模型*

赵恒博,曹谢东

(西南石油大学 电气信息学院,四川 成都 610500)

作为ICS(Industrial Control System)的重要组成部分,SCADA(Supervisory Control and Data Acquisition)受到的恶意攻击与日俱增。为了充分确保其信息安全,可以选择多Agent技术来实现基于FNN(Factor Neuron Network)的安全防御方法,并最终建立起一个SCADA系统安全防御模型。该模型继承了多Agent技术与FNN的优点,配置方便,易于维护,可以实时更新以及在线扩展,具备良好的通用性与可塑性,从而克服了现有IDS(Intrusion Detection System)的诸多不足,有效保障SCADA安全可靠地运行。

多Agent;FNN;安全防御;SCADA

0 引言

据权威工业安全事件信息库[1]发布的数据统计,截止2015年1月全球已发生近300起针对ICS的攻击事件。自2001年起,随着通用开发标准与互联网技术的广泛使用[2],针对ICS的攻击行为出现大幅增长。

鉴于SCADA信息安全所面临的严峻形势,而现有的入侵检测系统(Intrusion Detection System,IDS)又存在大量不足[3-4]:(1) 虚警率偏高;(2) 事件响应与恢复机制不完善;(3) 在对抗未知攻击、分布式攻击与渐进式攻击时力不从心;(4) 配置复杂,扩展能力差等,本文提供了一种基于因素神经网络理论的安全防御方法,并将其与多Agent技术融合,构建起一个智能的SCADA安全防御模型。

1 基于FNN的安全防御方法

基于FNN的安全防御方法[5]的结构如图1所示。其中,i,j,k,m,n∈+,图中各节点的意义如下:

图1 安全防御方法的拓扑结构

(1)IN(Identify Neuron)为执行神经元;

(2)KN(Knowledge Neuron)为因素知识库神经元;

(3)MN(Management Neuron)为管理神经元;

(4)RN(Release Neuron)为发布神经元;

(5)SN(Statistic Neuron)为统计神经元;

(6)TN(Track Neuron)为追踪神经元;

(7)AN(Analysis Neuron)为分析神经元;

(8)EN(Evaluation Neuron)为评价神经元;

(9)WN(Warning Neuron)为预警神经元。

2 多Agent安全防御模型的实现

相较于传统的IT系统,SCADA安全防御面对的问题有其特殊性[6],两者主要的区别如下:

(1)SCADA对于实时性的要求非常高,对延迟和抖动均有严格限制,因此安全通信占用的流量不能过高;

(2)SCADA始终处于连续不间断的工作状态中,诸如重启系统之类的解决方案不被接受;

(3)SCADA的安全防御优先保障人员安全,其次是工业生产过程,而非存储或传输的数据;

(4)SCADA系统是一个大型的异构网络,体系结构更加复杂,拥有许多专用的通信协议或规约;

(5)SCADA系统硬件换代与软件更新的周期比传统IT系统长很多,因此存在的问题也更多。

鉴于以上原因,本文选用多Agent技术实现上述基于主机的防御方法,其主要优点如下[7-8]:

(1)多Agent丰富的协作机制能有效对抗复杂的攻击行为,如组合攻击,提高了系统的检测精度;

(2)通过将因素神经元的职能与职责合理地分布到多台主机上,从而提升了整个系统的实时性;

(3) Agent具有良好的适应能力,因此在为其重新分配职能与职责时,无须重启整个系统;

(4)在大型的异构网络环境中,各个Agent相对独立,局部失效不至于影响系统其余部分正常工作;

(5) Agent具有优秀的学习能力,可以不断完善感知引擎,改进模式识别算法,提高处理效率。

2.1 因素神经元的实现

定义1 因素神经元可以用一个三元组表示为

FN=

其中,S(State)表示因素神经元的状态,通常以因素形式表达,体现了因素神经元关于环境的感知;R(Reasoning)为因素神经元的推理机,使其可以根据已有知识利用CBR(Case-based Reasoning)或RBR(Rule-based Reasoning)做出合理的动作;A(Action)是因素神经元可以执行的全部动作的合集,除了对攻击行为作出的应对措施之外,还包括上传数据、弹窗提醒以及知识更新等。

从上述定义不难看出,FNN中的因素神经元具有自主性,能够感知并影响环境,这与Agent的定义不谋而合,因此可以通过Agent技术实现。

Agent实现因素神经元的通用结构如图2所示,下面以执行神经元为例进行说明。

图2 采用Agent实现FN的通用结构

(1)部署在主机上的Agent感知到程序的行为因素,如API(Application Programming Interface)函数调用,便更新自身的状态;

(2)同类恶意程序尽管特征码不同,但其API函数调用序列却很相似,从而使Agent可以根据知识库中的规则进行推理或匹配,判断程序是否具有恶意性;

(3)针对不同类型的攻击,Agent可以根据需要选择阻止、隔离、删除以及恢复等动作执行;

(4)Agent将攻击信息及其处理结果向上(如承担统计神经元职能的Agent)汇报。

上述过程可用代码表示如下:

function Agent(factor)

state = update_state(state, factor)

conclusion = reasoning(state, knowledge, communicate)

action = run_action(conclusion, target)

return action

上述识别与推理的方法存储于Agent的知识库中,与Agent运行的框架是分离的,可以单独实时在线更新,充分展示了Agent的灵活性与智能性。

除此之外,Agent装载的知识也决定了它的具体功能,可以根据环境进行动态配置或增加新的功能,从而确保SCADA始终能处于连续不间断的工作状态中,该特点亦使多Agent系统在部分Agent失效时,仍能维护全局的安全。

2.2 因素神经元的职能与职责

定义2 因素神经元的职能可记为一个六元组

P=

其中,class标示了因素神经元的类型,即IN、KN、MN、RN、SN、TN、EN、AN或WN;level体现了因素神经元在SCADA中的层次,如Ak部署在调度层,Bij部署在监控层,Cmn部署在现场层,并且反映出上下位关系,如B1j归属于A1;work表示因素神经元需要执行的工作,包括工作目标与工作步骤两个部分;permission 为因素神经元的权限,限制了其可以执行的动作及其能够调用的系统资源;θ 为边界约束,其影响因素神经元的动作,如实时性要求高时,对网络负荷较小的动作被优先考虑。

定义3 因素神经元的职责可记为一个三元组

J=

其中,target为一个逻辑表达式,当其值为真时,表示因素神经元已履行职责;task是因素神经元为了完成自身职责所需要执行的一系列相关联的任务,work是task的子集;Γ为任务划分表,用于将task分配给不同职能的神经元,以实现因素神经元之间的分工与协作。

表1所示是基于FNN安全防御方法的任务划分表,从中不难看出因素神经元相互之间的联系。显而易见,执行神经元是多Agent安全防御模型的核心,负责最根本的感知、识别与处理的任务,每台主机上都必须有承担该项职能的Agent。

对于因素知识库神经元与发布神经元说明如下:因素知识库存储了全部的行为因素规则,但发布神经元并不将其全部装载到每一个执行神经元。对于大规模SCADA系统而言,可能使用了多家厂商的PLC与组态软件等,发布

表1 因素神经元任务划分表

神经元会根据配置信息决定每个神经元需要装载的知识,从而减轻主机的资源消耗,提高系统的实时性。

2.3 FNN的初始化

定义4 因素神经网络可以用一个四元组表示为

FNN=<Σ,Π,f,Λ>

其中,Σ表示FNN中因素神经元的集合;Π表示实现FNN的Agent的集合;f是一个Σ→Π的映射,反映了因素神经元的职能由Agent实体承担的情况;Λ是部署函数,由Agent在SCADA系统中所处的位置决定,体现其在系统中的上下级关系。

从上述定义可以看出,FNN的初始化就是将因素神经元的职能与职责交由Agent承担的过程。对整个SCADA系统而言:(1)系统中的每台主机上至少运行着一个Agent;(2)系统中的每台主机上至少有一个Agent承担了执行神经元的职能;(3)某些满足权限要求等条件的主机上,Agent还承担了除执行神经元之外的职能,并且是对表1所列职能与职责的一个完全划分。

需要注意的是,Agent与因素神经元之间并非是一一对应的关系,一个Agent可以承担因素神经元多个不同的职能,并且根据需要动态调整,例如可将执行神经元与统计神经元的职能交由同一Agent承担;也可以为某个神经元的实现部署多个Agent,例如执行神经元不仅要感知上报攻击行为,也要扫描并上传主机的配置信息,前者需要时刻运行,而后者只在必要时进行,因此可用两个并行协作的Agent实现。总而言之,Agent只是承担因素神经元职责的软件实体,而因素神经元的职能则决定了Agent当前在FNN中的工作类型与管理地位。

除此之外,在多Agent主动防御平台运行的过程中,难免会有Agent因为硬件或软件的原因失效,为了保障系统整体的可靠性,就需要将失效Agent承担的职能与职责分配给其他能够胜任的Agent。

解决方案如下:当某一Agent失效时,其下属最空闲且满足权限要求的Agent将接替其职能。其中,Agent的空闲度由其他Agent与失效Agent通信次数之和确定。

2.4 模拟实验

本文选择JADE开发平台,每个Agent拥有独立的线程,拥有高效的并行机制,并且支持遵循FIPA规范的通信语言(Agent Communication Language, ACL)[9]。

JADE中提供有Behaviour类,用于Agent对事件的响应。除此之外,本机上的Agent相互收发信息只需调用send或receive方法即可;远程Agent通信则需要指定收信Agent的AID名及其地址。

对于Agent而言,知识表示是其智能行为的基础所在。对于多Agent安全防御模型而言,则由因素知识库负责存储、更新与维护行为规则。本文选用产生式—框架表示法进行描述的原因在于[10]:框架可以调用产生式规则,产生式规则也可以调用框架,二者取长补短,融为一体。下面是对震网病毒进行识别与处理的例子[11]:

<主机信息>

主机名称:SCADA-Host-T01

位置信息:100.78.198.113

组态软件:SIMATIC WinCC v7.0

<规则1>

因素: 在Windows关键目录下安装文件;

在注册表中创建自启动项;

替换文件“s7otbxdx.dll”

推断:<结论1>

发送:<主机信息> 与攻击事件信息

<结论1>

攻击类型:Stuxnet病毒

处理动作: 结束相关进程;

隔离衍生文件;

图3 模拟攻击产生的警示信息

在装有SIMATIC WinCC v7.0的主机A上利用模拟震网病毒的程序“Simulation.exe”进行攻击,部署在主机A上的AgentⅠ及时感知到该行为,并且马上采取了相应的处理措施,同时将遭受攻击的主机信息及攻击事件信息(包括攻击时间、攻击路径与处理结果等)发送至主机B上负责统计的AgentⅡ。图3所示是AgentⅡ展示给用户的警示信息。实验证明基于FNN的安全防御方法是可行的。

3 结论

基于FNN的安全防御方法克服了现有IDS的缺陷,能够有效保障SCADA系统的信息安全。本文从侧面验证了该防御方法的可行性,并且从实际应用的角度出发,采用多Agent技术建立起基于该方法的安全防御模型。

本文提出的SCADA安全防御模型是一个良好的通用框架,不仅仅局限于使用本文提出的基于程序行为的识别算法,还能通过更新因素知识库扩展其他新的方法。除此之外,该模型允许动态地分配因素神经元的职能和职责,解决了Agent可能出现的失效问题,从而使整个安全防御系统的可靠性得到保障。

[1] RISI. Therepository of industrial security incidents[DB/OL].(2015-12-01)[2015-12-11]http://www.risidata.com/Database.

[2] 张帅. 工业控制系统安全风险分析[J]. 信息安全与通信保密, 2012(3):15-19.

[3] 陈蔚, 庄毅. 基于多Agent的分布式入侵检测系统设计与实现[J]. 计算机工程与应用, 2004,40(29):139-141.

[4] 肖建荣. 工业控制系统信息安全[M]. 北京:电子工业出版社, 2015.

[5] 曹谢东, 梁鹏,杨力,等. 基于因素神经网络的油气管网SCADA安全防御方法:中国,CN104021345A[P]. 2014-09-03.

[6] STOUFFER K. Guide toindustrial control systems (ICS) security[R]. NIST Special Publication 800-82, 2008.

[7] 石磊, 党德玉, 沈学强. 一种基于JADE 平台的多Agent 入侵检测系统模型[J]. 中国科技信息,2008(5):109-110.

[8] 孙强, 王崇骏,王忠存,等. 采用多Agent 的网络攻防仿真模型[J]. 计算机工程与应用, 2010,46(20):122-125.

[9] 于卫红. 基于JADE 平台的多Agent 系统开发技术[M]. 北京:国防工业出版社, 2011.

[10] 姜跃, 朱光菊, 朱林立,等. 基于模糊逻辑的产生式-框架的知识表示及推理的研究[J]. 云南大学学报(自然科学版), 2007,29(S2): 171-174.

[11] 蒲石, 陈周国, 祝世雄. 震网病毒分析与防范[J]. 信息网络安全, 2012(2): 49-52.

SCADA security defense model based on multi-Agent and FNN

Zhao Hengbo, Cao Xiedong

(School of Electrical & Information, Southwest Petroleum University, Chengdu 610500, China)

SCADA is an important part of industrial control system, and the malicious attack on it is increasing. In order to ensure its information security, this paper selected a security method based on FNN and using multi-Agent to achieve it, then established a SCADA system security defense model. The model has advantages of both FNN and multi-Agent, such as easily configure or maintain, real-time update online, universal and plasticity. Therefore, it overcomes defects of the traditional intrusion detection system, and effectively ensures the safe and reliable operation of SCADA.

multi-Agent;FNN;security and defense;SCADA

国家自然科学基金面上项目(61175122)

TP277

A

1674-7720(2016)07- 0009- 03

赵恒博,曹谢东. 基于FNN的多Agent SCADA安全防御模型[J].微型机与应用,2016,35(7):9-11,21.

2015-12-11)

赵恒博(1992-),通信作者,男,在读硕士研究生,主要研究方向:工业控制系统信息安全、模式识别与智能控制。E-mail:ceares@vip.qq.com。

曹谢东(1954-),男,教授,主要研究方向:石油天然气工业控制系统及信息系统安全防御。

SCADA被广泛应用于水利、电力、石油化工、电气化、铁路等分布式工业控制系统(Industrial Control System, ICS)中,一旦信息安全方面出现漏洞,将对工业生产运行与国家经济民生造成重大隐患。

猜你喜欢
知识库职责职能
LNG安全监管职责的探讨
满腔热血尽职责 直面疫情写忠诚
职能与功能
徐钲淇:“引进来”“走出去”,都是我们的职责
基于TRIZ与知识库的创新模型构建及在注塑机设计中的应用
价格认定:职能转变在路上
高速公路信息系统维护知识库的建立和应用
各级老促会的新职责
基于Drupal发布学者知识库关联数据的研究
浅谈会计职能是否应该进行拓展