《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于FNN的多Agent SCADA安全防御模型
基于FNN的多Agent SCADA安全防御模型
2016年微型机与应用第07期
赵恒博,曹谢东
(西南石油大学 电气信息学院,四川 成都 610500)
摘要: 作为ICS(Industrial Control System)的重要组成部分,SCADA(Supervisory Control and Data Acquisition)受到的恶意攻击与日俱增。为了充分确保其信息安全,可以选择多Agent技术来实现基于FNN(Factor Neuron Network)的安全防御方法,并最终建立起一个SCADA系统安全防御模型。该模型继承了多Agent技术与FNN的优点,配置方便,易于维护,可以实时更新以及在线扩展,具备良好的通用性与可塑性,从而克服了现有IDS(Intrusion Detection System)的诸多不足,有效保障SCADA安全可靠地运行。
Abstract:
Key words :

  赵恒博,曹谢东

  (西南石油大学 电气信息学院,四川 成都 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引言

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

  据权威工业安全事件信息库[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∈N+,图中各节点的意义如下:

001.jpg

  (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,R,A>

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

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

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

002.jpg

  图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,level,work,permission,θ>

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

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

  J=<target,task,Γ>

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

004.jpg

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

  对于因素知识库神经元与发布神经元说明如下:因素知识库存储了全部的行为因素规则,但发布神经元并不将其全部装载到每一个执行神经元。对于大规模SCADA系统而言,可能使用了多家厂商的PLC与组态软件等,发布神经元会根据配置信息决定每个神经元需要装载的知识,从而减轻主机的资源消耗,提高系统的实时性。

  2.3FNN的初始化

  定义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病毒

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

  隔离衍生文件;

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

003.jpg

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.


此内容为AET网站原创,未经授权禁止转载。