基于通信模型的工業(yè)控制系統(tǒng)的入侵檢測(cè)方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明公開了一種基于通信模型的工業(yè)控制系統(tǒng)的入侵檢測(cè)方法及系統(tǒng),屬于信 息安全領(lǐng)域。
【背景技術(shù)】
[0002] 工業(yè)控制系統(tǒng)廣泛應(yīng)用于電力、水利、污水處理、石油、天然氣、化工、交通運(yùn)輸、制 藥以及大型制造行業(yè),是工業(yè)自動(dòng)化和關(guān)鍵基礎(chǔ)設(shè)施的重要組成部分?,F(xiàn)代工業(yè)控制系統(tǒng) 通過在物理系統(tǒng)中深度嵌入計(jì)算智能、通信和自動(dòng)控制能力,并借助新型傳感器和執(zhí)行器 實(shí)現(xiàn)對(duì)工業(yè)生產(chǎn)流程的自動(dòng)控制。其核心組件包括數(shù)據(jù)采集與監(jiān)控系統(tǒng)(SCADA)、分布式控 制系統(tǒng)(DCS)、可編程邏輯控制器(PLC)、遠(yuǎn)程終端(RTU)、智能電子設(shè)備(IED)、各種傳感器 和執(zhí)行器,以及確保各組件通信的接口組件。
[0003] 工業(yè)控制系統(tǒng)的首要任務(wù)是保障生產(chǎn)順利進(jìn)行,因此其設(shè)計(jì)和實(shí)現(xiàn)都是圍繞 如何滿足生產(chǎn)工藝的控制要求以及如何確保系統(tǒng)可用性展開的,而較少考慮信息安全 (Security)。這使得工業(yè)控制系統(tǒng)的通信協(xié)議、系統(tǒng)軟硬件平臺(tái)以及信息安全管理等方面 都存在很多薄弱環(huán)節(jié)。例如,很多系統(tǒng)存在缺乏安全架構(gòu)與設(shè)計(jì),不及時(shí)安裝平臺(tái)補(bǔ)丁程 序,使用設(shè)備默認(rèn)配置,使用弱口令,使用不安全的工業(yè)控制通信協(xié)議,不使用殺毒軟件等 現(xiàn)象。在信息安全保障方面,當(dāng)今的工業(yè)控制系統(tǒng)比傳統(tǒng)IT系統(tǒng)更加脆弱。
[0004] 隨著信息化與工業(yè)化融合進(jìn)程的推進(jìn),越來越多的工業(yè)控制系統(tǒng)與企業(yè)的其它網(wǎng) 絡(luò)甚至與Internet相連,傳統(tǒng)意義上較為封閉并普遍被認(rèn)為安全的工業(yè)控制系統(tǒng),逐步暴 露在網(wǎng)絡(luò)攻擊、蠕蟲、木馬、病毒等威脅之下。近年來針對(duì)工業(yè)控制系統(tǒng)的攻擊行為頻繁發(fā) 生。例如,1982年的西伯利亞管線爆炸事件,入侵者在輸油管線的SCADA系統(tǒng)中植入木馬并 進(jìn)而控制了輸油管線,造成相當(dāng)于3千噸TNT的爆炸;1994年美國(guó)鹽河項(xiàng)目事件,一名攻擊 者通過撥號(hào)調(diào)制解調(diào)器越權(quán)訪問該項(xiàng)目的計(jì)算機(jī)網(wǎng)絡(luò)并安裝了后門,之后與控制河流的關(guān) 鍵系統(tǒng)保持了至少5小時(shí)的會(huì)話,危及水流控制、電力監(jiān)測(cè)和傳輸、經(jīng)濟(jì)以及客戶信息等; 2010年震網(wǎng)病毒攻擊伊朗納坦茲核設(shè)施事件,攻擊者編寫的蠕蟲病毒利用Windows系統(tǒng)漏 洞和西門子工業(yè)控制系統(tǒng)信息安全缺陷在PCS(過程控制系統(tǒng))中大肆傳播,該病毒通過不 斷改變變頻器頻率,使得驅(qū)動(dòng)離心機(jī)的驅(qū)動(dòng)器不斷在高速和低速之間切換,造成離心機(jī)大 量損毀。
[0005] -些企業(yè)已經(jīng)使用某些安全防護(hù)手段保護(hù)其工業(yè)控制系統(tǒng)。例如,使用防火墻或 安全隔離網(wǎng)閘等設(shè)備將企業(yè)信息網(wǎng)與企業(yè)工業(yè)控制網(wǎng)絡(luò)隔離,建立縱深安全防護(hù)體系,使 用加密技術(shù)保障傳輸數(shù)據(jù)的機(jī)密性,使用認(rèn)證技術(shù)確保登錄用戶擁有合法身份,等等。一些 公知的IT領(lǐng)域安全防護(hù)方法和策略稍加修改就可以用于保護(hù)工業(yè)控制系統(tǒng),例如工業(yè)控 制防火墻就是在IT防火墻上增加對(duì)工業(yè)控制流量的過濾和控制能力。而另一些則不能容 易地應(yīng)用到工業(yè)控制領(lǐng)域。例如,IT系統(tǒng)會(huì)及時(shí)安裝補(bǔ)丁程序以修補(bǔ)安全漏洞,而實(shí)際運(yùn) 行的工業(yè)控制系統(tǒng)通常不會(huì)輕易安裝補(bǔ)丁程序。一個(gè)原因是安裝補(bǔ)丁程序需要事先周密計(jì) 劃并停產(chǎn),另一個(gè)原因是補(bǔ)丁程序可能影響原有的控制精度。再如,IT系統(tǒng)基本都會(huì)安裝 殺毒軟件,但工業(yè)控制系統(tǒng)一般不安裝殺毒軟件。殺毒軟件的使用可能使控制設(shè)備或工控 機(jī)的某些功能失效或性能降低,影響系統(tǒng)可用性。由此可見,工業(yè)控制系統(tǒng)的固有特性使得 企業(yè)能夠采取的安全防護(hù)措施受到諸多限制,不能完全阻斷針對(duì)工業(yè)控制系統(tǒng)的入侵和攻 擊行為。
[0006] 綜上,一些公知的信息安全脆弱性在工業(yè)控制系統(tǒng)中根深蒂固,難以排除;針對(duì)工 業(yè)控制系統(tǒng)的內(nèi)、外部攻擊不能被完全阻斷。因此,需要在工業(yè)控制系統(tǒng)中部署入侵檢測(cè)系 統(tǒng),及時(shí)發(fā)現(xiàn)入侵,及早報(bào)警,盡量避免入侵給工業(yè)生產(chǎn)帶來危害。
[0007] 國(guó)內(nèi)外已有一些關(guān)于工業(yè)控制系統(tǒng)入侵檢測(cè)方法的研究。大多數(shù)的研究從工業(yè)控 制系統(tǒng)的IT系統(tǒng)組件入手檢測(cè)入侵。例如,有研究者通過預(yù)處理插件的方法為Snort增加 了對(duì)基于串行通信的工業(yè)控制系統(tǒng)的拒絕服務(wù)、命令注入、響應(yīng)注入和系統(tǒng)偵查4類入侵 的檢測(cè)和預(yù)防處理能力。有研究者使用基于規(guī)則的方法為工業(yè)控制無線傳感網(wǎng)設(shè)計(jì)了入侵 檢測(cè)方法,該方法利用工業(yè)控制無線傳感網(wǎng)具有規(guī)律性流量模式以及良定義的"請(qǐng)求-響 應(yīng)"通信的特點(diǎn)設(shè)計(jì)了一系列檢測(cè)規(guī)則,當(dāng)被監(jiān)視的工業(yè)控制無線傳感網(wǎng)實(shí)體出現(xiàn)違反規(guī) 則的通信行為時(shí)發(fā)出告警。有研究者利用過程控制系統(tǒng)網(wǎng)絡(luò)通信具有嚴(yán)格時(shí)間規(guī)律的特 點(diǎn),收集工業(yè)控制系統(tǒng)中數(shù)據(jù)報(bào)節(jié)拍信息,當(dāng)過程控制系統(tǒng)實(shí)際通信數(shù)據(jù)報(bào)時(shí)間節(jié)拍違反 原定節(jié)拍規(guī)律時(shí)產(chǎn)生報(bào)警。有研究者建立工業(yè)控制蜜罐系統(tǒng),捕獲各種入侵的特征并由此 生成入侵檢測(cè)規(guī)則。此外,也有一些研究從被控物理系統(tǒng)入手檢測(cè)入侵。例如,有研究者利 用工業(yè)控制系統(tǒng)輸入決定輸出的特性,依據(jù)控制工藝要求建立控制系統(tǒng)的近似數(shù)學(xué)模型, 由輸入預(yù)測(cè)輸出,之后比較實(shí)測(cè)輸出信號(hào)與預(yù)測(cè)輸出信號(hào),利用陡變檢測(cè)算法檢測(cè)異常。
[0008] 入侵或攻擊工業(yè)控制系統(tǒng)的基本目標(biāo)之一是破壞工業(yè)生產(chǎn),制造物理?yè)p失或危及 人員安全。通常的攻擊過程是通過信息設(shè)備控制實(shí)際物理設(shè)備,進(jìn)而破壞工業(yè)生產(chǎn)。相應(yīng) 地,工業(yè)控制系統(tǒng)的入侵和攻擊范圍跨越信息設(shè)備、控制器和被控物理設(shè)備。現(xiàn)有從IT系 統(tǒng)組件入手檢測(cè)工業(yè)控制系統(tǒng)入侵的方法沿用IT系統(tǒng)入侵檢測(cè)思路,未能充分考慮工業(yè) 控制通信網(wǎng)絡(luò)實(shí)時(shí)性、周期性的特點(diǎn),也未能充分考慮工業(yè)控制設(shè)備之間的主從關(guān)系,不僅 誤報(bào)率、漏報(bào)率高,而且影響原有控制系統(tǒng)的控制精度,甚至降低原有控制系統(tǒng)的可用性。 而現(xiàn)有從被監(jiān)測(cè)物理系統(tǒng)入手檢測(cè)工業(yè)控制系統(tǒng)入侵的方法需要建立控制系統(tǒng)近似數(shù)學(xué) 模型,但建立控制系統(tǒng)的近似數(shù)學(xué)模型本身就是艱難的工作,況且實(shí)際工業(yè)生產(chǎn)中很多控 制過程無法用數(shù)學(xué)模型表示,并且無法判斷異常是由于攻擊引起還是由物理噪聲引起,缺 乏實(shí)用性。
【發(fā)明內(nèi)容】
[0009] 本發(fā)明的目的在于克服上述已有技術(shù)的不足,提出一種不影響原有控制系統(tǒng)控制 可用性的基于通信模型的工業(yè)控制系統(tǒng)的入侵檢測(cè)方法及系統(tǒng),在保證實(shí)用性的同時(shí),最 大限度地提高入侵檢測(cè)的準(zhǔn)確率,降低漏報(bào)率和誤報(bào)率。
[0010] 本發(fā)明通過以下技術(shù)方案實(shí)現(xiàn):
[0011] 一種基于通信模型的工業(yè)控制系統(tǒng)的入侵檢測(cè)方法,包括建立工業(yè)控制系統(tǒng)通信 模型步驟和入侵檢測(cè)步驟:首先建立工業(yè)控制系統(tǒng)通信模型和通信規(guī)則,所述的通信模型 包含節(jié)點(diǎn)信息和通信連接信息;工業(yè)控制系統(tǒng)通信模型建立之后,以通信模型為基礎(chǔ)產(chǎn)生 合法通信規(guī)則集,在工業(yè)控制系統(tǒng)安裝調(diào)試階段以及尚未發(fā)生攻擊階段進(jìn)行學(xué)習(xí),建立通 信模型并生成通信規(guī)則集;然后在工業(yè)控制網(wǎng)絡(luò)中部署探測(cè)器,捕獲數(shù)據(jù)報(bào),由數(shù)據(jù)報(bào)分析 并提取通信連接信息,與所述生成的合法通信規(guī)則集進(jìn)行比對(duì),若有違反該合法通信規(guī)則 集的通信連接則產(chǎn)生告警;若發(fā)現(xiàn)入侵,則調(diào)用系統(tǒng)響應(yīng)模塊采取相應(yīng)的響應(yīng)策略,若實(shí)際 檢測(cè)有誤,則進(jìn)行分析并重新進(jìn)行學(xué)習(xí)。
[0012] 其中建立系統(tǒng)通信模型采用以下方法:
[0013] 第一步,捕獲數(shù)據(jù)報(bào);實(shí)時(shí)從數(shù)據(jù)鏈路層捕獲數(shù)據(jù)報(bào);
[0014] 第二步,將實(shí)時(shí)捕獲的數(shù)據(jù)報(bào)或由已有數(shù)據(jù)報(bào)文件取得的數(shù)據(jù)報(bào),按照時(shí)間戳的 順序存儲(chǔ)到數(shù)據(jù)報(bào)隊(duì)列中,然后進(jìn)行協(xié)議分析;
[0015] 第三步,進(jìn)行通信周期分析,分析兩個(gè)節(jié)點(diǎn)之間每次通信連接的起始時(shí)間和結(jié)束 時(shí)間,獲取通信周期;
[0016] 第四步,生成通信模型:根據(jù)通信周期分析結(jié)果、通信記錄庫(kù)條目和預(yù)定義的節(jié)點(diǎn) 描述文件生成通信模型,并將通信模型數(shù)據(jù)存入通信模型庫(kù);
[0017] 第五步,分析主從關(guān)系:實(shí)際工業(yè)控制系統(tǒng)中包含多個(gè)互不連通的子系統(tǒng),則為每 個(gè)子系統(tǒng)分別建立通信模型,生成通信規(guī)則以及進(jìn)行入侵檢測(cè),設(shè)通信模型庫(kù)中存儲(chǔ)的信 息為一個(gè)有向圖,對(duì)該有向圖進(jìn)行遍歷,獲取所有主從關(guān)系域信息,為每個(gè)主從關(guān)系與生成 輪詢順序函數(shù);
[0018] 第六步,生成通信規(guī)則:由通信模型庫(kù)以及主從分析結(jié)果生成通信規(guī)則庫(kù)。
[0019] 其中第一步中只捕獲感興趣的數(shù)據(jù)報(bào)。
[0020] 其中第一步中預(yù)先設(shè)定過濾規(guī)則,采用捕獲前過濾的方式,過濾掉不符合規(guī)則的 數(shù)據(jù)報(bào)。
[0021] 其中第一步中捕獲數(shù)據(jù)報(bào)時(shí)為數(shù)據(jù)報(bào)打時(shí)間戳,對(duì)加有時(shí)間戳的數(shù)據(jù)報(bào)進(jìn)行實(shí)時(shí) 分析,或?qū)⒓佑袝r(shí)間戳的數(shù)據(jù)報(bào)存儲(chǔ)為數(shù)據(jù)報(bào)文件。
[0022] 其中第二步根據(jù)預(yù)定義的工控協(xié)議描述文件識(shí)別協(xié)議類型、信源地址、信宿地址、 負(fù)載二進(jìn)制位串,對(duì)過濾后的協(xié)議進(jìn)行通信連接分析,通信模型中也只建立協(xié)議過濾后的 通信連接關(guān)系,若報(bào)文格式與預(yù)定義工控協(xié)議描述文件中的任何一個(gè)協(xié)議均不匹配,則判 別為未知協(xié)議數(shù)據(jù)報(bào),此時(shí)只識(shí)別數(shù)據(jù)鏈路層地址,而將數(shù)據(jù)鏈路層的協(xié)議數(shù)據(jù)單元rou 直接作為負(fù)載二進(jìn)制位串;對(duì)每個(gè)通信連接加上時(shí)間信息,協(xié)議分析之后的數(shù)據(jù)報(bào)信息包 含本次通信的開始時(shí)間和結(jié)束時(shí)間;對(duì)于面向連接的通信,結(jié)束時(shí)間大于開始時(shí)間;對(duì)于 非面向連接的通信,結(jié)束時(shí)間等于開始時(shí)間。
[0023] 其中第二步中協(xié)議分析將兩個(gè)節(jié)點(diǎn)之間的每次通信的屬性信息作為一條記錄存 儲(chǔ)到通信記錄庫(kù)中。
[0024] 第四步所述的預(yù)定義的節(jié)點(diǎn)描述文件依據(jù)工業(yè)控制系統(tǒng)設(shè)計(jì)文檔或系統(tǒng)組態(tài)文