趙恒博,曹謝東
?。ㄎ髂鲜痛髮W(xué) 電氣信息學(xué)院,,四川 成都 610500)
摘要:作為ICS(Industrial Control System)的重要組成部分,SCADA(Supervisory Control and Data Acquisition)受到的惡意攻擊與日俱增,。為了充分確保其信息安全,,可以選擇多Agent技術(shù)來(lái)實(shí)現(xiàn)基于FNN(Factor Neuron Network)的安全防御方法,并最終建立起一個(gè)SCADA系統(tǒng)安全防御模型,。該模型繼承了多Agent技術(shù)與FNN的優(yōu)點(diǎn),,配置方便,易于維護(hù),,可以實(shí)時(shí)更新以及在線擴(kuò)展,,具備良好的通用性與可塑性,從而克服了現(xiàn)有IDS(Intrusion Detection System)的諸多不足,有效保障SCADA安全可靠地運(yùn)行,。
關(guān)鍵詞:多Agent,;FNN;安全防御,;SCADA
0引言
*基金項(xiàng)目:國(guó)家自然科學(xué)基金面上項(xiàng)目(61175122)SCADA被廣泛應(yīng)用于水利,、電力、石油化工,、電氣化,、鐵路等分布式工業(yè)控制系統(tǒng)(Industrial Control System, ICS)中,一旦信息安全方面出現(xiàn)漏洞,,將對(duì)工業(yè)生產(chǎn)運(yùn)行與國(guó)家經(jīng)濟(jì)民生造成重大隱患,。
據(jù)權(quán)威工業(yè)安全事件信息庫(kù)[1]發(fā)布的數(shù)據(jù)統(tǒng)計(jì),截止2015年1月全球已發(fā)生近300起針對(duì)ICS的攻擊事件,。自2001年起,,隨著通用開發(fā)標(biāo)準(zhǔn)與互聯(lián)網(wǎng)技術(shù)的廣泛使用[2],針對(duì)ICS的攻擊行為出現(xiàn)大幅增長(zhǎng),。
鑒于SCADA信息安全所面臨的嚴(yán)峻形勢(shì),,而現(xiàn)有的入侵檢測(cè)系統(tǒng)(Intrusion Detection System,IDS)又存在大量不足[34]:(1) 虛警率偏高;(2) 事件響應(yīng)與恢復(fù)機(jī)制不完善,;(3) 在對(duì)抗未知攻擊、分布式攻擊與漸進(jìn)式攻擊時(shí)力不從心,;(4) 配置復(fù)雜,,擴(kuò)展能力差等,本文提供了一種基于因素神經(jīng)網(wǎng)絡(luò)理論的安全防御方法,,并將其與多Agent技術(shù)融合,,構(gòu)建起一個(gè)智能的SCADA安全防御模型。
1基于FNN的安全防御方法
基于FNN的安全防御方法[5]的結(jié)構(gòu)如圖1所示,。其中,,i,j,k,m,n∈N+,圖中各節(jié)點(diǎn)的意義如下:
(1)IN(Identify Neuron)為執(zhí)行神經(jīng)元,;
(2)KN(Knowledge Neuron)為因素知識(shí)庫(kù)神經(jīng)元,;
(3)MN(Management Neuron)為管理神經(jīng)元;
(4)RN(Release Neuron)為發(fā)布神經(jīng)元,;
(5)SN(Statistic Neuron)為統(tǒng)計(jì)神經(jīng)元,;
(6)TN(Track Neuron)為追蹤神經(jīng)元;
(7)AN(Analysis Neuron)為分析神經(jīng)元,;
(8)EN(Evaluation Neuron)為評(píng)價(jià)神經(jīng)元,;
(9)WN(Warning Neuron)為預(yù)警神經(jīng)元。
2多Agent安全防御模型的實(shí)現(xiàn)
相較于傳統(tǒng)的IT系統(tǒng),SCADA安全防御面對(duì)的問(wèn)題有其特殊性[6],,兩者主要的區(qū)別如下:
(1)SCADA對(duì)于實(shí)時(shí)性的要求非常高,,對(duì)延遲和抖動(dòng)均有嚴(yán)格限制,因此安全通信占用的流量不能過(guò)高,;
(2)SCADA始終處于連續(xù)不間斷的工作狀態(tài)中,,諸如重啟系統(tǒng)之類的解決方案不被接受;
(3)SCADA的安全防御優(yōu)先保障人員安全,,其次是工業(yè)生產(chǎn)過(guò)程,,而非存儲(chǔ)或傳輸?shù)臄?shù)據(jù);
(4)SCADA系統(tǒng)是一個(gè)大型的異構(gòu)網(wǎng)絡(luò),,體系結(jié)構(gòu)更加復(fù)雜,,擁有許多專用的通信協(xié)議或規(guī)約;
(5)SCADA系統(tǒng)硬件換代與軟件更新的周期比傳統(tǒng)IT系統(tǒng)長(zhǎng)很多,,因此存在的問(wèn)題也更多,。
鑒于以上原因,本文選用多Agent技術(shù)實(shí)現(xiàn)上述基于主機(jī)的防御方法,,其主要優(yōu)點(diǎn)如下[78]:
(1)多Agent豐富的協(xié)作機(jī)制能有效對(duì)抗復(fù)雜的攻擊行為,,如組合攻擊,提高了系統(tǒng)的檢測(cè)精度,;
(2)通過(guò)將因素神經(jīng)元的職能與職責(zé)合理地分布到多臺(tái)主機(jī)上,,從而提升了整個(gè)系統(tǒng)的實(shí)時(shí)性;
(3) Agent具有良好的適應(yīng)能力,,因此在為其重新分配職能與職責(zé)時(shí),,無(wú)須重啟整個(gè)系統(tǒng);
(4)在大型的異構(gòu)網(wǎng)絡(luò)環(huán)境中,,各個(gè)Agent相對(duì)獨(dú)立,,局部失效不至于影響系統(tǒng)其余部分正常工作;
(5) Agent具有優(yōu)秀的學(xué)習(xí)能力,,可以不斷完善感知引擎,,改進(jìn)模式識(shí)別算法,提高處理效率,。
2.1因素神經(jīng)元的實(shí)現(xiàn)
定義1因素神經(jīng)元可以用一個(gè)三元組表示為
FN=<S,R,A>
其中,,S(State)表示因素神經(jīng)元的狀態(tài),通常以因素形式表達(dá),,體現(xiàn)了因素神經(jīng)元關(guān)于環(huán)境的感知,;R(Reasoning)為因素神經(jīng)元的推理機(jī),使其可以根據(jù)已有知識(shí)利用CBR(Casebased Reasoning)或RBR(Rulebased Reasoning)做出合理的動(dòng)作,;A(Action)是因素神經(jīng)元可以執(zhí)行的全部動(dòng)作的合集,,除了對(duì)攻擊行為作出的應(yīng)對(duì)措施之外,,還包括上傳數(shù)據(jù)、彈窗提醒以及知識(shí)更新等,。
從上述定義不難看出,,F(xiàn)NN中的因素神經(jīng)元具有自主性,能夠感知并影響環(huán)境,,這與Agent的定義不謀而合,,因此可以通過(guò)Agent技術(shù)實(shí)現(xiàn)。
Agent實(shí)現(xiàn)因素神經(jīng)元的通用結(jié)構(gòu)如圖2所示,,下面以執(zhí)行神經(jīng)元為例進(jìn)行說(shuō)明,。
圖2采用Agent實(shí)現(xiàn)FN的通用結(jié)構(gòu)(1)部署在主機(jī)上的Agent感知到程序的行為因素,如API(Application Programming Interface)函數(shù)調(diào)用,,便更新自身的狀態(tài),;
(2)同類惡意程序盡管特征碼不同,但其API函數(shù)調(diào)用序列卻很相似,,從而使Agent可以根據(jù)知識(shí)庫(kù)中的規(guī)則進(jìn)行推理或匹配,,判斷程序是否具有惡意性;
(3)針對(duì)不同類型的攻擊,,Agent可以根據(jù)需要選擇阻止,、隔離、刪除以及恢復(fù)等動(dòng)作執(zhí)行,;
(4)Agent將攻擊信息及其處理結(jié)果向上(如承擔(dān)統(tǒng)計(jì)神經(jīng)元職能的Agent)匯報(bào),。
上述過(guò)程可用代碼表示如下:
function Agent(factor)
state = update_state(state, factor)
conclusion = reasoning(state, knowledge, communicate)
action = run_action(conclusion, target)
return action
上述識(shí)別與推理的方法存儲(chǔ)于Agent的知識(shí)庫(kù)中,與Agent運(yùn)行的框架是分離的,,可以單獨(dú)實(shí)時(shí)在線更新,,充分展示了Agent的靈活性與智能性。
除此之外,,Agent裝載的知識(shí)也決定了它的具體功能,可以根據(jù)環(huán)境進(jìn)行動(dòng)態(tài)配置或增加新的功能,,從而確保SCADA始終能處于連續(xù)不間斷的工作狀態(tài)中,,該特點(diǎn)亦使多Agent系統(tǒng)在部分Agent失效時(shí),仍能維護(hù)全局的安全,。
2.2因素神經(jīng)元的職能與職責(zé)
定義2因素神經(jīng)元的職能可記為一個(gè)六元組
P=<class,level,work,permission,θ>
其中,,class標(biāo)示了因素神經(jīng)元的類型,即IN,、KN,、MN、RN,、SN,、TN,、EN、AN或WN,;level體現(xiàn)了因素神經(jīng)元在SCADA中的層次,,如Ak部署在調(diào)度層,Bij部署在監(jiān)控層,,Cmn部署在現(xiàn)場(chǎng)層,,并且反映出上下位關(guān)系,如B1j歸屬于A1,;work表示因素神經(jīng)元需要執(zhí)行的工作,,包括工作目標(biāo)與工作步驟兩個(gè)部分;permission 為因素神經(jīng)元的權(quán)限,,限制了其可以執(zhí)行的動(dòng)作及其能夠調(diào)用的系統(tǒng)資源,;θ 為邊界約束,其影響因素神經(jīng)元的動(dòng)作,,如實(shí)時(shí)性要求高時(shí),,對(duì)網(wǎng)絡(luò)負(fù)荷較小的動(dòng)作被優(yōu)先考慮。
定義3因素神經(jīng)元的職責(zé)可記為一個(gè)三元組
J=<target,task,Γ>
其中,,target為一個(gè)邏輯表達(dá)式,,當(dāng)其值為真時(shí),表示因素神經(jīng)元已履行職責(zé),;task是因素神經(jīng)元為了完成自身職責(zé)所需要執(zhí)行的一系列相關(guān)聯(lián)的任務(wù),,work是task的子集;Γ為任務(wù)劃分表,,用于將task分配給不同職能的神經(jīng)元,,以實(shí)現(xiàn)因素神經(jīng)元之間的分工與協(xié)作。
表1所示是基于FNN安全防御方法的任務(wù)劃分表,,從中不難看出因素神經(jīng)元相互之間的聯(lián)系,。顯而易見,執(zhí)行神經(jīng)元是多Agent安全防御模型的核心,,負(fù)責(zé)最根本的感知,、識(shí)別與處理的任務(wù),每臺(tái)主機(jī)上都必須有承擔(dān)該項(xiàng)職能的Agent,。
對(duì)于因素知識(shí)庫(kù)神經(jīng)元與發(fā)布神經(jīng)元說(shuō)明如下:因素知識(shí)庫(kù)存儲(chǔ)了全部的行為因素規(guī)則,,但發(fā)布神經(jīng)元并不將其全部裝載到每一個(gè)執(zhí)行神經(jīng)元。對(duì)于大規(guī)模SCADA系統(tǒng)而言,,可能使用了多家廠商的PLC與組態(tài)軟件等,,發(fā)布神經(jīng)元會(huì)根據(jù)配置信息決定每個(gè)神經(jīng)元需要裝載的知識(shí),從而減輕主機(jī)的資源消耗,,提高系統(tǒng)的實(shí)時(shí)性,。
2.3FNN的初始化
定義4因素神經(jīng)網(wǎng)絡(luò)可以用一個(gè)四元組表示為
FNN=<Σ,Π,f,Λ>
其中,,Σ表示FNN中因素神經(jīng)元的集合;Π表示實(shí)現(xiàn)FNN的Agent的集合,;f是一個(gè)Σ→Π的映射,,反映了因素神經(jīng)元的職能由Agent實(shí)體承擔(dān)的情況;Λ是部署函數(shù),,由Agent在SCADA系統(tǒng)中所處的位置決定,,體現(xiàn)其在系統(tǒng)中的上下級(jí)關(guān)系。
從上述定義可以看出,,F(xiàn)NN的初始化就是將因素神經(jīng)元的職能與職責(zé)交由Agent承擔(dān)的過(guò)程,。對(duì)整個(gè)SCADA系統(tǒng)而言:(1)系統(tǒng)中的每臺(tái)主機(jī)上至少運(yùn)行著一個(gè)Agent;(2)系統(tǒng)中的每臺(tái)主機(jī)上至少有一個(gè)Agent承擔(dān)了執(zhí)行神經(jīng)元的職能,;(3)某些滿足權(quán)限要求等條件的主機(jī)上,,Agent還承擔(dān)了除執(zhí)行神經(jīng)元之外的職能,并且是對(duì)表1所列職能與職責(zé)的一個(gè)完全劃分,。
需要注意的是,,Agent與因素神經(jīng)元之間并非是一一對(duì)應(yīng)的關(guān)系,一個(gè)Agent可以承擔(dān)因素神經(jīng)元多個(gè)不同的職能,,并且根據(jù)需要?jiǎng)討B(tài)調(diào)整,,例如可將執(zhí)行神經(jīng)元與統(tǒng)計(jì)神經(jīng)元的職能交由同一Agent承擔(dān);也可以為某個(gè)神經(jīng)元的實(shí)現(xiàn)部署多個(gè)Agent,,例如執(zhí)行神經(jīng)元不僅要感知上報(bào)攻擊行為,,也要掃描并上傳主機(jī)的配置信息,前者需要時(shí)刻運(yùn)行,,而后者只在必要時(shí)進(jìn)行,,因此可用兩個(gè)并行協(xié)作的Agent實(shí)現(xiàn)??偠灾?,Agent只是承擔(dān)因素神經(jīng)元職責(zé)的軟件實(shí)體,而因素神經(jīng)元的職能則決定了Agent當(dāng)前在FNN中的工作類型與管理地位,。
除此之外,,在多Agent主動(dòng)防御平臺(tái)運(yùn)行的過(guò)程中,難免會(huì)有Agent因?yàn)橛布蜍浖脑蚴?,為了保障系統(tǒng)整體的可靠性,就需要將失效Agent承擔(dān)的職能與職責(zé)分配給其他能夠勝任的Agent,。
解決方案如下:當(dāng)某一Agent失效時(shí),,其下屬最空閑且滿足權(quán)限要求的Agent將接替其職能。其中,,Agent的空閑度由其他Agent與失效Agent通信次數(shù)之和確定,。
2.4模擬實(shí)驗(yàn)
本文選擇JADE開發(fā)平臺(tái),,每個(gè)Agent擁有獨(dú)立的線程,,擁有高效的并行機(jī)制,,并且支持遵循FIPA規(guī)范的通信語(yǔ)言(Agent Communication Language, ACL)[9]。
JADE中提供有Behaviour類,,用于Agent對(duì)事件的響應(yīng),。除此之外,,本機(jī)上的Agent相互收發(fā)信息只需調(diào)用send或receive方法即可;遠(yuǎn)程Agent通信則需要指定收信Agent的AID名及其地址,。
對(duì)于Agent而言,,知識(shí)表示是其智能行為的基礎(chǔ)所在。對(duì)于多Agent安全防御模型而言,,則由因素知識(shí)庫(kù)負(fù)責(zé)存儲(chǔ),、更新與維護(hù)行為規(guī)則。本文選用產(chǎn)生式—框架表示法進(jìn)行描述的原因在于[10]:框架可以調(diào)用產(chǎn)生式規(guī)則,,產(chǎn)生式規(guī)則也可以調(diào)用框架,,二者取長(zhǎng)補(bǔ)短,融為一體,。下面是對(duì)震網(wǎng)病毒進(jìn)行識(shí)別與處理的例子[11]:
<主機(jī)信息>
主機(jī)名稱:SCADA-Host-T01
位置信息:100.78.198.113
組態(tài)軟件:SIMATIC WinCC v7.0
<規(guī)則1>
因素:在Windows關(guān)鍵目錄下安裝文件,;
在注冊(cè)表中創(chuàng)建自啟動(dòng)項(xiàng);
替換文件“s7otbxdx.dll”
推斷:<結(jié)論1>
發(fā)送:<主機(jī)信息> 與攻擊事件信息
<結(jié)論1>
攻擊類型:Stuxnet病毒
處理動(dòng)作:結(jié)束相關(guān)進(jìn)程,;
隔離衍生文件,;
在裝有SIMATIC WinCC v7.0的主機(jī)A上利用模擬震網(wǎng)病毒的程序“Simulation.exe”進(jìn)行攻擊,部署在主機(jī)A上的AgentⅠ及時(shí)感知到該行為,,并且馬上采取了相應(yīng)的處理措施,,同時(shí)將遭受攻擊的主機(jī)信息及攻擊事件信息(包括攻擊時(shí)間、攻擊路徑與圖3模擬攻擊產(chǎn)生的警示信息處理結(jié)果等)發(fā)送至主機(jī)B上負(fù)責(zé)統(tǒng)計(jì)的AgentⅡ,。圖3所示是AgentⅡ展示給用戶的警示信息,。實(shí)驗(yàn)證明基于FNN的安全防御方法是可行的。
3結(jié)論
基于FNN的安全防御方法克服了現(xiàn)有IDS的缺陷,,能夠有效保障SCADA系統(tǒng)的信息安全,。本文從側(cè)面驗(yàn)證了該防御方法的可行性,并且從實(shí)際應(yīng)用的角度出發(fā),,采用多Agent技術(shù)建立起基于該方法的安全防御模型,。本文提出的SCADA安全防御模型是一個(gè)良好的通用框架,不僅僅局限于使用本文提出的基于程序行為的識(shí)別算法,,還能通過(guò)更新因素知識(shí)庫(kù)擴(kuò)展其他新的方法,。除此之外,該模型允許動(dòng)態(tài)地分配因素神經(jīng)元的職能和職責(zé),,解決了Agent可能出現(xiàn)的失效問(wèn)題,,從而使整個(gè)安全防御系統(tǒng)的可靠性得到保障,。
參考文獻(xiàn)
[1] RISI. Therepository of industrial security incidents[DB/OL].(20151201)[20151211]http://www.risidata.com/Database.
?。?] 張帥. 工業(yè)控制系統(tǒng)安全風(fēng)險(xiǎn)分析[J]. 信息安全與通信保密, 2012(3):1519.
?。?] 陳蔚, 莊毅. 基于多Agent的分布式入侵檢測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程與應(yīng)用, 2004,40(29):139141.
?。?] 肖建榮. 工業(yè)控制系統(tǒng)信息安全[M]. 北京:電子工業(yè)出版社, 2015.
?。?] 曹謝東, 梁鵬,楊力,,等. 基于因素神經(jīng)網(wǎng)絡(luò)的油氣管網(wǎng)SCADA安全防御方法:中國(guó),,CN104021345A[P]. 20140903.
[6] STOUFFER K. Guide toindustrial control systems (ICS) security[R]. NIST Special Publication 80082, 2008.
?。?] 石磊, 黨德玉, 沈?qū)W強(qiáng). 一種基于JADE 平臺(tái)的多Agent 入侵檢測(cè)系統(tǒng)模型[J]. 中國(guó)科技信息,,2008(5):109110.
[8] 孫強(qiáng), 王崇駿,,王忠存,等. 采用多Agent 的網(wǎng)絡(luò)攻防仿真模型[J]. 計(jì)算機(jī)工程與應(yīng)用, 2010,46(20):122125.
?。?] 于衛(wèi)紅. 基于JADE 平臺(tái)的多Agent 系統(tǒng)開發(fā)技術(shù)[M]. 北京:國(guó)防工業(yè)出版社, 2011.
[10] 姜躍, 朱光菊, 朱林立,等. 基于模糊邏輯的產(chǎn)生式框架的知識(shí)表示及推理的研究[J]. 云南大學(xué)學(xué)報(bào)(自然科學(xué)版), 2007,29(S2): 171174.
?。?1] 蒲石, 陳周國(guó), 祝世雄. 震網(wǎng)病毒分析與防范[J]. 信息網(wǎng)絡(luò)安全, 2012(2): 4952.