1.一種非侵入式基于功耗分析的PLC異常檢測(cè)方法,其特征在于該方法具體如下:
步驟1:在PLC的電源模塊與CPU模塊之間串聯(lián)一個(gè)電阻,然后用數(shù)據(jù)采集器對(duì)電阻兩端的電壓降進(jìn)行采集,采樣率為γ;
步驟2:讓PLC運(yùn)行正常的程序一段時(shí)間t1,并對(duì)PLC的功耗信息進(jìn)行持續(xù)采集,將采集到的功耗信息傳到上位機(jī)用于訓(xùn)練LSTM網(wǎng)絡(luò)模型,
步驟3:完成初始LSTM網(wǎng)絡(luò)的訓(xùn)練后,對(duì)PLC進(jìn)行實(shí)時(shí)檢測(cè),采集PLC當(dāng)前的功耗信息,根據(jù)前t個(gè)樣本來(lái)預(yù)測(cè)第(t+1)個(gè)樣本是否為正常樣本,
步驟4:由于LSTM網(wǎng)絡(luò)每次都是根據(jù)前t個(gè)樣本來(lái)預(yù)測(cè)第(t+1)個(gè)樣本,因此在進(jìn)行樣本檢測(cè)的時(shí)候,對(duì)前t個(gè)樣本進(jìn)行實(shí)時(shí)更新,
步驟5:持續(xù)對(duì)PLC進(jìn)行檢測(cè),一旦連續(xù)發(fā)現(xiàn)三個(gè)檢測(cè)樣本均為異常樣本時(shí),則判定當(dāng)前PLC中運(yùn)行的指令并非原來(lái)的正常指令,而是遭到攻擊后的惡意指令,因此說(shuō)明PLC已經(jīng)遭到攻擊。
2.根據(jù)權(quán)利要求1所述的非侵入式基于功耗分析的PLC異常檢測(cè)方法,其特征在于所述的步驟2具體訓(xùn)練步驟如下:
1)將接收到的樣本按照t2的時(shí)長(zhǎng)進(jìn)行切分,切分后得到了一系列的正樣本S={s1,s2,…st,…,sn},其中st表示第t個(gè)樣本,包含t2時(shí)長(zhǎng)的功耗信息;
2)對(duì)得到的正樣本S進(jìn)行預(yù)處理,過(guò)濾掉直流信號(hào)和高頻噪聲,得到新的功耗信息樣本S′={s1′,s2′,…st′,…,sn′}用于后續(xù)分析;
3)得到樣本S′后,提取每個(gè)樣本的概率密度分布信息,并利用LibXtract庫(kù)提取基本時(shí)域和頻域的特征,將這些特征一起構(gòu)成一個(gè)原始的特征樣本庫(kù);
4)使用稀疏編碼算法從原始的特征樣本庫(kù)中提取具有區(qū)分度的特征組合f={f1,f2,…,fi,…,fm},其中,fi表示第i個(gè)特征,總的特征維數(shù)為m;因此,對(duì)于每一個(gè)功耗信息樣本st′,根據(jù)特征組合f,提取出一個(gè)對(duì)應(yīng)的特征值樣本組合從最初得到的功耗信息樣本S={s1,s2,…,sn}中提取出最終的特征值樣本X={x(1),x(2),…,x(n)},并將該樣本用于后續(xù)的訓(xùn)練;
5)用上述特征值樣本X={x(1),x(2),…,x(n)}訓(xùn)練一個(gè)LSTM神經(jīng)網(wǎng)絡(luò)模型,模型訓(xùn)練好之后用于異常樣本的檢測(cè)。
3.根據(jù)權(quán)利要求2所述的非侵入式基于功耗分析的PLC異常檢測(cè)方法,其特征在于所述的γ為250KSa/s,t1為18小時(shí),t2為5秒鐘,m為13。
4.根據(jù)權(quán)利要求1所述的非侵入式基于功耗分析的PLC異常檢測(cè)方法,其特征在于所述的步驟3具體檢測(cè)過(guò)程包括如下步驟:
1)將PLC運(yùn)行時(shí)當(dāng)前的功耗信息傳輸至上位機(jī),上位機(jī)將得到的功耗信息按照t2的時(shí)長(zhǎng)進(jìn)行切分,得到待測(cè)樣本st+1;
2)對(duì)于得到的每一個(gè)待測(cè)樣本st+1,首先進(jìn)行預(yù)處理,然后按照特征組合f={f1,f2,…,fm}提取相應(yīng)的特征值,最終得到一個(gè)特征值樣本
3)用根據(jù)特征值樣本X={x(1),x(2),…,x(n)}訓(xùn)練得到的LSTM網(wǎng)絡(luò)對(duì)時(shí)間序列進(jìn)行預(yù)測(cè),即LSTM網(wǎng)絡(luò)會(huì)根據(jù)學(xué)習(xí)到的前t時(shí)刻的樣本序列信息來(lái)預(yù)測(cè)(t+1)時(shí)刻每一個(gè)特征值的大小,從而可以得到一個(gè)預(yù)測(cè)樣本
4)對(duì)比LSTM網(wǎng)絡(luò)預(yù)測(cè)的樣本x(t+1)′與真實(shí)獲得的樣本x(t+1),得到一個(gè)誤差矩陣對(duì)于每一個(gè)特征的誤差而言
5)根據(jù)得到的誤差矩陣對(duì)當(dāng)前樣本進(jìn)行判斷,如果誤差矩陣滿足關(guān)系則當(dāng)前樣本為異常樣本,如果不滿足該關(guān)系,則當(dāng)前樣本為正常樣本。
5.根據(jù)權(quán)利要求4所述的非侵入式基于功耗分析的PLC異常檢測(cè)方法,其特征在于其中t為100,τ為0.02。
6.根據(jù)權(quán)利要求1所述的非侵入式基于功耗分析的PLC異常檢測(cè)方法,其特征在于所述的步驟4更新方法如下:
1)首先將第1個(gè)樣本排除掉,將第t個(gè)樣本視為第(t-1)個(gè)樣本,因此原來(lái)用于預(yù)測(cè)的樣本組合本X={x(1),x(2),…,x(t)}就變?yōu)樾碌臉颖窘M合X={x(2),…,x(t)},其中包含(t-1)個(gè)樣本;
2)當(dāng)?shù)?t+1)個(gè)樣本x(t+1)為正樣本時(shí),將其加入用于預(yù)測(cè)的樣本組合中,從而得到用于預(yù)測(cè)的樣本組合為X={x(2),…,x(t),x(t+1)},進(jìn)而可以對(duì)下一個(gè)時(shí)間點(diǎn)(t+2)的樣本特征值進(jìn)行預(yù)測(cè)。
3)當(dāng)?shù)?t+1)個(gè)樣本x(t+1)為負(fù)樣本時(shí),將LSTM預(yù)測(cè)得到的樣本x(t+1)′加入用于預(yù)測(cè)的樣本組合中,從而得到新的用于預(yù)測(cè)的樣本組合為X={x(2),…,x(t),x(t+1)′},進(jìn)而對(duì)下一個(gè)時(shí)間點(diǎn)(t+2)的樣本特征值進(jìn)行預(yù)測(cè);
4)按照上述規(guī)律,持續(xù)對(duì)監(jiān)控期間新采集到的功耗樣本進(jìn)行預(yù)測(cè)。