技術(shù)領(lǐng)域:
本發(fā)明屬于工業(yè)控制網(wǎng)絡(luò)信息安全技術(shù)領(lǐng)域,具體是涉及一種基于SCADA系統(tǒng)的周期性異常檢測(cè)的方法。
背景技術(shù):
:
SCADA(Supervisory Control And Data Acquisition)即數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)。SCADA系統(tǒng)的應(yīng)用領(lǐng)域很廣,在石油化工、電力系統(tǒng)、給水系統(tǒng)、核電等領(lǐng)域都發(fā)揮著重要的作用,圖1為SCADA系統(tǒng)在石化安全行業(yè)中的示意圖。隨著網(wǎng)絡(luò)的發(fā)展,SCADA系統(tǒng)也由獨(dú)立的網(wǎng)絡(luò)系統(tǒng)、專有的軟硬件環(huán)境,逐漸發(fā)展成為開(kāi)放式透明運(yùn)作的標(biāo)準(zhǔn)系統(tǒng),并通過(guò)TCP/IP等標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議進(jìn)行通信,而鑒于系統(tǒng)的重要性,其安全問(wèn)題越來(lái)越受到普遍關(guān)注,一旦系統(tǒng)受到攻擊,后果可能是災(zāi)難性的。這在降低成本提高效率的同時(shí),SCADA系統(tǒng)所面臨的安全性問(wèn)題也日益凸顯出來(lái)。
本發(fā)明中,入侵檢測(cè)系統(tǒng)(IDS)作為一個(gè)跟蹤惡意行為非常重要的設(shè)備。處理已知入侵威脅的方式是以識(shí)別誤用或誤操作為基礎(chǔ),而識(shí)別惡意攻擊是以發(fā)現(xiàn)異常操作行為為基礎(chǔ)。異常檢測(cè)方式是以網(wǎng)絡(luò)的正常運(yùn)行為特征,在此基礎(chǔ)上識(shí)別出偏差,即異常行為。異常檢測(cè)系統(tǒng)被應(yīng)用在從通信協(xié)議到處理日志分析等SCADA系統(tǒng)的不同方面。
SCADA系統(tǒng)分布在生產(chǎn)環(huán)境中以監(jiān)視及控制各種設(shè)備,為了達(dá)到這個(gè)目標(biāo),數(shù)據(jù)需要持續(xù)不斷地從這些設(shè)備中獲取,因此就要建立一個(gè)實(shí)時(shí)響應(yīng)的基礎(chǔ)設(shè)施環(huán)境。典型的方式是:數(shù)據(jù)通過(guò)自動(dòng)輪詢機(jī)制獲取,即通過(guò)預(yù)先設(shè)定好的時(shí)間間隔發(fā)送輪詢請(qǐng)求到現(xiàn)場(chǎng)設(shè)備以實(shí)時(shí)獲取生產(chǎn)數(shù)據(jù),然而此種方式的副作用是通信行為具有較高的周期性。本發(fā)明提出了一種使用這種自動(dòng)輪詢機(jī)制來(lái)實(shí)現(xiàn)對(duì)異常入侵的檢測(cè),通過(guò)對(duì)這種上報(bào)方式變化的洞察來(lái)保護(hù)那些周期性被訪問(wèn)的網(wǎng)絡(luò)服務(wù)。值得注意的是,雖然一些攻擊可以破壞傳輸?shù)闹芷谛?,但是在傳輸周期性中所發(fā)生的改變未必都是惡意的。本發(fā)明以定位這些破壞行為目的。
技術(shù)實(shí)現(xiàn)要素:
:
針對(duì)以上問(wèn)題,本發(fā)明提出了一種基于SCADA系統(tǒng)的周期性異常檢測(cè)的方法。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案如下:
一種基于SCADA系統(tǒng)的周期性異常檢測(cè)的方法,包括:
傳輸獲取階段,來(lái)自SCADA系統(tǒng)的傳輸被動(dòng)的接受監(jiān)測(cè)中心端的監(jiān)測(cè)及分析。
流的建立階段,創(chuàng)立網(wǎng)絡(luò)流,以一種有效的方式來(lái)匯總數(shù)據(jù)包,并將數(shù)據(jù)流當(dāng)做時(shí)間序列來(lái)存儲(chǔ)。
周期性學(xué)習(xí)階段,學(xué)習(xí)系統(tǒng)的正常行為,提取周期性脈沖的頻率和周期性脈沖的大小這兩個(gè)特征。
比較特征項(xiàng)階段,利用算法進(jìn)行特征項(xiàng)的選擇。
異常檢測(cè)階段,將流的建立階段中獲取的數(shù)據(jù)流與比較特征項(xiàng)階段中獲取的特征項(xiàng)進(jìn)行匹配,若數(shù)據(jù)流與特征項(xiàng)相匹配,則被認(rèn)定異常,發(fā)出警報(bào)并反饋到周期性學(xué)習(xí)階段。
作為上述技術(shù)方案的優(yōu)選,所述流的建立階段中:
使用服務(wù)器端傳輸端口來(lái)匯總數(shù)據(jù)包,依靠所使用的應(yīng)用程序及協(xié)議來(lái)分離出周期性脈沖。
作為上述技術(shù)方案的優(yōu)選,所述流的建立階段中:
存儲(chǔ)數(shù)據(jù)流采用的采樣頻率SF為:
SF=1/P,
其中,P為一定的時(shí)間間隔。
作為上述技術(shù)方案的優(yōu)選,周期性學(xué)習(xí)階段通過(guò)離線的方式來(lái)執(zhí)行分析,并通過(guò)網(wǎng)絡(luò)管理員來(lái)驗(yàn)證有效性。
作為上述技術(shù)方案的優(yōu)選,比較特征項(xiàng)階段具體包括如下步驟:
采用Zipf規(guī)則分析周期性學(xué)習(xí)階段中所存放的正常通信與異常通信。
計(jì)算出所屬類別的互信息量。
按照互信息量的大小由大到小進(jìn)行排序,從最大開(kāi)始,依次抽取一定數(shù)量的規(guī)則作為特征項(xiàng)。
本發(fā)明的有益效果在于:本發(fā)明通過(guò)對(duì)SCADA系統(tǒng)中的傳輸?shù)闹芷谛悦}沖進(jìn)行獲取,匯總數(shù)據(jù)包,存儲(chǔ)數(shù)據(jù)流,通過(guò)周期性學(xué)習(xí)階段獲取關(guān)于周期型脈沖的頻率及大小這兩個(gè)特征,并通過(guò)比較特征項(xiàng)進(jìn)行特征項(xiàng)的選取,將數(shù)據(jù)流和特征項(xiàng)進(jìn)行匹配來(lái)判定異常,并發(fā)出警報(bào),提高了工控網(wǎng)絡(luò)的安全性。
附圖說(shuō)明:
以下附圖僅旨在于對(duì)本發(fā)明做示意性說(shuō)明和解釋,并不限定本發(fā)明的范圍。其中:
圖1為本發(fā)明一個(gè)實(shí)施例的SCADA系統(tǒng)在石化安全行業(yè)中的示意圖;
圖2為本發(fā)明一個(gè)實(shí)施例的基于SCADA系統(tǒng)的周期性異常檢測(cè)的方法實(shí)現(xiàn)方式的示意圖。
具體實(shí)施方式:
本實(shí)施例提供一種基于SCADA系統(tǒng)的周期性異常檢測(cè)的方法,
1、網(wǎng)絡(luò)傳輸?shù)闹芷谛苑治觥?/p>
一般SCADA系統(tǒng)呈現(xiàn)出數(shù)據(jù)包周期脈沖串,即在固定的時(shí)間間隔傳輸一定的數(shù)據(jù)包。這些周期性的脈沖串由客戶端的數(shù)據(jù)請(qǐng)求及服務(wù)器端的請(qǐng)求回應(yīng)所產(chǎn)生。周期性的網(wǎng)絡(luò)傳輸具有兩個(gè)可以確定其自然屬性的重要特征,即周期性的脈沖串所包含的頻率(frequency)與大小(size)。這里需要值得注意的是在監(jiān)測(cè)周期性傳輸過(guò)程中會(huì)產(chǎn)生一些非周期性的行為(或干擾),而干擾的原因有多種,如網(wǎng)絡(luò)延遲,包丟失,重傳,協(xié)議的具體交換(如TCP的3次握手協(xié)議)等。
并不是所有的SCADA系統(tǒng)連接都必須表現(xiàn)出周期性的特點(diǎn)。例如:PLC設(shè)備通常需要手動(dòng)訪問(wèn),則可以監(jiān)測(cè)到非周期性行為。本發(fā)明中研究的重點(diǎn)僅為數(shù)據(jù)包周期性的脈沖在一般網(wǎng)絡(luò)傳輸中的正常行為。
2、攻擊的影響分析。
假設(shè)一些入侵行為是為了破壞傳輸?shù)闹芷谛?,為了?shí)現(xiàn)這個(gè)假設(shè),本發(fā)明采用不同類型的攻擊,并且研究如何對(duì)傳輸周期性產(chǎn)生影響。本發(fā)明采用入侵檢測(cè)系統(tǒng)中所使用SCADA系統(tǒng)的攻擊簽名的訪問(wèn)列表,列表中包含保護(hù)Modbus TCP和DNP3兩種SCADA通信標(biāo)準(zhǔn)的簽名。
信息收集要優(yōu)先于其他的攻擊,并且對(duì)于攻擊者來(lái)說(shuō)是一種挑戰(zhàn),因?yàn)橐M可能多的收集目標(biāo)系統(tǒng)的信息。一個(gè)典型的方式是通過(guò)scans獲取信息,如Modbus Tcp點(diǎn)列掃描。掃描需要大量可能的地址或者端口來(lái)測(cè)試,因此攻擊者一般會(huì)快速地執(zhí)行操作,而這種掃描能很快被監(jiān)測(cè)到,因?yàn)樗a(chǎn)生的傳輸很明顯不是周期性的。注意,如果攻擊者以一種慢速但是周期性的方式,也是可以監(jiān)測(cè)得到的,因?yàn)樗鼤?huì)以不同于正常服務(wù)的頻率來(lái)運(yùn)行。
拒絕服務(wù)攻擊是阻止合法用戶訪問(wèn)服務(wù)或降低其性能。例如以DNP3為目標(biāo)的主動(dòng)響應(yīng)風(fēng)暴試圖以發(fā)送一定數(shù)量的主動(dòng)響應(yīng)包來(lái)過(guò)載DNP3服務(wù),而正常情況下是會(huì)產(chǎn)生報(bào)警的。如果攻擊者在短時(shí)間內(nèi)發(fā)送了大量的數(shù)據(jù)包,這種攻擊可以被視為非周期性傳輸?shù)姆逯?。與掃描類似,這種攻擊也可能執(zhí)行地很慢,但同時(shí)會(huì)減少了攻擊的效果。
網(wǎng)絡(luò)攻擊處理網(wǎng)絡(luò)各種協(xié)議的行為。例如以Modbus TCP為攻擊目標(biāo),試圖避免被監(jiān)測(cè)到的清除計(jì)數(shù)器與寄存器的攻擊,使用了帶有特殊代碼功能的單數(shù)據(jù)包去清除SCADA服務(wù)器的計(jì)數(shù)器與寄存器。我們不能監(jiān)測(cè)到大多數(shù)這種類型的攻擊,因?yàn)樗鼈兺ㄟ^(guò)執(zhí)行少量的包,并不會(huì)干擾到傳輸周期性。但是我們可以監(jiān)測(cè)到這種攻擊產(chǎn)生的效果。例如以Modbus TCP為目標(biāo),從設(shè)備忙碌異常代碼延遲攻擊,在回答每個(gè)帶有“設(shè)備忙”的信息請(qǐng)求時(shí)阻止應(yīng)答超時(shí)。然而在這種情況下,并不希望在傳輸周期性中有所改變,典型的方案是在攻擊中,用多包代替單包所引起的振幅變化。
緩沖區(qū)溢出攻擊試圖以溢出其緩沖區(qū)的方式,對(duì)系統(tǒng)進(jìn)行控制。例如,基于Modbus TCP的非法包的大小,可能受到的DOS攻擊以非法包的大小來(lái)發(fā)送單包,挖掘出協(xié)議棧中的錯(cuò)誤。再者,本發(fā)明所使用的方法并不是針對(duì)數(shù)據(jù)包的攻擊,但如果攻擊成功了并且使目標(biāo)系統(tǒng)崩潰,正常的傳輸模式很顯然被破壞了。
綜上所述,許多攻擊以不同的頻率來(lái)引起以下三者改變的其一。
1.新加入或丟失的周期性突發(fā)頻率。
2.周期性突發(fā)大小的改變
3.干擾因素的增加
需要強(qiáng)調(diào)的是,我們的期望是異常的監(jiān)測(cè),而來(lái)自正常傳輸周期行為的偏差并不存在惡意。例如用于測(cè)試時(shí)對(duì)PLC進(jìn)行手工訪問(wèn)會(huì)引起非周期性的傳輸,隨之而來(lái)的將會(huì)是觸發(fā)報(bào)警。
如圖2所示,本發(fā)明的基于SCADA系統(tǒng)的周期性異常檢測(cè)的方法,包括:
傳輸獲取階段,來(lái)自SCADA系統(tǒng)的傳輸被動(dòng)的接受監(jiān)測(cè)中心端的監(jiān)測(cè)及分析。在此階段并不涉及SCADA流程的相關(guān)包,僅僅是DNS與DHCP被過(guò)濾。
流的建立階段,創(chuàng)立網(wǎng)絡(luò)流,以一種有效的方式來(lái)匯總數(shù)據(jù)包。在這階段,假設(shè)使用服務(wù)器端傳輸端口來(lái)匯總數(shù)據(jù)包,可以識(shí)別出試圖保護(hù)的網(wǎng)絡(luò)服務(wù)。雖然在此服務(wù)器傳輸端口可以有效地隔離在跟蹤分析時(shí)的周期性傳輸,但是更多的匯總需要在其他情況中產(chǎn)生。例如,如果一個(gè)服務(wù)被兩個(gè)不同的客戶端訪問(wèn),一個(gè)使用輪詢機(jī)制,另一個(gè)不是,這就需要添加客戶地址作為匯總要素來(lái)隔離周期性行為。另一種方法是使用應(yīng)用程序級(jí)的信息來(lái)分離出周期性脈沖,在實(shí)際中最優(yōu)的方式是依靠所使用的應(yīng)用程序及協(xié)議。
將數(shù)據(jù)流當(dāng)做時(shí)間序列來(lái)存儲(chǔ),即每隔一定的時(shí)間間隔P,存儲(chǔ)屬于特定流的數(shù)據(jù)包的數(shù)量。存儲(chǔ)數(shù)據(jù)流采用的采樣頻率SF為:
SF=1/P,
其中,P為一定的時(shí)間間隔。SF是精確度和性能之間的一個(gè)權(quán)衡。頻率越高,關(guān)于數(shù)據(jù)流的更多詳細(xì)信息就會(huì)被存儲(chǔ),相應(yīng)的更多地?cái)?shù)據(jù)就會(huì)被執(zhí)行處理。
周期性學(xué)習(xí)階段,在檢測(cè)之前,需要學(xué)習(xí)系統(tǒng)的正常行為,在這個(gè)階段我們提取了兩個(gè)特性:周期性脈沖的頻率及大小。我們假設(shè)服務(wù)的周期性脈沖并不隨著時(shí)間而改變,那么也可以通過(guò)離線的方式來(lái)執(zhí)行分析,并通過(guò)網(wǎng)絡(luò)管理員來(lái)驗(yàn)證有效性。
比較特征項(xiàng)階段,利用算法進(jìn)行特征項(xiàng)的選擇。由于特征向量不可能包括所有的情況,所以有必要用一定的算法進(jìn)行特征選擇。比較特征項(xiàng)階段具體包括如下步驟:
采用Zipf規(guī)則分析周期性學(xué)習(xí)階段中所存放的正常通信與異常通信。
計(jì)算出所屬類別的互信息量。
按照互信息量的大小由大到小進(jìn)行排序,從最大開(kāi)始,依次抽取一定數(shù)量的規(guī)則作為特征項(xiàng)(互信息量越大,特征詞屬于此類的可能性也就越大)。
異常檢測(cè)階段,將流的建立階段中獲取的數(shù)據(jù)流與比較特征項(xiàng)階段中獲取的特征項(xiàng)進(jìn)行匹配,若數(shù)據(jù)流與特征項(xiàng)相匹配,則被認(rèn)定異常,發(fā)出警報(bào)并反饋到周期性學(xué)習(xí)階段。前面已經(jīng)介紹了可被監(jiān)測(cè)到的不同類型的異常攻擊,如果異常被監(jiān)測(cè)到則發(fā)生報(bào)警操作。理想狀態(tài)下報(bào)警信息應(yīng)提供充足的信息,從而可以執(zhí)行相應(yīng)的操作。如果一個(gè)新的周期性脈沖在數(shù)據(jù)流中被檢測(cè)到,警報(bào)信息中應(yīng)提供此脈沖源的詳細(xì)信息。警報(bào)也會(huì)反饋到周期性學(xué)習(xí)階段,來(lái)更新特征項(xiàng)庫(kù)從而可以適應(yīng)對(duì)周期性的學(xué)習(xí)。
本實(shí)施例所述的基于SCADA系統(tǒng)的周期性異常檢測(cè)的方法,本發(fā)明通過(guò)對(duì)SCADA系統(tǒng)中的傳輸?shù)闹芷谛悦}沖進(jìn)行獲取,匯總數(shù)據(jù)包,存儲(chǔ)數(shù)據(jù)流,通過(guò)周期性學(xué)習(xí)階段獲取關(guān)于周期型脈沖的頻率及大小這兩個(gè)特征,并通過(guò)比較特征項(xiàng)進(jìn)行特征項(xiàng)的選取,將數(shù)據(jù)流和特征項(xiàng)進(jìn)行匹配來(lái)判定異常,并發(fā)出警報(bào),提高了工控網(wǎng)絡(luò)的安全性。
顯然,上述實(shí)施例僅僅是為清楚地說(shuō)明所作的舉例,而并非對(duì)實(shí)施方式的限定。對(duì)于所屬領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在上述說(shuō)明的基礎(chǔ)上還可以做出其它不同形式的變化或變動(dòng)。這里無(wú)需也無(wú)法對(duì)所有的實(shí)施方式予以窮舉。而由此所引伸出的顯而易見(jiàn)的變化或變動(dòng)仍處于本發(fā)明創(chuàng)造的保護(hù)范圍之中。