文元美,余雪晨
(廣東工業(yè)大學(xué)信息工程學(xué)院,廣東 廣州 510006)
工業(yè)控制系統(tǒng)軟件的用戶操作異常檢測方法
文元美,余雪晨
(廣東工業(yè)大學(xué)信息工程學(xué)院,廣東 廣州 510006)
針對工業(yè)控制網(wǎng)絡(luò)終端控制系統(tǒng)軟件的用戶行為安全問題,提出用戶操作層面行為可信評估的方法。首先從軟件日志文檔中提取出整數(shù)數(shù)列的歷史序列,然后引入Apriori方法進(jìn)行用戶操作行為序列頻繁模式挖掘,并基于挖掘出的模式集建立概率矩陣,最后通過提取當(dāng)前用戶行為序列,基于BLAST-SSAHA算法與歷史序列模式集序列匹配,對用戶行為可信性進(jìn)行檢測,為后續(xù)系統(tǒng)平臺可信性評估提供依據(jù)。實(shí)驗(yàn)表明:文章提出的方法是有效可行的。
用戶操作異常;數(shù)據(jù)挖掘;模式匹配;工業(yè)控制網(wǎng)
隨著信息技術(shù)的發(fā)展,工業(yè)控制系統(tǒng)的安全性逐漸成為人們關(guān)注的熱點(diǎn)。美國國家標(biāo)準(zhǔn)與技術(shù)研究院發(fā)布《ICS Security》(2011年),制定了工業(yè)控制系統(tǒng)(industry control system,ICS)安全管理規(guī)范。
Youngjoon Won等[1](2012)研究了基于IP的無線控制系統(tǒng)與網(wǎng)絡(luò)的故障檢測方法,分析傳統(tǒng)以太網(wǎng)/IP網(wǎng)絡(luò)故障診斷方法及其局限性,改進(jìn)對ICN故障獨(dú)特的交通特性及分類,同時(shí)提出了一種故障診斷、預(yù)測及自適應(yīng)決策方法,并利用來自POSCO鋼鐵冶煉公司的實(shí)際數(shù)據(jù)對其進(jìn)行驗(yàn)證;美國伯克利大學(xué)的Roosta,T.Nilsson[2](2008)研究了一種基于模型的無線過程控制系統(tǒng)入侵檢測系統(tǒng)(intrusion detection system,IDS),IDS模仿無線傳感網(wǎng)絡(luò)常態(tài)行為實(shí)體與檢測攻擊,該模型可用于檢測未知攻擊;芬蘭技術(shù)研究中心[3](2011)在MOVERTI(monitoring for network security status in modern data networks)項(xiàng)目報(bào)告中,分析了網(wǎng)絡(luò)安全監(jiān)控系統(tǒng)中一些特定操作的環(huán)境威脅,通過演化網(wǎng)絡(luò)數(shù)據(jù)流特征得出安全設(shè)備精確報(bào)警閾值等,監(jiān)測系統(tǒng)整體設(shè)備區(qū)域安全狀態(tài)并提交給操作者。
當(dāng)前工業(yè)控制系統(tǒng)網(wǎng)絡(luò)入侵檢測主要是通過對整體設(shè)備網(wǎng)絡(luò)進(jìn)行監(jiān)控,建立設(shè)備間通信流實(shí)體模型。對模型進(jìn)行訓(xùn)練,分析入侵檢測算法,提取入侵特征值,從而檢測網(wǎng)絡(luò)入侵。同時(shí)利用預(yù)測算法基于模型實(shí)例來抵御未知入侵。但是,現(xiàn)在大部分模型都是針對特定工業(yè)控制網(wǎng)絡(luò),依據(jù)不同網(wǎng)絡(luò)特征對入侵進(jìn)行判定。
本文針對軟件運(yùn)行過程,從用戶操作層面提出一種用戶操作序列的工業(yè)控制系統(tǒng)終端軟件異常檢測方法,給出了整體設(shè)計(jì)架構(gòu)與方案。
一位可信用戶對軟件的操作行為在一段時(shí)間內(nèi)會維持某種固定的特征,而非此用戶本人的操作習(xí)慣會發(fā)生一定隨機(jī)性的改變,因此本文從操作層面提出用戶操作行為頻繁序列,與當(dāng)前用戶操作序列匹配,以期提高物聯(lián)網(wǎng)環(huán)境下終端軟件的使用安全性[4]。
用戶操作層面行為可信包括用戶頻繁序列獲取與當(dāng)前用戶行為序列模式匹配兩部分,用戶操作層面行為可信總體功能架構(gòu)如圖1所示。
用戶對軟件的操作行為信息通過操作日志獲取,對獲取的日志信息進(jìn)行數(shù)據(jù)預(yù)處理,包括數(shù)據(jù)格式提取、分解、合并及轉(zhuǎn)換[5]。依據(jù)行為信息時(shí)間戳形成有序操作序列,生成序列數(shù)據(jù)庫。對于序列數(shù)據(jù)庫中的信息,通過模式挖掘算法進(jìn)行序列挖掘,結(jié)果形成用戶行為序列歷史數(shù)據(jù)庫及序列概率集。
對運(yùn)行時(shí)監(jiān)測收集的用戶操作日志文檔進(jìn)行預(yù)處理,獲得當(dāng)前用戶序列,與歷史數(shù)據(jù)庫中的用戶行為序列進(jìn)行模式識別與匹配,得到序列匹配度。
工業(yè)系統(tǒng)軟件用戶行為操作模式異常檢測方案如圖2所示。
在用戶操作序列頻繁模式挖掘中,本文采用Apriori算法來對個(gè)人序列數(shù)據(jù)庫進(jìn)行序列挖掘[6]。在模式匹配過程中,采用BLAST-SSAHA算法,將當(dāng)前用戶序列與歷史數(shù)據(jù)庫中的正常操作序列進(jìn)行比對,判斷當(dāng)前用戶序列的相似度[7]。當(dāng)相似度低于某一閾值,則認(rèn)為此段操作異常。
2.1 用戶行為序列的生成
當(dāng)用戶登錄時(shí),對于用戶的每一個(gè)button的操作事件,后臺都會向日志數(shù)據(jù)庫表中添加一條記錄,記錄用戶的操作時(shí)間、操作類型、操作類別編號等。
對原始日志文件中的數(shù)據(jù)進(jìn)行提取、分解、合并、最后轉(zhuǎn)換為適合進(jìn)行數(shù)據(jù)挖掘的數(shù)據(jù)格式。對數(shù)據(jù)的清理使用建立規(guī)則庫的方法,在程序中讀入過濾規(guī)則進(jìn)行數(shù)據(jù)清理,得到的數(shù)據(jù)重新保存到數(shù)據(jù)庫表中,等待進(jìn)一步處理[8]。
通過日志時(shí)間戳,查找數(shù)據(jù)庫表中數(shù)據(jù),依時(shí)間段形成用戶操作序列,將形成的操作序列存儲至序列數(shù)據(jù)庫中。
2.2 用戶行為序列模式挖掘
本文采用經(jīng)典的頻繁序列模式挖掘算法Apriori對用戶行為序列進(jìn)行挖掘,生成序列模式。Apriori算法首先基于預(yù)定的最小支持度找出所有的頻集,然后由頻集產(chǎn)生強(qiáng)關(guān)聯(lián)規(guī)則,這些規(guī)則必須滿足最小支持度和最小可信度。一旦規(guī)則生成,那么只有那些大于用戶給定的最小可信度的規(guī)則才被留下來,生成所有頻集[9]。
定義1 設(shè)I={I1,I2,…,Im}是項(xiàng)的集合,包含k個(gè)項(xiàng)的集合稱為k項(xiàng)集。設(shè)任務(wù)相關(guān)的數(shù)據(jù)D是數(shù)據(jù)庫事務(wù)的集合。
定義2 設(shè)A、B分別是一個(gè)項(xiàng)集,其中A?I,B?I,并且A∩B=Φ。A、B關(guān)聯(lián),表示為A?B。規(guī)則A?B在事物集D中成立,具有支持度s,s是D中包含P(A∪B)的百分比。
其中P(A∪B)表示事務(wù)包含集合A和B的并(即包含A和B中的每個(gè)項(xiàng))的概率。
給定一個(gè)最小支持度min_sup,頻繁序列模式的集合包含所有支持度不小于min_sup的序列。
性質(zhì) 頻繁項(xiàng)集的所有非空子集也必須是頻繁的。如果項(xiàng)集I不滿足最小支持度閾值min_sup,則I不是頻繁的,即P(I)<min_sup。如果項(xiàng)A添加到項(xiàng)集I,則結(jié)果項(xiàng)集(即I∪A)不可能比I更頻繁出現(xiàn)。因此,I?A也不是頻繁的,即P(I∪A)<min_sup。
定義3 將Lk-1與自身連接產(chǎn)生候選k項(xiàng)集的集合。該候選項(xiàng)集合記作Ck。Ck是Lk的超集,Ck的成員可以是也可以不是頻繁的,但所有的頻繁k項(xiàng)集都包含在Ck中。Ck的形成包括連接與剪枝兩部分。
(1)連接。設(shè)l1和l2是Lk-1中的項(xiàng)集。記號li[j]表示li中的第j項(xiàng)。為方便起見,Apriori假定事物或項(xiàng)集中的項(xiàng)按字典次序排序。對于(k-1)項(xiàng)集li,意味將項(xiàng)排序,使li[1]<li[2]<…<li[k-1]。執(zhí)行連接Lk-1??Lk-1,產(chǎn)生項(xiàng)集Ck。
(2)剪枝。掃描數(shù)據(jù)庫,確定Ck中每個(gè)候選的計(jì)數(shù),從而確定Lk(即根據(jù)定義,計(jì)數(shù)值不小于最小支持度計(jì)數(shù)的所有候選是頻繁的,從而屬于Lk)。然而,Ck可能很大,這樣所涉及的計(jì)算量就很大??梢允褂肁priori性質(zhì),如果候選k項(xiàng)集的(k-1)項(xiàng)子集不在其中,則該候選也不可能是頻繁的,從而可以從Ck中刪除。
用戶行為序列模式挖掘步驟包括:
(1)通過掃描數(shù)據(jù)庫,累積每個(gè)項(xiàng)的計(jì)數(shù),并收集滿足最小支持度的項(xiàng),找出頻繁1項(xiàng)集的集合。該集合記做L1。
(2)L1用于尋找頻繁2項(xiàng)集的集合L2,L2用于找L3,如此下去,直到不能再找到頻繁k項(xiàng)集。
2.3 當(dāng)前用戶異常行為操作模式匹配
以最近的用戶操作序列作為查詢序列,與數(shù)據(jù)庫中保存的該用戶頻繁操作序列進(jìn)行比對,若查詢序列與常用序列相似度較小,則可認(rèn)為用戶當(dāng)前操作行為異常。
給定一個(gè)長度為n的序列S=<s1,s2,…,sn>,S中任意連續(xù)的k個(gè)元素構(gòu)成S的一個(gè)k元組。則S中k元組的個(gè)數(shù)為n-k+1,每個(gè)元組被賦予一定的權(quán)重。
定義4 在序列S中,某個(gè)k元組開始的位置稱為元組偏移。
定義5 序列S中每個(gè)位置可能的取值個(gè)數(shù)稱為S的序列基數(shù)。
用從0到Sequence Base-1的整數(shù)來表示S中所有可能出現(xiàn)的元素,若序列基數(shù)為ω,一個(gè)k元組<t1,t2,…,tk>的權(quán)重W記為
假定數(shù)據(jù)庫M中有若干個(gè)序列,SSAHA算法將每一個(gè)長度為n的序列劃分成n-k+1個(gè)k元組,生成一張k元組表KT。KT中的每一條記錄對應(yīng)M中的一個(gè)k元組,并由以下元素組成:<元組權(quán)重,所在序列編號,元組偏移>。其中元組權(quán)重用來在KT上建立一個(gè)聚類索引,由W的計(jì)算可知,對于給定的k和ω,一共有ωk種權(quán)重,每種權(quán)重對應(yīng)一種k元組而通過所在序列編號和元組偏移就可以確定當(dāng)前的元組在M中的位置。
得到KT之后,對于一個(gè)查詢序列,現(xiàn)在就可以通過BLAST算法將其與M中的序列進(jìn)行比對,具體過程為:
(1)查詢序列也劃分為若干個(gè)k元組。
(2)依次將查詢序列中的k元組與KT進(jìn)行比較,若KT中也存在一個(gè)相同的k元組,則稱為發(fā)生了一次命中,記錄下該元組在M中的位置,即其所在序列編號和元組偏移。若某個(gè)k元組在KT中不存在,則稱為發(fā)生了一次偏離。
(3)利用(2)中的記錄,將M中的序列按照其包含查詢序列不同k元組的個(gè)數(shù)進(jìn)行排序,可以看出,包含查詢序列中不同k元組越多的序列,與查詢序列的相似程度就越大。
通過一定的閾值,在M中選取前n個(gè)與查詢序列最相似的序列,將查詢序列與M中序列發(fā)生命中的片段雙向擴(kuò)展,進(jìn)一步比較查詢序列與該序列的相似程度,并最終確定與查詢序列最為相似的序列。
3.1 用戶操作序列模式挖掘?qū)嶒?yàn)
基于布爾關(guān)聯(lián)規(guī)則的頻繁序列挖掘算法Apriori,使用逐層迭代方法通過候選產(chǎn)生找出頻繁項(xiàng)集。向挖掘程序輸入用戶操作行為序列事務(wù)數(shù)據(jù)庫表AprioriDb中數(shù)據(jù),設(shè)定最小支持度min_sup,程序運(yùn)行后輸出數(shù)據(jù)存儲至事務(wù)數(shù)據(jù)庫表TEMP中,該表中數(shù)據(jù)即為用戶歷史操作行為序列頻繁項(xiàng)集。
用戶操作序列頻繁模式挖掘主要方法函數(shù):
Apriori_Gen(int[,]L_k_1,int[,]C_k,string[]strItemSet,int k_1):連接和剪枝。由Lk-1得到Ck候選集。
SearchSubItem(int[,]L_k_1,int[]TEMP,int k_1):查找Ck中某一項(xiàng)的子集是否在Lk-1項(xiàng)集中,TEMP數(shù)組用來存儲子集。
C_k_Count_Sup(int[,]ITEM,int[,]C_K,int[]Count,int k_1):統(tǒng)計(jì)候選項(xiàng)集中每一項(xiàng)的支持度。
基于Apriori算法的頻繁序列挖掘結(jié)果如圖3所示,其中Apriori算法參數(shù)最小支持度設(shè)置為0.2。
挖掘出的頻繁項(xiàng)集B={item,count},item表示項(xiàng)集,count表示對應(yīng)項(xiàng)集支持度計(jì)數(shù)。觀察結(jié)果可看出,滿足當(dāng)前最小支持度的最長序列長度為4,{4,4,6,2}是其中一條用戶操作頻繁序列。找出所有的用戶行為序列頻繁模式之后,將數(shù)據(jù)存入事務(wù)數(shù)據(jù)庫表TEMP,算法終止。
3.2 當(dāng)前用戶操作行為序列匹配實(shí)驗(yàn)
將當(dāng)前用戶操作序列作為輸入提交給BLAST算法,當(dāng)前用戶操作序列長度為N,BLAST算法在數(shù)據(jù)庫表TEMP中查找相應(yīng)的NKT進(jìn)行比對。在此,簡單定義出現(xiàn)一次命中的得分為α,出現(xiàn)一次偏離的得分為β。假定當(dāng)前序列中出現(xiàn)了T次命中,那么其與用戶此次操作序列的相似度Y為
程序后臺設(shè)置相似度Y≥0時(shí)判定操作安全,α+β=1。規(guī)定操作序列命中率d≥60%時(shí)判定操作安全,則α=0.4,β=0.6。
測試過程中,輸入實(shí)驗(yàn)序列S,序列長度Cn={6,3,9,7,4},后臺程序內(nèi)部輸出相似度Yn={0.4,1.2,-1.4,-0.2,0.6},從而可直接對不滿足要求的序列進(jìn)行判定,系統(tǒng)強(qiáng)制禁止用戶下一步訪問請求。
本文提出了針對物聯(lián)網(wǎng)模式下客戶終端軟件用戶操作行為序列的異常行為檢測方法。該方法主要針對工業(yè)控制網(wǎng)絡(luò)中需提供管理員權(quán)限的軟件,通過數(shù)據(jù)挖掘在操作層面分別對當(dāng)前操作行為進(jìn)行分析,通過當(dāng)前行為序列與歷史行為序列集的相似度來判斷是否出現(xiàn)了異常。通過分析可以看出,引入數(shù)據(jù)挖掘的方法可有效提高用戶行為可信的識別效率。
在接下來的工作中,將在方案中增添異常項(xiàng)集數(shù)據(jù)庫,并對用戶序列模式匹配過程進(jìn)行優(yōu)化,提高判斷的實(shí)時(shí)性,從而更有效判斷用戶行為的可信性。
[1]Won Y J,Choi M J,Park B,et al.An approach for failurerecognition in IP-based industrial control networks and systems[J].International Journal of Network Management,2012,22(6):477-493.
[2]Roosta T,Nilsson D,Lindqvist U,et al.An intrusion detection system for wireless process control system[C]∥America,2008.
[3]Ahonen P.Constructing network security monitoring systems[Z].Vtt Research Notes,2011.
[4]柴洪峰,李銳,王興建,等.基于數(shù)據(jù)挖掘的異常交易檢測方法[J].計(jì)算機(jī)應(yīng)用與軟件,2013,30(1):165-171.
[5]彭成,楊路明,滿君豐.網(wǎng)絡(luò)化軟件交互行為動態(tài)建模[J].電子學(xué)報(bào),2013,41(2):314-320.
[6]陳嶺,陳元中,陳根才.基于操作序列挖掘的OLAP查詢推薦方法[J].東南大學(xué)學(xué)報(bào),2011,41(3):499-503.
[7]Kundu A,Panigrahi S,Sural S,et al.BLAST-SSAHA hybridization for credit card fraud detection[J].IEEE Transactionson Dependable and Secure Computing,2009,6(4):309-315.
[8]毛伊敏.數(shù)據(jù)量頻繁模式挖掘關(guān)鍵算法及其應(yīng)用研究[D].長沙:中南大學(xué),2011.
[9]Han J W,Kamber M,Pei J A.數(shù)據(jù)挖掘:概念與技術(shù)[M].北京:機(jī)械工業(yè)出版社,2012:147-154.
User operation anomaly detection method of software in industrial control system
WEN Yuan-mei,YU Xue-chen
(School of Information Engineering,Guangdong University of Technology,Guangzhou 510006,China)
A behavior trust evaluation method was proposed to solve the problem of user behavior security of terminal control system software for industrial control network.Firstly,history sequences in the form of numerical array were extracted from the log file of software.Then,the Apriori mining algorithm was exploited to obtain the frequent sequential patterns from user action sequence,and a matrix of probabilities was established upon mined patterns.Finally,the credibility of user behavior was detected by extracting the current user behavior sequence to match with the sequence in historical sequence pattern set based on BLAST-SSAHA algorithm.These results can provide the basis for evaluating the credibility of the system.The experimental and analytical results show that the effectiveness and feasibility of the methods are validated.
user abnormal operation;data mining;pattern matching;inclustrial control netnork
TP301;TP311.53;TP206+.3;O224
:A
:1674-5124(2014)04-0098-04
10.11857/j.issn.1674-5124.2014.04.025
2013-12-09;
:2014-01-24
文元美(1968-),女,湖北荊州市人,副教授,博士,主要從事智能信息處理與可信研究。