件編寫(xiě),包括節(jié)點(diǎn)上的所有"協(xié)議-地址"信息對(duì)。
[0025] 其中采用"指導(dǎo)"與"探測(cè)"相結(jié)合的方法建立通信模型,所述的"指導(dǎo)"是以指先 驗(yàn)知識(shí)為指導(dǎo)生成模型的部分信息,工業(yè)控制系統(tǒng)設(shè)計(jì)說(shuō)明書(shū)中有控制部件、計(jì)算和信息 部件以及通信部件的詳細(xì)設(shè)計(jì)說(shuō)明,以此為基礎(chǔ)確定模型中的節(jié)點(diǎn)信息、節(jié)點(diǎn)之間的主從 關(guān)系以及拓?fù)湫畔?;所述?探測(cè)"是指使用探測(cè)工業(yè)控制系統(tǒng)通信數(shù)據(jù)報(bào)的方法獲取模型 的部分信息;在工業(yè)控制系統(tǒng)部署探測(cè)器探測(cè)網(wǎng)絡(luò)通信數(shù)據(jù)報(bào),對(duì)探測(cè)得到的網(wǎng)絡(luò)通信數(shù) 據(jù)進(jìn)行分析和挖掘,提取通信連接信息。
[0026] 其中入侵檢測(cè)采用以下方法:
[0027] 步驟一,根據(jù)報(bào)文過(guò)濾規(guī)則實(shí)時(shí)捕獲數(shù)據(jù)報(bào),存入數(shù)據(jù)報(bào)隊(duì)列;
[0028] 步驟二,根據(jù)協(xié)議過(guò)濾規(guī)則、工控協(xié)議描述文件分析數(shù)據(jù)報(bào)隊(duì)列數(shù)據(jù),分析結(jié)果并 存入通信記錄隊(duì)列;
[0029] 步驟三,對(duì)通信記錄隊(duì)列進(jìn)行通信周期分析和主從關(guān)系分析,把分析結(jié)果傳給異 常告警模塊做進(jìn)一步分析;
[0030] 步驟四,異常告警分析:實(shí)時(shí)接收通信周期分析、主從關(guān)系分析的結(jié)果并進(jìn)行綜合 分析,對(duì)比規(guī)則庫(kù)中的通信規(guī)則,若有違反該合法通信規(guī)則集的通信連接則產(chǎn)生告警;若發(fā) 現(xiàn)入侵,則調(diào)用系統(tǒng)響應(yīng)模塊采取相應(yīng)的響應(yīng)策略,若實(shí)際檢測(cè)有誤,則進(jìn)行分析并轉(zhuǎn)入重 新學(xué)習(xí),重新構(gòu)建通信模型和通信規(guī)則庫(kù)。
[0031] 一種基于通信模型的工業(yè)控制系統(tǒng)的入侵檢測(cè)系統(tǒng),包括多個(gè)數(shù)據(jù)報(bào)探測(cè)器和一 個(gè)IDS分析檢測(cè)主機(jī);其中IDS分析檢測(cè)主機(jī)包含系統(tǒng)配置模塊、系統(tǒng)響應(yīng)模塊、通信模型 與通信規(guī)則生成模塊以及分析檢測(cè)模塊;其中:
[0032] 系統(tǒng)配置模塊用于提供節(jié)點(diǎn)描述文件、工控協(xié)議描述文件、協(xié)議過(guò)濾規(guī)則、報(bào)文過(guò) 濾規(guī)則的配置功能;
[0033] 系統(tǒng)響應(yīng)模塊用于針對(duì)分析檢測(cè)模塊傳來(lái)的告警按照策略進(jìn)行響應(yīng);
[0034] 通信模型與通信規(guī)則生成模塊用于提供在系統(tǒng)未發(fā)生攻擊狀態(tài)下的通信建模和 通信規(guī)則生成功能;
[0035] 分析檢測(cè)模塊用于實(shí)時(shí)檢測(cè)從工業(yè)控制系統(tǒng)網(wǎng)絡(luò)中捕獲的報(bào)文,驗(yàn)證報(bào)文的通信 連接是否符合之前生成的通信規(guī)則,若有違反通信規(guī)則的通信連接則產(chǎn)生告警信息發(fā)送給 系統(tǒng)響應(yīng)模塊;
[0036] 數(shù)據(jù)報(bào)探測(cè)器用于探測(cè)工業(yè)控制網(wǎng)絡(luò)數(shù)據(jù)報(bào),接收IDS分析檢測(cè)主機(jī)配置的報(bào) 文過(guò)濾規(guī)則,并給探測(cè)到的數(shù)據(jù)報(bào)打時(shí)間戳。
[0037] 各個(gè)數(shù)據(jù)報(bào)探測(cè)器與IDS分析檢測(cè)主機(jī)保持時(shí)鐘同步。
[0038] 本發(fā)明的有益效果:
[0039] 本發(fā)明充分考慮工業(yè)控制通信網(wǎng)絡(luò)的實(shí)時(shí)性、周期性,以及工業(yè)控制設(shè)備的主從 工作模式的基礎(chǔ)上,提出了一種工業(yè)控制系統(tǒng)網(wǎng)絡(luò)通信模型,該模型具有描述多種工業(yè)控 制通信協(xié)議及節(jié)點(diǎn)間不同層次通信連接的能力以及描述通信連接的實(shí)時(shí)性、周期性和主從 關(guān)系的能力,模型描述能力超過(guò)了已有工業(yè)控制網(wǎng)絡(luò)模型描述能力。本發(fā)明以該模型為基 礎(chǔ)提出了模型建立方法和用于入侵檢測(cè)的工業(yè)控制系統(tǒng)異常檢測(cè)方法以及入侵檢測(cè)系統(tǒng)。 本發(fā)明在保證實(shí)用性的同時(shí),最大限度地提高入侵檢測(cè)的準(zhǔn)確率,降低漏報(bào)率和誤報(bào)率
【附圖說(shuō)明】
[0040] 圖1為本發(fā)明建立系統(tǒng)通信模型流程圖;
[0041] 圖2為本發(fā)明入侵檢測(cè)流程圖;
[0042] 圖3為本發(fā)明基于通信模型的工業(yè)控制系統(tǒng)的入侵檢測(cè)系統(tǒng)原理圖。
【具體實(shí)施方式】
[0043] 本發(fā)明將工業(yè)控制系統(tǒng)中具備計(jì)算和/或通信功能和/或控制功能的設(shè)備統(tǒng)稱(chēng)為 節(jié)點(diǎn)。節(jié)點(diǎn)可以是工控機(jī)、PLC、IED、RTU、HMI、SCADA服務(wù)器、計(jì)算服務(wù)器、Historian服務(wù) 器、0PC服務(wù)器、通信服務(wù)器、前置機(jī)、交換機(jī)、路由器和通信網(wǎng)關(guān)等。本發(fā)明的范疇涉及由 節(jié)點(diǎn)及通信線(xiàn)路組成的工業(yè)控制網(wǎng)絡(luò)。
[0044] 本發(fā)明的通信模型用以描述工業(yè)控制系統(tǒng)節(jié)點(diǎn)間不同類(lèi)型的通信關(guān)系,工業(yè)控制 網(wǎng)絡(luò)的基本通信關(guān)系是一個(gè)有向圖G= (V,E),其中V是頂點(diǎn)的集合,E是有向邊的集合。 將工業(yè)控制網(wǎng)絡(luò)中的節(jié)點(diǎn)建模為圖的頂點(diǎn),將節(jié)點(diǎn)之間的通信連接建模為有向邊,邊的方 向有信源指向信宿(當(dāng)通信連接為非面向連接的通信時(shí))或由連接發(fā)起方指向目標(biāo)方(當(dāng) 通信連接為面向連接的通信時(shí))。本發(fā)明以有向圖為基礎(chǔ)構(gòu)建工業(yè)控制系統(tǒng)通信模型。
[0045] 在工業(yè)控制系統(tǒng)中,一個(gè)節(jié)點(diǎn)可以與多個(gè)節(jié)點(diǎn)通信,可以使用不同的通信協(xié) 議。為此,VveF,定義Attrv={(protocol;,addr;),iG}為節(jié)點(diǎn)v的屬性的集合,其 中protocol;為節(jié)點(diǎn)v運(yùn)行的第i個(gè)協(xié)議,addr;為節(jié)點(diǎn)v運(yùn)行protoco協(xié)議的實(shí)體的 地址。令A(yù)= {Attrv|vGV},定義節(jié)點(diǎn)v的屬性指派函數(shù)為fv:FkJ:.,使得fv(v)= Attrv。函數(shù)fv給節(jié)點(diǎn)v指派一個(gè)屬性集合。節(jié)點(diǎn)之間的數(shù)據(jù)通信有實(shí)時(shí)和非實(shí)時(shí)、周 期和非周期之分。定義集合I=Irt,nrt}表示通信連接的實(shí)時(shí)性,其中rt和nrt分別 表示實(shí)時(shí)與非實(shí)時(shí)。定義集合Peri={t11G}表示通信連接的周期性,其中t為通信 周期(周期通信t> 0,非周期通信t=-1)。定義集合P= {pType}表示通信連接的協(xié) 議類(lèi)型,其中pType表示協(xié)議類(lèi)型,如TCP、UDP、Modbus、PR0FIBUS和DeviceNet等。定 義CType=IXPeriXP為通信連接類(lèi)型集。設(shè)A、B是兩個(gè)節(jié)點(diǎn),以協(xié)議口1~〇1:〇(3〇1;通 信,則pTypeiprotocoli。在工業(yè)控制系統(tǒng)中,某些節(jié)點(diǎn)具有主從關(guān)系(主站和從站 的關(guān)系),定義集合MSR= {master,slave,na},其中master和slave分別表示"主從" 關(guān)系中的主和從,na表示非主也非從。若節(jié)點(diǎn)A和節(jié)點(diǎn)B之間的某個(gè)通信連接具有主 從關(guān)系,則主節(jié)點(diǎn)為master,從節(jié)點(diǎn)為slave;若該連接不具有主從關(guān)系,則兩個(gè)均為 na。令fFgKxJx ,將兩個(gè)節(jié)點(diǎn)之間的通信連接建模為五e(cuò)fFxffx,Vee£,有 c' = ( i'、,,/??.sr' ? i',,. 起點(diǎn),vd為通信連接終點(diǎn),protocoli為該連接的通信協(xié)議,?*氣為起點(diǎn)的協(xié)議地址, 為終點(diǎn)的協(xié)議地址,msrsS起點(diǎn)主從關(guān)系屬性,msr,為終點(diǎn)主從關(guān)系屬性,i為連接的實(shí)時(shí) 性屬性,peri為連接的周期性屬性。工業(yè)控制系統(tǒng)的兩個(gè)節(jié)點(diǎn)之間可以存在多個(gè)連接,此 時(shí)兩個(gè)節(jié)點(diǎn)之間有多條有向邊。
[0046] 設(shè)eGE是一個(gè)具有主從關(guān)系的通信連接,則由工業(yè)控制系統(tǒng)主站從站關(guān)系可知 必有(msrs=master)八(msrd=slave)或(msrs=slave)八(msrd=master)。本發(fā)明稱(chēng) 在此通信連接中具有master屬性的節(jié)點(diǎn)為通信連接e的主節(jié)點(diǎn),具有slave屬性的節(jié)點(diǎn)為 通信連接e的從節(jié)點(diǎn)。設(shè).,…為具有如下性質(zhì)的集合:茍,j= 1,2,…,n,存在具有主從關(guān)系的通信連接e,使得Vni為通信連接e的主節(jié)點(diǎn),v,為通信連接 e的從節(jié)點(diǎn)。稱(chēng)為G中的一個(gè)主從關(guān)系域。在工業(yè)控制系統(tǒng)通信中,主站周期性輪 詢(xún)每個(gè)從站。為描述輪詢(xún)關(guān)系,定義輪詢(xún)順序函數(shù)函數(shù):A/SAYJ, \吣丨->f卩=〗?_",, 對(duì)i= 1…n,人(')為輪詢(xún)順序值。
[0047] 令FV= {fv |vGV},F(xiàn)M= { /%i. |vmGV且vm為某個(gè)主從關(guān)系域中的主節(jié)點(diǎn)},則 一個(gè)工業(yè)控制系統(tǒng)的通信網(wǎng)絡(luò)模型為元組T= <V,E,A,CType,MSR,F(xiàn)V,F(xiàn)M>,其中V為節(jié) 點(diǎn)的集合,E為通信連接有向邊的集合,A是所有節(jié)點(diǎn)的屬性集構(gòu)成的集合,CType是通信連 接類(lèi)型的集合,MSR是通信連接兩個(gè)頂點(diǎn)主從屬性的集合,F(xiàn)V是節(jié)點(diǎn)的屬性指派函數(shù)的集 合,F(xiàn)M是所有主從關(guān)系域的輪詢(xún)函數(shù)的集合。
[0048] 本通信模型具有描述多種工業(yè)控制通信協(xié)議及節(jié)點(diǎn)間不同層次通信連接 的能力以及描述通信連接的實(shí)時(shí)性、周期性和主從關(guān)系的能力。通信規(guī)則設(shè)T= <V,E,A,CType,MSR,F(xiàn)V,F(xiàn)M>是一個(gè)工業(yè)控制系統(tǒng)的通信模型。則本發(fā)明的通信規(guī)則集為 F=EUFM〇
[0049] 在工業(yè)控制網(wǎng)絡(luò)中部署探測(cè)器,捕獲數(shù)據(jù)報(bào),由數(shù)據(jù)報(bào)分析并提取通信連接信息, 與階段1生成的合法通信規(guī)則進(jìn)行比對(duì),若有違反該合法通信規(guī)則集的通信連接則產(chǎn)生告 警。實(shí)際使用時(shí)要對(duì)告警進(jìn)行進(jìn)一步確認(rèn)。若發(fā)現(xiàn)入侵,則調(diào)用系統(tǒng)響應(yīng)模塊采取相應(yīng)的 響應(yīng)策略。若實(shí)際檢測(cè)有誤,則進(jìn)行分析并轉(zhuǎn)入階段1重新學(xué)習(xí)。這樣隨著系統(tǒng)運(yùn)行時(shí)間 的推移,可以逐步提尚檢測(cè)精度。
[0050] 通信模型與通信規(guī)則的生成方法如下:
[0051] 第一步,捕獲數(shù)據(jù)報(bào)。實(shí)時(shí)從數(shù)據(jù)鏈路層捕獲數(shù)據(jù)報(bào)。在實(shí)際的模型建立過(guò)程中 并不需要捕獲所有的數(shù)據(jù)報(bào),只需要捕獲感興趣的數(shù)據(jù)報(bào)否則就會(huì)產(chǎn)生很多垃圾數(shù)據(jù),造 成捕獲性能瓶頸。需要預(yù)先設(shè)定過(guò)濾規(guī)則,例如設(shè)置站過(guò)濾、協(xié)議過(guò)濾、服務(wù)過(guò)濾等過(guò)濾規(guī) 貝1J。為了提高系統(tǒng)的效率,本發(fā)明采用捕獲前過(guò)濾的方式,過(guò)濾掉不符合條件的數(shù)據(jù)報(bào)。捕 獲數(shù)據(jù)報(bào)時(shí)為數(shù)據(jù)報(bào)打時(shí)間戳??梢詫?duì)加有時(shí)間戳的數(shù)據(jù)報(bào)進(jìn)行實(shí)時(shí)分析,也可將加有時(shí) 間戳的數(shù)據(jù)報(bào)存儲(chǔ)為數(shù)據(jù)報(bào)文件。
[0052] 第二步,進(jìn)行協(xié)議分析。在進(jìn)行協(xié)議分析時(shí),將實(shí)時(shí)捕獲的數(shù)據(jù)報(bào)或由已有數(shù)據(jù)報(bào) 文件取