本發(fā)明屬于工業(yè)控制系統(tǒng)自動(dòng)化監(jiān)測與過程安全,具體涉及用于流程工業(yè)系統(tǒng)安全測試的隱蔽式虛假數(shù)據(jù)注入方法與隱蔽性檢驗(yàn)方法,以及對應(yīng)的系統(tǒng)和設(shè)備。
背景技術(shù):
1、工業(yè)控制系統(tǒng)(ics)在石油化工、污水處理等流程工業(yè)的關(guān)鍵基礎(chǔ)設(shè)施中廣泛應(yīng)用,其安全性和可靠性日益受到關(guān)注,其穩(wěn)定運(yùn)行直接關(guān)系到國家安全和社會(huì)穩(wěn)定。隨著智能傳感器的應(yīng)用普及,大量實(shí)體設(shè)備聯(lián)網(wǎng),導(dǎo)致ics所控制的實(shí)體設(shè)備和工業(yè)過程受攻擊面變大,面臨著越來越多的網(wǎng)絡(luò)安全威脅。
2、傳統(tǒng)的ics安全防護(hù)措施主要依賴于防火墻、入侵檢測系統(tǒng)以及異常檢測系統(tǒng)等手段。這些防護(hù)措施能夠在檢測和隔離系統(tǒng)故障的同時(shí),對拒絕服務(wù)攻擊、欺騙攻擊等外部非法行為發(fā)出告警,然而,當(dāng)網(wǎng)絡(luò)邊界防御被突破后,過程控制層直接面臨著巨大的安全性和穩(wěn)定性威脅。一些精心設(shè)計(jì)的攻擊能夠?qū)ΜF(xiàn)有的異常檢測系統(tǒng)保持隱蔽、不觸發(fā)告警。與設(shè)備老化受損等自發(fā)的故障不同,外部攻擊具有明確的意圖,攻防雙方構(gòu)成博弈關(guān)系。鑒于此背景,發(fā)明新穎的隱蔽式虛假數(shù)據(jù)注入方法及隱蔽性檢驗(yàn)方法有助于開展ics安全防護(hù)演練,對制定有針對性的反制措施具有重要指導(dǎo)意義。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明旨在解決流程工業(yè)系統(tǒng)安全性檢測中安全測試和安全防護(hù)演練不全面的問題。
2、一種用于流程工業(yè)系統(tǒng)安全測試的虛假數(shù)據(jù)注入方法,包括以下步驟:
3、s100、針對流程工業(yè)系統(tǒng)的被控過程,收集歷史輸入、輸出數(shù)據(jù)構(gòu)建訓(xùn)練數(shù)據(jù)集:
4、步驟a1、在正常工況下運(yùn)行的某段時(shí)間內(nèi)對控制指令和傳感器量測數(shù)據(jù)進(jìn)行采樣,將對應(yīng)于時(shí)刻k的系統(tǒng)輸入、系統(tǒng)輸出列向量數(shù)據(jù)分別記作u(k)和y(k);
5、步驟a2、設(shè)定等價(jià)空間中的等價(jià)向量νs長度為s,時(shí)間窗口大小為n,并構(gòu)造過去數(shù)據(jù)對應(yīng)的漢克爾數(shù)據(jù)矩陣zp:
6、
7、步驟a3、基于時(shí)間節(jié)點(diǎn)k0,構(gòu)造未來漢克爾數(shù)據(jù)矩陣zf:
8、
9、s200、初始化攻擊向量:
10、步驟b1、對矩陣進(jìn)行奇異值分解,計(jì)算得到左奇異矩陣uz(0),右奇異矩陣vz(0)和奇異值矩陣sz(0),即初始時(shí)刻k=0時(shí)的矩陣;
11、步驟b2、取左奇異矩陣uz(0)右上角子矩陣,子矩陣記作uz12,uz12的行數(shù)為s*m,列數(shù)為(s*m-n);n為被控過程狀態(tài)變量個(gè)數(shù);
12、步驟b3、初始化攻擊向量為
13、s400、利用攻擊向量生成數(shù)據(jù)序列:
14、步驟d1、設(shè)定一個(gè)任意大小的非零向量γ;
15、步驟d2、計(jì)算全部數(shù)據(jù)序列,as(k)=haγ;
16、步驟d3、設(shè)定對應(yīng)于第q個(gè)傳感器的數(shù)據(jù)注入序列asq;對于q=1,2,…,m分別設(shè)定asq是由as(k)向量的第(qs-s+1)行至第qs行組成;
17、s500、將數(shù)據(jù)序列注入到傳感器輸出通道中,包括以下步驟:
18、步驟e1、在傳感器輸出網(wǎng)絡(luò)傳輸通道找到量測值數(shù)據(jù)包進(jìn)行拆包;
19、步驟e2、將數(shù)據(jù)注入序列asq依次與第q個(gè)傳感器數(shù)據(jù)傳輸通道的原量測數(shù)值y(k)相加計(jì)算得到受攻擊的量測數(shù)值,記經(jīng)過篡改的量測值序列為ysa(k);
20、步驟e3、對篡改后的數(shù)據(jù)重新打包,在相應(yīng)通道重新發(fā)送給控制器和故障檢測系統(tǒng)。
21、進(jìn)一步地,在進(jìn)行s400所述的利用攻擊向量生成數(shù)據(jù)序列之前,如果攻擊采用自適應(yīng)策略,需要針對流程工業(yè)系統(tǒng)的被控過程,收集在線輸入、輸出數(shù)據(jù)更新攻擊向量,包括以下步驟:
22、步驟c2、獲取最近s個(gè)時(shí)刻輸入、輸出數(shù)據(jù)序列u(k-s+1),u(k-s+2),...,u(k)和y(k-s+1),y(k-s+2),...,y(k)構(gòu)造緊湊的數(shù)據(jù)格式zs;
23、步驟c3、計(jì)算一階攝動(dòng)矩陣e(k),e(k)=zs(k)·zs(k)t,k表示該矩陣對應(yīng)于k時(shí)刻的數(shù)值;
24、步驟c4、計(jì)算奇異值更新矩陣uz(k)為左奇異矩陣,vz(k)為右奇異矩陣,k表示該矩陣對應(yīng)于k時(shí)刻的數(shù)值;記f(k)主對角線的第i個(gè)元素為fii(k);
25、步驟c5、根據(jù)f(k)和奇異值矩陣sz(k)中的元素設(shè)定第一更新輔助矩陣g(k)中的元素,對于第j行第i列的元素:
26、若i≤j,
27、若i>j,
28、其中,σi(k)是sz(k)中的第i個(gè)奇異值;
29、類似地,根據(jù)f(k)和奇異值矩陣sz(k)中的元素設(shè)定第二更新輔助矩陣h(k)中的元素:對于第j行第i列的元素:
30、若i≤j,
31、若i>j,
32、步驟c6、分別更新奇異值矩陣sz(k+1)、左奇異矩陣uz(k+1)、右奇異矩陣vz(k+1),如下:
33、sz(k+1)=diag{(σi(k)+fii(k))}
34、uz(k+1)=uz(k)(i+g(k))
35、vz(k+1)=vz(k)(i+h(k))
36、其中,i是單位矩陣;
37、步驟c7、取左奇異矩陣uz(k+1)右上角子矩陣,子矩陣記作uz12(k+1),其行數(shù)為s*m,列數(shù)為(s*m-n);
38、步驟c8、設(shè)定攻擊向量為
39、當(dāng)進(jìn)行步驟s400之前,如果采用自適應(yīng)策略,那么在s400利用最新計(jì)算的攻擊向量生成數(shù)據(jù)序列的過程中,步驟d2計(jì)算全部數(shù)據(jù)序列as(k)=haγ時(shí)的ha采用步驟c8中的計(jì)算結(jié)果。
40、進(jìn)一步地,步驟c2、構(gòu)造緊湊的數(shù)據(jù)格式zs如下:
41、
42、一種隱蔽性檢驗(yàn)方法,針對利用所述的一種用于流程工業(yè)系統(tǒng)安全測試的虛假數(shù)據(jù)注入方法注入的虛假數(shù)據(jù),進(jìn)行隱蔽性檢驗(yàn);所述隱蔽性檢驗(yàn)過程包括:
43、步驟f1、取ha矩陣的第一行,記作νs;取左奇異矩陣uz右下角子矩陣,行數(shù)為s*l,列數(shù)為(s*m-n),子矩陣記作uz22,取矩陣的第一行,記作νhs;
44、步驟f2、讀取與被篡改的傳感器量測值序列ysa(k)相對應(yīng)的采樣時(shí)刻的控制輸入序列,記作us(k);
45、步驟f3、計(jì)算殘差向量估計(jì)值
46、步驟f4、進(jìn)行殘差評估,計(jì)算評估指標(biāo)t2檢驗(yàn)統(tǒng)計(jì)量其中殘差的協(xié)方差矩陣σr通過離線估計(jì)獲得;
47、步驟f5、進(jìn)行隱蔽性判斷:
48、基于卡方檢驗(yàn)統(tǒng)計(jì)量設(shè)定閾值jth=χα(n)/2,其中χα(n)是對應(yīng)于顯著性水平為α、自由度為n的卡方檢驗(yàn)統(tǒng)計(jì)量;若評估指標(biāo)j小于jth,則所實(shí)施的數(shù)據(jù)注入攻擊具有隱蔽性;否則,不具有隱蔽性。
49、一種用于流程工業(yè)系統(tǒng)安全測試的虛假數(shù)據(jù)注入系統(tǒng),包括:
50、歷史數(shù)據(jù)集構(gòu)建模塊:針對流程工業(yè)系統(tǒng)的被控過程,收集歷史輸入、輸出數(shù)據(jù)構(gòu)建訓(xùn)練數(shù)據(jù)集,具體過程包括:
51、步驟a1、在正常工況下運(yùn)行的某段時(shí)間內(nèi)對控制指令和傳感器量測數(shù)據(jù)進(jìn)行采樣,將對應(yīng)于時(shí)刻k的系統(tǒng)輸入、系統(tǒng)輸出列向量數(shù)據(jù)分別記作u(k)和y(k);
52、步驟a2、設(shè)定等價(jià)空間中的等價(jià)向量νs長度為s,時(shí)間窗口大小為n,并構(gòu)造過去數(shù)據(jù)對應(yīng)的漢克爾數(shù)據(jù)矩陣zp:
53、
54、步驟a3、基于時(shí)間節(jié)點(diǎn)k0,構(gòu)造未來漢克爾數(shù)據(jù)矩陣zf:
55、
56、攻擊向量初始化模塊:用于初始化攻擊向量,具體過程包括:
57、步驟b1、對矩陣進(jìn)行奇異值分解,計(jì)算得到左奇異矩陣uz(0),右奇異矩陣vz(0)和奇異值矩陣sz(0),即初始時(shí)刻k=0時(shí)的矩陣;
58、步驟b2、取左奇異矩陣uz(0)右上角子矩陣,子矩陣記作uz12,uz12的行數(shù)為s*m,列數(shù)為(s*m-n);n為被控過程狀態(tài)變量個(gè)數(shù);
59、步驟b3、初始化攻擊向量為
60、攻擊數(shù)據(jù)生成模塊:利用攻擊向量生成數(shù)據(jù)序列,具體過程包括:
61、步驟d1、設(shè)定一個(gè)任意大小的非零向量γ;
62、步驟d2、計(jì)算全部數(shù)據(jù)序列,as(k)=haγ;
63、步驟d3、設(shè)定對應(yīng)于第q個(gè)傳感器的數(shù)據(jù)注入序列asq;對于q=1,2,...,m分別設(shè)定asq是由as(k)向量的第(qs-s+1)行至第qs行組成;
64、數(shù)據(jù)注入模塊:將數(shù)據(jù)序列注入到傳感器輸出通道中,包括以下步驟:
65、步驟e1、在傳感器輸出網(wǎng)絡(luò)傳輸通道找到量測值數(shù)據(jù)包進(jìn)行拆包;
66、步驟e2、將數(shù)據(jù)注入序列asq依次與第q個(gè)傳感器數(shù)據(jù)傳輸通道的原量測數(shù)值y(k)相加計(jì)算得到受攻擊的量測數(shù)值,記經(jīng)過篡改的量測值序列為ysa(k);
67、步驟e3、對篡改后的數(shù)據(jù)重新打包,在相應(yīng)通道重新發(fā)送給控制器和故障檢測系統(tǒng)。
68、進(jìn)一步地,所述的一種用于流程工業(yè)系統(tǒng)安全測試的虛假數(shù)據(jù)注入系統(tǒng)還包括在線數(shù)據(jù)更新模塊;
69、在攻擊數(shù)據(jù)生成模塊利用攻擊向量生成數(shù)據(jù)序列之前,如果攻擊采用自適應(yīng)策略,需要在線數(shù)據(jù)更新模塊針對流程工業(yè)系統(tǒng)的被控過程,基于在線輸入、輸出數(shù)據(jù)更新攻擊向量,包括以下步驟:
70、步驟c2、獲取最近s個(gè)時(shí)刻輸入、輸出數(shù)據(jù)序列u(k-s+1),u(k-s+2),...,u(k)和y(k-s+1),y(k-s+2),...,y(k)構(gòu)造緊湊的數(shù)據(jù)格式zs;
71、步驟c3、計(jì)算一階攝動(dòng)矩陣e(k),e(k)=zs(k)·zs(k)t,k表示該矩陣對應(yīng)于k時(shí)刻的數(shù)值;
72、步驟c4、計(jì)算奇異值更新矩陣uz(k)為左奇異矩陣,vz(k)為右奇異矩陣,k表示該矩陣對應(yīng)于k時(shí)刻的數(shù)值;記f(k)主對角線的第i個(gè)元素為fii(k);
73、步驟c5、根據(jù)f(k)和奇異值矩陣sz(k)中的元素設(shè)定第一更新輔助矩陣g(k)中的元素,對于第j行第i列的元素:
74、若i≤j,
75、若i>j,
76、其中,σi(k)是sz(k)中的第i個(gè)奇異值;
77、類似地,根據(jù)f(k)和奇異值矩陣sz(k)中的元素設(shè)定第二更新輔助矩陣h(k)中的元素:對于第j行第i列的元素:
78、若i≤j,
79、若i>j,
80、步驟c6、分別更新奇異值矩陣sz(k+1)、左奇異矩陣uz(k+1)、右奇異矩陣vz(k+1),如下:
81、sz(k+1)=diag{(σi(k)+fii(k))}
82、uz(k+1)=uz(k)(i+g(k))
83、vz(k+1)=vz(k)(i+h(k))
84、其中,i是單位矩陣;
85、步驟c7、取左奇異矩陣uz(k+1)右上角子矩陣,子矩陣記作uz12(k+1),其行數(shù)為s*m,列數(shù)為(s*m-n);
86、步驟c8、設(shè)定攻擊向量為
87、此種情況下,攻擊數(shù)據(jù)生成模塊利用最新計(jì)算的攻擊向量生成數(shù)據(jù)序列的過程中,步驟d2計(jì)算全部數(shù)據(jù)序列as(k)=haγ時(shí)的ha采用步驟c8中的計(jì)算結(jié)果。
88、進(jìn)一步地,步驟c2、構(gòu)造緊湊的數(shù)據(jù)格式zs如下:
89、
90、一種用于流程工業(yè)系統(tǒng)安全測試的虛假數(shù)據(jù)注入設(shè)備,所述設(shè)備包括處理器和存儲(chǔ)器,所述存儲(chǔ)器中存儲(chǔ)有至少一條指令,所述至少一條指令由處理器加載并運(yùn)行所述的一種用于流程工業(yè)系統(tǒng)安全測試的虛假數(shù)據(jù)注入系統(tǒng)。
91、一種隱蔽性檢驗(yàn)系統(tǒng),針對利用所述的一種用于流程工業(yè)系統(tǒng)安全測試的虛假數(shù)據(jù)注入系統(tǒng)注入的虛假數(shù)據(jù),進(jìn)行隱蔽性檢驗(yàn);所述隱蔽性檢驗(yàn)系統(tǒng)的檢測過程包括:
92、步驟f1、取ha矩陣的第一行,記作νs;取左奇異矩陣uz右下角子矩陣,行數(shù)為s*l,列數(shù)為(s*m-n),子矩陣記作uz22,取矩陣的第一行,記作νhs;
93、步驟f2、讀取與被篡改的傳感器量測值序列ysa(k)相對應(yīng)的采樣時(shí)刻的控制輸入序列,記作us(k);
94、步驟f3、計(jì)算殘差向量估計(jì)值
95、步驟f4、進(jìn)行殘差評估,計(jì)算評估指標(biāo)t2檢驗(yàn)統(tǒng)計(jì)量其中殘差的協(xié)方差矩陣σr通過離線估計(jì)獲得;
96、步驟f5、進(jìn)行隱蔽性判斷:
97、基于卡方檢驗(yàn)統(tǒng)計(jì)量設(shè)定閾值jth=χα(n)/2,其中χα(n)是對應(yīng)于顯著性水平為α、自由度為n的卡方檢驗(yàn)統(tǒng)計(jì)量;若評估指標(biāo)j小于jth,則所實(shí)施的數(shù)據(jù)注入攻擊具有隱蔽性;否則,不具有隱蔽性。
98、一種隱蔽性檢驗(yàn)設(shè)備,所述設(shè)備包括處理器和存儲(chǔ)器,所述存儲(chǔ)器中存儲(chǔ)有至少一條指令,所述至少一條指令由處理器加載并運(yùn)行所述的一種隱蔽性檢驗(yàn)系統(tǒng)。
99、本發(fā)明具有以下有益效果:
100、一方面,通過偽造或篡改系統(tǒng)傳感器數(shù)據(jù),使被控過程在無異常告警的情況下偏離理想運(yùn)行狀態(tài)。為了提高實(shí)際部署的可行性,本發(fā)明采用數(shù)據(jù)驅(qū)動(dòng)的方法,不需要預(yù)先知道被控系統(tǒng)模型參數(shù)。通過遞歸算法實(shí)現(xiàn)攻擊向量的自適應(yīng)更新,從而提高在線實(shí)時(shí)性。此外,本發(fā)明只需要在傳感器輸出通道單側(cè)注入數(shù)據(jù),簡化了實(shí)施數(shù)據(jù)注入的復(fù)雜度。
101、另一方面,本發(fā)明也涉及在線檢驗(yàn)數(shù)據(jù)注入是否具有隱蔽性的方法,即已有的異常檢測系統(tǒng)是否能夠檢測出有數(shù)據(jù)注入的行為。從系統(tǒng)安全測試的防御方角度,可以判斷其是否仍然有效(能提示異常行為),還是完全失效(被控工業(yè)流程受到攻擊時(shí)仍顯示“無異常”)。本發(fā)明的主要?jiǎng)訖C(jī)是為了提升流程工業(yè)系統(tǒng)的整體安全水平,幫助識(shí)別并修復(fù)潛在的安全漏洞,增強(qiáng)系統(tǒng)的防御能力。