本公開涉及工控網(wǎng)絡(luò)領(lǐng)域,尤其涉及一種工控網(wǎng)絡(luò)安全預(yù)警方法及系統(tǒng)。
背景技術(shù):
:隨著工業(yè)控制系統(tǒng)與互聯(lián)網(wǎng)的不斷融合,工業(yè)控制系統(tǒng)不可避免地暴露在網(wǎng)絡(luò)安全威脅之下,使得工控網(wǎng)絡(luò)的安全性、穩(wěn)定性變得越來越不可控。據(jù)統(tǒng)計(jì),當(dāng)前工控網(wǎng)絡(luò)中70%的聯(lián)網(wǎng)設(shè)備存在安全漏洞,而預(yù)計(jì)未來接入物聯(lián)網(wǎng)的90%的軟硬件設(shè)備會存在一定程度的安全隱患,因此工控網(wǎng)絡(luò)安全問題亟待解決。目前針對工控網(wǎng)絡(luò)安全,絕大多數(shù)廠商的解決方案都是按照定制的安全規(guī)則對工控?cái)?shù)據(jù)包進(jìn)行過濾,對命中黑名單的操作進(jìn)行告警。相關(guān)技術(shù)中,配置了安全大數(shù)據(jù)平臺以執(zhí)行這一功能。一般的安全大數(shù)據(jù)平臺是集大數(shù)據(jù)存儲、查詢和分析于一體的統(tǒng)一平臺,以較大的數(shù)據(jù)中心和大型集群服務(wù)器為支持,以海量數(shù)據(jù)處理引擎和實(shí)時(shí)數(shù)據(jù)處理引擎為核心,并針對城市、物聯(lián)網(wǎng)等數(shù)據(jù)和計(jì)算密集型行業(yè)的運(yùn)行維護(hù)、應(yīng)用開發(fā)等需求,打造了開放性分布式軟件體系。但是,對于該安全大數(shù)據(jù)平臺,從大數(shù)據(jù)專業(yè)角度看,其是一個集成大數(shù)據(jù)處理和實(shí)時(shí)數(shù)據(jù)處理的通用平臺。但對于工控現(xiàn)場來說,其存在以下問題:1)工控現(xiàn)場一般缺少很大的數(shù)據(jù)中心,不能支持大型集群服務(wù)器的部署;2)工控現(xiàn)場網(wǎng)絡(luò)結(jié)構(gòu)比較簡單、單一,不能滿足復(fù)雜、大量、高速的數(shù)據(jù)傳輸要求;3)工控網(wǎng)絡(luò)的實(shí)時(shí)數(shù)據(jù)處理一般都需要約50毫秒的響應(yīng)時(shí)間,而上述安全大數(shù)據(jù)平臺由于復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),導(dǎo)致網(wǎng)絡(luò)延遲較大,無法滿足數(shù)據(jù)實(shí)時(shí)處理的要求;4)上述安全大數(shù)據(jù)平臺的算法模型比較單一,處理能力有限。因此,有必要開發(fā)適用于工控現(xiàn)場的新的工控網(wǎng)絡(luò)安全預(yù)警方案。技術(shù)實(shí)現(xiàn)要素:為克服相關(guān)技術(shù)中存在的問題,本公開提供一種工控網(wǎng)絡(luò)安全預(yù)警方法及系統(tǒng)。根據(jù)本公開實(shí)施例的第一方面,提供一種工控網(wǎng)絡(luò)安全預(yù)警方法,包括:獲取工控網(wǎng)絡(luò)的控制事件的安全相關(guān)數(shù)據(jù);對所述安全相關(guān)數(shù)據(jù)進(jìn)行cep(complexeventprocessing,復(fù)合事件處理)分析;以及采用基于深度學(xué)習(xí)的分類器對經(jīng)cep分析后的數(shù)據(jù)進(jìn)行控制事件的風(fēng)險(xiǎn)識別。根據(jù)本公開實(shí)施例的第二方面,提供一種工控網(wǎng)絡(luò)安全預(yù)警系統(tǒng),包括:數(shù)據(jù)獲取模塊,用于獲取工控網(wǎng)絡(luò)的控制事件的安全相關(guān)數(shù)據(jù);第一處理模塊,用于對所述安全相關(guān)數(shù)據(jù)進(jìn)行cep分析;以及第二處理模塊,用于采用基于深度學(xué)習(xí)的分類器對經(jīng)cep分析后的數(shù)據(jù)進(jìn)行控制事件的風(fēng)險(xiǎn)識別。本公開的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:本公開實(shí)施例的工控網(wǎng)絡(luò)安全預(yù)警方法及系統(tǒng)可以部署于資源受限的工控現(xiàn)場,適合于單節(jié)點(diǎn)或者多個節(jié)點(diǎn)部署環(huán)境,部署方式更為靈活。并且,在工控現(xiàn)場的部署方法減少了網(wǎng)絡(luò)延遲,提高了實(shí)時(shí)數(shù)據(jù)的處理響應(yīng)速度,提高了風(fēng)險(xiǎn)預(yù)警能力。另外,采用基于深度學(xué)習(xí)的分類器進(jìn)行風(fēng)險(xiǎn)識別,識別的準(zhǔn)確率更高,而cep分析和深度學(xué)習(xí)方案的結(jié)合又使得風(fēng)險(xiǎn)識別的效率大幅度提高。應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本公開。附圖說明此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實(shí)施例,并與說明書一起用于解釋本發(fā)明的原理。圖1是根據(jù)一示例性實(shí)施例示出的一種工控網(wǎng)絡(luò)安全預(yù)警方法的流程圖。圖2是根據(jù)一示例性實(shí)施例示出的cep系統(tǒng)的架構(gòu)框圖。圖3是根據(jù)一示例性實(shí)施例示出的事件的相關(guān)性分析的流程圖。圖4是根據(jù)一示例性實(shí)施例示出的事件的相關(guān)性分析的原理圖。圖5是根據(jù)一示例性實(shí)施例示出的按時(shí)間展開的遞歸神經(jīng)網(wǎng)絡(luò)的原理圖。圖6是根據(jù)另一示例實(shí)施例示出的工控網(wǎng)絡(luò)安全預(yù)警系統(tǒng)的結(jié)構(gòu)框圖。圖7是根據(jù)另一示例實(shí)施例示出的構(gòu)建示例工控網(wǎng)絡(luò)安全預(yù)警系統(tǒng)的技術(shù)框架圖。圖8是根據(jù)另一示例實(shí)施例示出的實(shí)時(shí)流式數(shù)據(jù)處理框架與深度學(xué)習(xí)框架的集成方案的原理圖。具體實(shí)施方式這里將詳細(xì)地對示例性實(shí)施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本發(fā)明相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。圖1是根據(jù)一示例性實(shí)施例示出的一種工控網(wǎng)絡(luò)安全預(yù)警方法的流程圖,如圖1所示,所述工控網(wǎng)絡(luò)安全預(yù)警方法主要包括以下步驟。在步驟s11中,獲取工控網(wǎng)絡(luò)的控制事件的安全相關(guān)數(shù)據(jù)。其中,所述安全相關(guān)數(shù)據(jù)可以包括工控網(wǎng)絡(luò)的歷史安全數(shù)據(jù)、歷史審計(jì)數(shù)據(jù)、實(shí)時(shí)安全數(shù)據(jù)和實(shí)時(shí)審計(jì)數(shù)據(jù)。這里,對于歷史數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)的獲取渠道可以不同,主要有兩種方式:1)從工控網(wǎng)絡(luò)的安全監(jiān)管平臺和安全審計(jì)系統(tǒng)導(dǎo)入工控網(wǎng)絡(luò)的歷史安全數(shù)據(jù)和歷史審計(jì)數(shù)據(jù)。2)實(shí)時(shí)獲取從工控網(wǎng)絡(luò)的消息中間件傳輸?shù)墓た鼐W(wǎng)絡(luò)的實(shí)時(shí)安全數(shù)據(jù)和實(shí)時(shí)審計(jì)數(shù)據(jù)。進(jìn)一步地,還需要將所述歷史安全數(shù)據(jù)、歷史審計(jì)數(shù)據(jù)、實(shí)時(shí)安全數(shù)據(jù)和實(shí)時(shí)審計(jì)數(shù)據(jù)存入數(shù)據(jù)庫中,本發(fā)明實(shí)施例優(yōu)選采用適合于單節(jié)點(diǎn)安裝的nosql數(shù)據(jù)庫,更為優(yōu)選采用nosql數(shù)據(jù)庫中的比較常用的是mongodb和cassandra,mongodb存儲json數(shù)據(jù),更像一個json文檔庫;而cassandra更像一個傳統(tǒng)意義的數(shù)據(jù)庫,同時(shí)可以提供類似sql查詢接口。并且,cassandra集群的無中心結(jié)構(gòu)使其集群更簡單,易于部署。在步驟s12中,對所述安全相關(guān)數(shù)據(jù)進(jìn)行cep分析。cep不僅處理單一的事件,也處理由多個事件所組成的復(fù)合事件,其監(jiān)測并分析事件流,當(dāng)特定事件發(fā)生時(shí)去觸發(fā)某些動作。圖2示出了cep系統(tǒng)的架構(gòu),如圖2所述,cep系統(tǒng)可以包括:1)適配器21:其包括復(fù)雜適配外圍系統(tǒng)的通訊協(xié)議,支持soap/rest、thrift格式等。2)事件流管理器22:其為核心調(diào)度模塊,可用于注冊可以處理的事件類型,且對于每一種類型,調(diào)用某一個或者多個執(zhí)行計(jì)劃來處理。3)執(zhí)行計(jì)劃23:其包含進(jìn)行事件處理的邏輯規(guī)則,為事件處理提供了一個獨(dú)立的、相互隔離的運(yùn)行環(huán)境?;赾ep系統(tǒng)的架構(gòu),本實(shí)施例的cep分析的過程優(yōu)選可以包括:在固定時(shí)間窗口對所述安全相關(guān)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)匯總以確定控制事件的相關(guān)屬性;以及結(jié)合控制事件的相關(guān)屬性和預(yù)設(shè)的規(guī)則引擎對控制事件進(jìn)行相關(guān)性分析以獲取各控制事件之間的相關(guān)性。即,本實(shí)施例中涉及的cep分析主要包括統(tǒng)計(jì)匯總和相關(guān)性分析兩部分,下面具體介紹這兩部分:1)統(tǒng)計(jì)匯總進(jìn)行統(tǒng)計(jì)匯總目的在于獲取控制事件的統(tǒng)計(jì)數(shù)據(jù),對于絕大多數(shù)控制事件,通過統(tǒng)計(jì)匯總,可以反映出某些控制事件發(fā)生的時(shí)間、頻率等信息。在優(yōu)選的實(shí)施例中,在對所述安全相關(guān)數(shù)據(jù)進(jìn)行cep分析之前,可以先對所述安全相關(guān)數(shù)據(jù)進(jìn)行聚類分析,事件的統(tǒng)計(jì)匯總再在聚類分析的基礎(chǔ)上進(jìn)行,例如將控制事件按照時(shí)間次序進(jìn)行統(tǒng)計(jì)匯總,以確定控制事件的相關(guān)屬性,進(jìn)而捕捉到事件之間的關(guān)聯(lián)關(guān)系。從統(tǒng)計(jì)學(xué)的觀點(diǎn)看,聚類分析是通過數(shù)據(jù)建模簡化數(shù)據(jù)的一種方法。本發(fā)明實(shí)施例中,聚類是將控制事件的安全相關(guān)數(shù)據(jù)分類到不同的類或者簇中的過程,使得同一個簇中的對象有很大的相似性,而不同簇間的對象有很大的相異性,從而可以利用聚類分析方法理解控制事件的數(shù)據(jù)結(jié)構(gòu)、剖析控制事件數(shù)據(jù)項(xiàng)中的關(guān)鍵因素。本實(shí)施例中可采用的聚類分析方法包括系統(tǒng)聚類法、分解法、加入法、動態(tài)聚類法、有序樣品聚類、有重疊聚類和模糊聚類等,更為優(yōu)選采用k-mean聚類和k-modes聚類。其中,k-means聚類的基礎(chǔ)是樣本之間的歐幾里德距離,但是僅對于樣本屬性為連續(xù)實(shí)數(shù)的情況才可以計(jì)算歐幾里德距離,對于離散型屬性,例如兩個不同ip地址間的距離,則無法用實(shí)數(shù)衡量計(jì)算。k-modes聚類算法是按照k-means聚類算法的核心內(nèi)容進(jìn)行修改,針對分類屬性的度量和更新質(zhì)心的問題而進(jìn)行的改進(jìn)。k-modes聚類算法的具體內(nèi)容如下:a)度量樣本之間的相關(guān)性d的計(jì)算公式是比較兩記錄之間差異,屬性相同為0,不同為1。b)然后把所有的差異值相加。因此d越大,即樣本之間的不相關(guān)程度越強(qiáng),其與歐式距離代表的意義相一致。c)更新modes,使用每個聚類中屬性出現(xiàn)頻率最大的那個屬性值,作為代表聚類的屬性值。例如某個聚類有樣本{[a,b][a,c][c,b][b,c]},則代表聚類的屬性值則為[a,b]或者[a,c]。需說明的是,上述聚類分析不是基于cep實(shí)現(xiàn)的,其實(shí)現(xiàn)方式將在下文詳細(xì)說明。2)相關(guān)性分析如圖3所示,進(jìn)行相關(guān)性分析的主要步驟包括:步驟s31,通過控制事件的相關(guān)屬性捕捉各控制事件之間的關(guān)聯(lián)關(guān)系。步驟s32,通過預(yù)設(shè)的規(guī)則引擎確定控制事件的上下文環(huán)境數(shù)據(jù)。步驟s33,結(jié)合所捕捉的各控制事件之間的關(guān)聯(lián)關(guān)系和所確定的控制事件的上下文環(huán)境數(shù)據(jù),確定各控制事件之間的相關(guān)性。圖4示出了事件相關(guān)性分析的原理。如圖4所示,對于控制事件的相關(guān)性分析來說,有兩個非常重要的因素,一個是事件的統(tǒng)計(jì)數(shù)據(jù)(可以是對聚類分析后的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)匯總所獲得的數(shù)據(jù)),另外一個則是事件之間的相關(guān)規(guī)則(借助預(yù)設(shè)的規(guī)則引擎確定)。通過事件的統(tǒng)計(jì)數(shù)據(jù),可以通過反映出某些控制事件發(fā)生的時(shí)間、頻率等信息來反映出對應(yīng)的業(yè)務(wù)模式。然而,事件相關(guān)的一些上下文環(huán)境因素(即業(yè)務(wù)模式),例如網(wǎng)絡(luò)聯(lián)通性、用戶的角色、受控設(shè)備的狀態(tài)等等,更能對于事件的理解提供更大的幫助。因此,在步驟s33中,實(shí)質(zhì)上結(jié)合了事件的統(tǒng)計(jì)數(shù)據(jù)和事件之間的相關(guān)規(guī)則,將事件的上下文環(huán)境數(shù)據(jù)與事件的相關(guān)屬性進(jìn)行綜合判斷,分析事件之間的關(guān)聯(lián)關(guān)系,以確定各控制事件之間的相關(guān)性。在步驟s13中,采用基于深度學(xué)習(xí)的分類器對經(jīng)cep分析后的數(shù)據(jù)進(jìn)行控制事件的風(fēng)險(xiǎn)識別。這里,風(fēng)險(xiǎn)識別與安全事件歸并提醒不同,其是通過分析連續(xù)的安全事件、審計(jì)數(shù)據(jù),刨析隱藏在其中的行為模式,識別安全風(fēng)險(xiǎn)。并且,結(jié)合安全評價(jià)、業(yè)務(wù)場景、設(shè)備重要性等對于單個工控指令進(jìn)行風(fēng)險(xiǎn)提醒。風(fēng)險(xiǎn)識別可以基于機(jī)器學(xué)習(xí)分類器來進(jìn)行,即經(jīng)過歷史數(shù)據(jù)學(xué)習(xí)的機(jī)器學(xué)習(xí)模塊,對于單個安全事件進(jìn)行分析、分類,判斷控制事件是否不符合常規(guī)業(yè)務(wù)模式,以識別、告警安全事件。其中,本發(fā)明實(shí)施例優(yōu)選采用基于深度學(xué)習(xí)的分類器(或稱為基于深度神經(jīng)網(wǎng)絡(luò)的分類器),更為優(yōu)選采用基于遞歸神經(jīng)網(wǎng)絡(luò)(recurrentneuralnetworks,以下簡稱為rnn)的分類器,基于rnn的安全事件分類器可以更好地理解安全事件之間的相關(guān)性,基于安全事件的前因后果,對于事件的安全風(fēng)險(xiǎn)做出更加可靠的評估。下面介紹rnn的基本工作原理,更多的細(xì)節(jié)可參考現(xiàn)有相關(guān)文獻(xiàn)。rnn又被稱為循環(huán)神經(jīng)網(wǎng)絡(luò),其具體的表現(xiàn)形式為網(wǎng)絡(luò)會對前面的信息進(jìn)行記憶并應(yīng)用于當(dāng)前輸出的計(jì)算中,即隱藏層之間的節(jié)點(diǎn)不再無連接而是有連接的,并且隱藏層的輸入不僅包括輸入層的輸出還包括上一時(shí)刻隱藏層的輸出。圖5示出了按時(shí)間展開的rnn,其中所涉及的各個參數(shù)記號表示的含義如下:1)網(wǎng)絡(luò)某一時(shí)刻的輸入xt,和多層感知器的輸入一樣,xt是一個n維向量,不同的是遞歸網(wǎng)絡(luò)的輸入將是一整個序列,也就是x=[x0,...,xt-1,xt,xt+1,...xt],對于語言模型,每一個xt將代表一個詞向量,一整個序列就代表一句話。2)ht代表時(shí)刻t的隱藏狀態(tài)。3)ot代表時(shí)刻t的輸出。4)輸入層到隱藏層直接的權(quán)重由u表示,它將我們的原始輸入進(jìn)行抽象作為隱藏層的輸入。5)隱藏層到隱藏層的權(quán)重w,它是網(wǎng)絡(luò)的記憶控制者,負(fù)責(zé)調(diào)度記憶。6)隱藏層到輸出層的權(quán)重v,從隱藏層學(xué)習(xí)到的表示將通過它再一次抽象,并作為最終輸出?;谏鲜霭磿r(shí)間展示的rnn,rnn分為兩個階段,具體為:(1)rnn的向前(forward)階段首先在t=0的時(shí)刻,u、v、w都被隨機(jī)初始化好,h0通常初始化為0,然后進(jìn)行如下計(jì)算:s1=ux1+wh0h1=f(s1)o1=g(vh1)這樣時(shí)間就向前推進(jìn),此時(shí)的狀態(tài)h1作為時(shí)刻0的記憶狀態(tài)將參與下一次的預(yù)測活動,可表示為:s2=ux2+wh1h2=f(s2)o2=g(vh2)以此類推st=uxt+wht-1ht=f(uxt+wht-1)ot=g(vht)其中f可以是tanh、relu、logistic這三種函數(shù)的其中之一,g可以是softmax函數(shù),也可以是其他函數(shù)。因此,可知rnn的記憶能力就是通過w將以往的輸入狀態(tài)進(jìn)行總結(jié),而作為下次輸入的輔助,也即是可以參考下式理解隱藏狀態(tài):h=f(現(xiàn)有的輸入+過去記憶總結(jié))(2)rnn的向后(backward)階段上面介紹了rnn如何做序列化預(yù)測,即如何一步步預(yù)測出o0,o1,....ot-1,ot,ot+1.....,下來說明u、v、w是如何訓(xùn)練的。這里需要利用類似于多層感知器和卷積神經(jīng)網(wǎng)絡(luò)用到的back-propagation方法,也就是利用輸出層的誤差cost,求解各個權(quán)重的梯度然后利用梯度下降法更新各個權(quán)重。由于是序列化預(yù)測,那么對于每一時(shí)刻t,網(wǎng)絡(luò)的輸出ot都會產(chǎn)生一定誤差et,誤差可任意選擇,可以是crossentropy,也可以是平方誤差等等。那么總的誤差為e=∑tet,則可求取各個權(quán)重的梯度如下:易知輸出ot=g(vst)。另外,可知對于任意的cost函數(shù),求取將是簡單的,可以直接求取每個時(shí)刻的由于它不存在對之前的狀態(tài)的依賴,可以直接求導(dǎo)取得,然后簡單地求和即可。下面重點(diǎn)介紹的計(jì)算。參照多層感知器的backprop算法,可知算法的竅門是定義一個首先計(jì)算出輸出層的δl,再向后傳播到各層δl-1,δl-2,....,而計(jì)算δ只要關(guān)注當(dāng)前層次發(fā)射出去的鏈接即可,如下式:δht=(vtδot+wtδht+1).*f'(st)因此,只要計(jì)算出所有的δot,δht,就可以通過以下計(jì)算出其中×表示兩個向量的外積。如此,通過機(jī)器學(xué)習(xí)可在安全評價(jià)的基礎(chǔ)上,進(jìn)行風(fēng)險(xiǎn)識別,從而可以更為全面地實(shí)現(xiàn)安全預(yù)警。這里,基于深度學(xué)習(xí)的分類器,可以使風(fēng)險(xiǎn)識別的準(zhǔn)確率更高(準(zhǔn)確率可達(dá)90%以上)。并且,基于深度學(xué)習(xí)的分類器算法本身是分布式的,在數(shù)據(jù)訓(xùn)練期間,可以在多個節(jié)點(diǎn)進(jìn)行大規(guī)模、分布式訓(xùn)練,提高訓(xùn)練的精度和速度,然后將模型存儲起來,單節(jié)點(diǎn)部署,進(jìn)行安全風(fēng)險(xiǎn)識別。本實(shí)施例中,深度學(xué)習(xí)分類器算法的學(xué)習(xí)訓(xùn)練可以分為三個階段:1)歷史數(shù)據(jù)訓(xùn)練:通過歷史存儲的控制事件的安全相關(guān)數(shù)據(jù)訓(xùn)練基于深度學(xué)習(xí)的分類器,以獲得相應(yīng)的深度學(xué)習(xí)模型。這里,歷史存儲的控制事件的安全相關(guān)數(shù)據(jù)可以為上述的歷史安全數(shù)據(jù)和歷史審計(jì)數(shù)據(jù),其屬于前期收集的實(shí)際客戶真實(shí)數(shù)據(jù),利用其對基于深度神經(jīng)網(wǎng)絡(luò)的分類器進(jìn)行訓(xùn)練,不斷調(diào)整系統(tǒng)參數(shù),可以優(yōu)化識別準(zhǔn)確率。2)工控網(wǎng)絡(luò)運(yùn)行期間:加載并還原所述深度學(xué)習(xí)模型,以對實(shí)時(shí)獲取的控制事件的安全相關(guān)數(shù)據(jù)進(jìn)行分類和預(yù)警,并輸出預(yù)警結(jié)果。這里,歷史數(shù)據(jù)訓(xùn)練完成的模型采用序列化工具,將整個深度學(xué)習(xí)模型存儲為二進(jìn)制文件。在系統(tǒng)部署運(yùn)行時(shí),再加載、還原整個深度學(xué)習(xí)模型,對實(shí)際的實(shí)時(shí)獲取的控制事件的安全相關(guān)數(shù)據(jù)進(jìn)行分類、預(yù)警,并輸出。需說明,這里的實(shí)時(shí)獲取的控制事件的安全相關(guān)數(shù)據(jù)包括上述的實(shí)時(shí)安全數(shù)據(jù)和實(shí)時(shí)審計(jì)數(shù)據(jù)。3)分類器優(yōu)化:接收用戶對于預(yù)期結(jié)果的反饋信息,并根據(jù)所述反饋信息來優(yōu)化所述深度學(xué)習(xí)模型。具體地,在工控網(wǎng)絡(luò)部署運(yùn)行期間,在深度神經(jīng)網(wǎng)絡(luò)分類器給出預(yù)警結(jié)果后,可以由用戶通過ui界面,設(shè)置同類告警下次的處理動作(忽略、告警、危險(xiǎn)等),以便對于分類器更進(jìn)一步根據(jù)客戶的需要和實(shí)際情況進(jìn)行分類學(xué)習(xí),優(yōu)化分類器以提高分類器的預(yù)警準(zhǔn)確率。此外,還優(yōu)選在gpu(graphicsprocessingunit,圖形處理器)上執(zhí)行深度學(xué)習(xí)算法,gpu相對于普通cpu運(yùn)算速度能提高7倍以上。結(jié)合上文,本實(shí)施例的工控網(wǎng)絡(luò)安全預(yù)期方案的整個安全風(fēng)險(xiǎn)識別過程可以分為兩個階段,第一個階段先以cep為核心,與上述的“統(tǒng)計(jì)匯總”和“相關(guān)性分析”部分相關(guān)聯(lián),主要是對于控制事件進(jìn)行相關(guān)性分析,找到事件之間的關(guān)聯(lián)關(guān)系,對于控制事件進(jìn)行初步的過濾,初步確定安全事件;第二階段以深度學(xué)習(xí)為核心,在cep處理懷疑事件有安全風(fēng)險(xiǎn)時(shí),然后利用深度學(xué)習(xí)工具,對于安全事件進(jìn)行更進(jìn)一步的分析,找出其中的高??刂剖录?。需說明的是,雖然也可僅基于第二階段進(jìn)行風(fēng)險(xiǎn)識別,但是cep的處理速度要遠(yuǎn)遠(yuǎn)高于基于機(jī)器學(xué)習(xí)的算法工具,因此兩者的結(jié)合有助于提高風(fēng)險(xiǎn)識別的效率。進(jìn)一步,基于cep分析與深度學(xué)習(xí)方案的結(jié)合,本發(fā)明實(shí)施例可實(shí)現(xiàn)多項(xiàng)業(yè)務(wù)功能,主要包括安全評價(jià)和風(fēng)險(xiǎn)識別兩個方面。一、安全評價(jià)本實(shí)施例中,通過cep分析結(jié)果計(jì)算用于安全評價(jià)的安全指數(shù)security_index,以此來進(jìn)行安全評價(jià)。其中,cep分析結(jié)果中所涉及的參數(shù),也就是用于計(jì)算安全指數(shù)的安全指標(biāo),如下面的表1所示。表1,安全指標(biāo)表對應(yīng)的安全指數(shù)security_index的計(jì)算公式可定義為:如此,可根據(jù)所述安全指數(shù)對總體工控網(wǎng)絡(luò)和/或單獨(dú)的安全事件進(jìn)行安全評價(jià),例如:1)security_index反映總體工控網(wǎng)絡(luò)的安全程度,security_index值越大,則危險(xiǎn)等級越高;2)安全事件總數(shù)的變化反映了整個工控網(wǎng)絡(luò)安全型的態(tài)勢;3)安全指數(shù)的絕對值沒有實(shí)際意義,需要根據(jù)實(shí)際的數(shù)據(jù),要從數(shù)據(jù)中學(xué)習(xí),統(tǒng)計(jì)出中位數(shù),劃分不同的數(shù)據(jù)區(qū)間,評價(jià)為綠/橙/紅;4)根據(jù)類似定義,可以對單獨(dú)的安全事件進(jìn)行安全評價(jià)。二、風(fēng)險(xiǎn)識別參考上文關(guān)于步驟s13的相關(guān)描述,可采用基于深度學(xué)習(xí)的分類器對經(jīng)cep分析后的數(shù)據(jù)進(jìn)行控制事件的風(fēng)險(xiǎn)識別,在此不再贅述。綜上,本發(fā)明實(shí)施例的工控網(wǎng)絡(luò)安全預(yù)警方法的前期構(gòu)建成本較低,后期的維護(hù)成本也相對較低,且其可以部署于資源受限的工控現(xiàn)場,適合于單節(jié)點(diǎn)或者多個節(jié)點(diǎn)部署環(huán)境,新節(jié)點(diǎn)加入后,數(shù)據(jù)可以自動重新分區(qū),部署方式更為靈活。并且,在工控現(xiàn)場的部署方法減少了網(wǎng)絡(luò)延遲,提高了實(shí)時(shí)數(shù)據(jù)的處理響應(yīng)速度,提高了風(fēng)險(xiǎn)預(yù)警能力。圖6是根據(jù)另一實(shí)施例示出的一種工控網(wǎng)絡(luò)安全預(yù)警系統(tǒng)的結(jié)構(gòu)框圖。參照圖6,該工控網(wǎng)絡(luò)安全預(yù)警系統(tǒng)包括數(shù)據(jù)獲取模塊61,第一處理模塊62和第二處理模塊63。其中,所述數(shù)據(jù)獲取模塊61被配置為獲取工控網(wǎng)絡(luò)的控制事件的安全相關(guān)數(shù)據(jù),且其可以包括:第一接收模塊611,用于從工控網(wǎng)絡(luò)的安全監(jiān)管平臺和安全審計(jì)系統(tǒng)導(dǎo)入工控網(wǎng)絡(luò)的歷史安全數(shù)據(jù)和歷史審計(jì)數(shù)據(jù);第二接收模塊612,用于實(shí)時(shí)獲取從工控網(wǎng)絡(luò)的消息中間件傳輸?shù)墓た鼐W(wǎng)絡(luò)的實(shí)時(shí)安全數(shù)據(jù)和實(shí)時(shí)審計(jì)數(shù)據(jù);以及數(shù)據(jù)庫模塊613,與所述第一接收模塊和所述第二接收模塊通信,用于將所述歷史安全數(shù)據(jù)、歷史審計(jì)數(shù)據(jù)、實(shí)時(shí)安全數(shù)據(jù)和實(shí)時(shí)審計(jì)數(shù)據(jù)存入數(shù)據(jù)庫。其中,第二處理模塊62被配置為對所述安全相關(guān)數(shù)據(jù)進(jìn)行cep分析,且該cep分析可以包括:在固定時(shí)間窗口對所述安全相關(guān)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)匯總以確定控制事件的相關(guān)屬性;以及結(jié)合控制事件的相關(guān)屬性和預(yù)設(shè)的規(guī)則引擎對控制事件進(jìn)行相關(guān)性分析以獲取各控制事件之間的相關(guān)性。優(yōu)選地,所述第一處理模塊62可以包括統(tǒng)計(jì)匯總模塊621和相關(guān)性分析模塊622;其中,所述統(tǒng)計(jì)匯總模塊621用于對所述安全相關(guān)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)匯總以確定控制事件的相關(guān)屬性;以及其中,所述相關(guān)性分析模塊622用于通過控制事件的相關(guān)屬性捕捉各控制事件之間的關(guān)聯(lián)關(guān)系,以及通過預(yù)設(shè)的規(guī)則引擎確定控制事件的上下文環(huán)境數(shù)據(jù),并結(jié)合所捕捉的各控制事件之間的關(guān)聯(lián)關(guān)系和所確定的控制事件的上下文環(huán)境數(shù)據(jù),確定各控制事件之間的相關(guān)性。其中,所述第二處理模塊63可以包括:模型訓(xùn)練模塊631,用于通過歷史存儲的控制事件的安全相關(guān)數(shù)據(jù)訓(xùn)練基于深度學(xué)習(xí)的分類器,以獲得相應(yīng)的深度學(xué)習(xí)模型;分類模塊632,用于在工控網(wǎng)絡(luò)運(yùn)行期間,加載并還原所述深度學(xué)習(xí)模型,以對實(shí)時(shí)獲取的控制事件的安全相關(guān)數(shù)據(jù)進(jìn)行分類和預(yù)警,并輸出預(yù)警結(jié)果;以及模型優(yōu)化模塊633,用于接收用戶對于預(yù)期結(jié)果的反饋信息,并根據(jù)所述反饋信息來優(yōu)化所述深度學(xué)習(xí)模型。此外,在更為優(yōu)先的實(shí)施例中,該工控網(wǎng)絡(luò)安全預(yù)警系統(tǒng)還可以包括:聚類模塊,與所述第一處理模塊62通信,用于在對所述安全相關(guān)數(shù)據(jù)進(jìn)行cep分析之前,對所述安全相關(guān)數(shù)據(jù)進(jìn)行聚類分析。關(guān)于上述實(shí)施例中的系統(tǒng),其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實(shí)施例中進(jìn)行了詳細(xì)描述,此處將不做詳細(xì)闡述說明。另外,以下關(guān)于本實(shí)施例中的系統(tǒng)的示例描述中內(nèi)容,也可適應(yīng)性用于上述有關(guān)方法的實(shí)施例中。在圖6的基礎(chǔ)上,下面通過一個工控網(wǎng)絡(luò)安全預(yù)警系統(tǒng)的實(shí)例來更為詳細(xì)地介紹本發(fā)明實(shí)施例。該實(shí)例給出了構(gòu)建工控網(wǎng)絡(luò)安全預(yù)警系統(tǒng)的總體技術(shù)框架,如圖7所示,可以包括以下五個組成部分,其中數(shù)據(jù)層71、基礎(chǔ)框架層73及應(yīng)用層74為實(shí)現(xiàn)本發(fā)明實(shí)施例的目的所必要的,而集群72及web層75可根據(jù)實(shí)際需求進(jìn)行配置。1)數(shù)據(jù)層71其可以對應(yīng)配置如上的數(shù)據(jù)獲取模塊61,包括第一接收模塊611(圖7中未示出)、第二接收模塊612(圖7中未示出)及數(shù)據(jù)庫模塊613,其中數(shù)據(jù)庫模塊613采用cassandra數(shù)據(jù)庫。第一接收模塊611其從外部mysql數(shù)據(jù)庫批量導(dǎo)入歷史數(shù)據(jù)以存入cassandra,這里的mysql數(shù)據(jù)庫為工控網(wǎng)絡(luò)的安全監(jiān)管平臺和安全審計(jì)系統(tǒng)的數(shù)據(jù)庫;第二接收模塊613用于將基礎(chǔ)框架層所獲取的實(shí)時(shí)數(shù)據(jù)導(dǎo)入至cassandra中,該實(shí)時(shí)數(shù)據(jù)是基礎(chǔ)框架層從消息中間件kafkatopic中實(shí)時(shí)獲取的。另外,cassandra數(shù)據(jù)在后續(xù)還將以一定的數(shù)據(jù)模型保存經(jīng)應(yīng)用層等處理后的數(shù)據(jù),下文將詳細(xì)描述,在此則不再贅述。2)集群72集群為分布式部署的基礎(chǔ),應(yīng)用的分布式處理和數(shù)據(jù)的橫向擴(kuò)展均依賴于此。本實(shí)施例采用spark集群,其由于優(yōu)秀的橫向擴(kuò)展能力、高效的處理速度贏得了廣泛的社區(qū)支持。同時(shí),該集群還包括基于分區(qū)的數(shù)據(jù)處理rdd(resilientdistributeddatasets,彈性分布式數(shù)據(jù)集),其為數(shù)據(jù)并發(fā)處理提供了高效支持。3)基礎(chǔ)框架層73該部分是整個上層應(yīng)用的技術(shù)基礎(chǔ),由實(shí)時(shí)流式數(shù)據(jù)處理框架sparkstream、cep處理框架以及深度學(xué)習(xí)框架tensorflow組成。其中,實(shí)時(shí)流式數(shù)據(jù)處理框架sparkstream用于實(shí)時(shí)從消息中間件kafkatopic中獲取工控網(wǎng)絡(luò)控制事件的實(shí)時(shí)數(shù)據(jù),其還可以對數(shù)據(jù)進(jìn)行初步加工以寫入nosql數(shù)據(jù)庫中。其中,上述的第一處理模塊基于所述cep處理框架實(shí)現(xiàn),以對控制事件在固定時(shí)間窗口內(nèi)進(jìn)行匯總及相關(guān)性分析等。其中,上述的第二處理模塊和聚類模塊可以基于深度學(xué)習(xí)框架tensorflow實(shí)現(xiàn),以提供各種智能算法,為cep分析預(yù)處理數(shù)據(jù)以及對相關(guān)數(shù)據(jù)進(jìn)行模式分析,以識別高??刂剖录?。在更為優(yōu)選的示例中,實(shí)時(shí)流式數(shù)據(jù)處理框架sparkstream與深度學(xué)習(xí)框架tensorflow可以集成在一起。如圖8所示,該集成方案中:spark集群為scala程序,運(yùn)行于java虛擬機(jī)上,tensorflow的核心為c++,運(yùn)行于操作系統(tǒng)之上。spark集群從cassandra中讀取數(shù)據(jù)、經(jīng)過轉(zhuǎn)換之后,需要將數(shù)據(jù)送入tensorflow進(jìn)行處理。而實(shí)時(shí)數(shù)據(jù)經(jīng)過sparkstream處理后,也需要送入tensorflow進(jìn)行安全風(fēng)險(xiǎn)分類。因?yàn)閟park和tensorflow均提供python接口,且都可以在程序運(yùn)行期間與外部的python程序進(jìn)行數(shù)據(jù)交互。基于此,可以在spark與tensorflow之間構(gòu)造一個數(shù)據(jù)管道,讓spark將數(shù)據(jù)轉(zhuǎn)換結(jié)果寫入數(shù)據(jù)管道,然后經(jīng)過tensorflow的feeding機(jī)制,將數(shù)據(jù)送入tensorflow,通過tensorflow進(jìn)行機(jī)器學(xué)習(xí)、聚類分析等?;谝陨匣A(chǔ)框架,可以向應(yīng)用層提供安全態(tài)勢、安全策略、安全評價(jià)和風(fēng)險(xiǎn)識別等業(yè)務(wù)功能。并且,經(jīng)各基礎(chǔ)框架處理后的數(shù)據(jù)都可以寫入至nosql數(shù)據(jù)庫中。4)應(yīng)用層74其用于配置由基礎(chǔ)框架層所支持的業(yè)務(wù)功能模塊,例如可以對應(yīng)配置安全評價(jià)模塊和風(fēng)險(xiǎn)識別模塊。此外,還可配置安全態(tài)勢模塊用于進(jìn)行工控網(wǎng)絡(luò)的安全態(tài)勢估計(jì)。5)web層75其用于提供用戶交互ui,可以由web框架pythonflask、大數(shù)據(jù)展示框架bokeh和客戶端與服務(wù)器端雙向交互的基礎(chǔ)框架websocket組成,這三個框架相互配合以向用戶進(jìn)行數(shù)據(jù)展現(xiàn)。對于上述五個部分,從開發(fā)語言上來說,可采用大數(shù)據(jù)分析的開發(fā)所普便使用的python和r,但由于python更強(qiáng)的集成與應(yīng)用開發(fā)能力,這里優(yōu)選采用python。進(jìn)一步地,數(shù)據(jù)層71還可基于其他層的處理結(jié)果,建立安全預(yù)警相關(guān)數(shù)據(jù)模型以供用戶查閱相關(guān)數(shù)據(jù),具體可以包括以下數(shù)據(jù)模型:1)安全事件數(shù)據(jù)模型本示例中,安全事件在識別到安全風(fēng)險(xiǎn)后產(chǎn)生,一個安全事件對應(yīng)一次安全風(fēng)險(xiǎn)事件。在其他示例中,安全事件也可以在dpi(deeppacketinspection,深度報(bào)文檢測)設(shè)備根據(jù)安全規(guī)則過濾控制數(shù)據(jù)包時(shí)產(chǎn)生。對應(yīng)的安全事件數(shù)據(jù)模型如表2所示。表2,安全事件數(shù)據(jù)模型2)工控設(shè)備數(shù)據(jù)模型這里的工控設(shè)備是指處于工控網(wǎng)絡(luò)內(nèi)的各種工控和網(wǎng)絡(luò)設(shè)備,對應(yīng)的工控設(shè)備數(shù)據(jù)模型如表3所示。表3,工控設(shè)備數(shù)據(jù)模型3)安全規(guī)則數(shù)據(jù)模型該模型中包括發(fā)送給dpi設(shè)備的安全規(guī)則,其中機(jī)器學(xué)習(xí)分類器也可以根據(jù)自己學(xué)習(xí)到的安全風(fēng)險(xiǎn)分類規(guī)則,修改安全規(guī)則的風(fēng)險(xiǎn)等級;或者包括由機(jī)器學(xué)習(xí)分類器根據(jù)學(xué)習(xí)到安全風(fēng)險(xiǎn)識別規(guī)律而創(chuàng)建的新安全規(guī)則。對應(yīng)的安全規(guī)則數(shù)據(jù)模型如表4所示。表4,安全規(guī)則數(shù)據(jù)模型no名稱類型說明1ruleiduuid安全規(guī)則編號2protocol_type文本協(xié)議類型3rule_name文本規(guī)則名稱4message文本展示的消息5flowbitsblob規(guī)則的特征碼6rule_bodyblob規(guī)則主體7vulnerability_iduuid對應(yīng)的漏洞編號8risk_level整數(shù)風(fēng)險(xiǎn)等級4)安全漏洞數(shù)據(jù)模型表5示出安全漏洞數(shù)據(jù)模型,其主要涉及針對安全漏洞的描述信息。表5,安全漏洞數(shù)據(jù)模型no名稱類型說明1vulnerabilityiduuid漏洞編號2severity整數(shù)嚴(yán)重級別3category文本分類4threatname文本漏洞名稱5requirement文本觸發(fā)條件6caused文本影響7suggest文本處置建議8reference文本參考內(nèi)容9defaultaction整數(shù)默認(rèn)處理動作10publishdate時(shí)間戳公布日期5)風(fēng)險(xiǎn)等級數(shù)據(jù)模型表6,風(fēng)險(xiǎn)等級數(shù)據(jù)模型6)告警數(shù)據(jù)模型每一個安全事件,或者發(fā)現(xiàn)的安全風(fēng)險(xiǎn)均會產(chǎn)生一個告警,以提示用戶有相關(guān)的安全風(fēng)險(xiǎn)產(chǎn)生,需要進(jìn)行相關(guān)的處置。表7,告警數(shù)據(jù)模型no名稱類型說明1alertiduuid告警編號2eventiduuid安全事件編號3occurred_at時(shí)間戳安全事件產(chǎn)生日期4risk_level整數(shù)風(fēng)險(xiǎn)等級5error_msg文本錯誤提示信息6status整數(shù)當(dāng)前處理狀態(tài)本發(fā)明實(shí)施例的工控網(wǎng)絡(luò)安全預(yù)警系統(tǒng)的前期構(gòu)建成本較低,后期的維護(hù)成本也相對較低,且其可以部署于資源受限的工控現(xiàn)場,適合于單節(jié)點(diǎn)或者多個節(jié)點(diǎn)部署環(huán)境,新節(jié)點(diǎn)加入后,數(shù)據(jù)可以自動重新分區(qū),部署方式更為靈活。并且,在工控現(xiàn)場的部署方法減少了網(wǎng)絡(luò)延遲,提高了實(shí)時(shí)數(shù)據(jù)的處理響應(yīng)速度,提高了風(fēng)險(xiǎn)預(yù)警能力。本領(lǐng)域技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序存儲在一個存儲介質(zhì)中,包括若干指令用以使得一個(可以是單片機(jī),芯片等)或處理器(processor)執(zhí)行本申請各個實(shí)施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機(jī)存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。本領(lǐng)域技術(shù)人員在考慮說明書及實(shí)踐這里公開的發(fā)明后,將容易想到本發(fā)明的其它實(shí)施方案。本申請旨在涵蓋本發(fā)明的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本發(fā)明的一般性原理并包括本公開未公開的本
技術(shù)領(lǐng)域:
中的公知常識或慣用技術(shù)手段。說明書和實(shí)施例僅被視為示例性的,本發(fā)明的真正范圍和精神由下面的權(quán)利要求指出。應(yīng)當(dāng)理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來限制。當(dāng)前第1頁12