一種基于向量機學(xué)習(xí)的dnp異常檢測方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于工業(yè)控制系統(tǒng)信息安全領(lǐng)域,更為具體地講,涉及一種基于向量機學(xué) 習(xí)的DNP3.0異常檢測方法。
【背景技術(shù)】
[0002] 隨著我國電力系統(tǒng)的信息網(wǎng)絡(luò)的迅速發(fā)展,用于電力系統(tǒng)通訊的DNP(Distribted Network Protoco)類協(xié)議的安全重要性也有目共睹,在本發(fā)明中,具體以DNP3.0協(xié)議為代 表進行分析說明。
[0003] DNP3.0的設(shè)計結(jié)構(gòu)具有靈活性和復(fù)雜性,這些靈活性和復(fù)雜性都使得攻擊者更有 可能利用協(xié)議本身的規(guī)則進行欺騙型攻擊如命令注入攻擊。命令注入攻擊是命令本身合乎 協(xié)議規(guī)則,屬于欺騙型攻擊,一旦插入系統(tǒng)網(wǎng)絡(luò)后,正常和惡意代碼一并執(zhí)行,導(dǎo)致信息泄 露或者正常數(shù)據(jù)的破壞,惡意命令掌控外站和網(wǎng)絡(luò),最終引起系統(tǒng)的崩壞。傳統(tǒng)防火墻技術(shù) 缺乏對于應(yīng)用層協(xié)議的支持,無法應(yīng)對利用應(yīng)用層協(xié)議缺陷發(fā)起的攻擊行為,這種攻擊防 火墻系統(tǒng)規(guī)則發(fā)現(xiàn)和阻止不了。因此有必要提出一種可以對數(shù)據(jù)包執(zhí)行基于應(yīng)用層的數(shù)據(jù) 過濾的深度包過濾技術(shù),通過該方法作為防火墻安全技術(shù)的有力補充來阻止惡意入侵。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種基于向量機學(xué)習(xí)的DNP異常檢 測方法,通過深度包過濾技術(shù)作用于應(yīng)用層,有效阻止命令注入攻擊。
[0005] 為實現(xiàn)上述發(fā)明目的,本發(fā)明一種基于向量機學(xué)習(xí)的DNP異常檢測方法,其特征在 于,包括以下步驟:
[0006] (1)、流量采集
[0007] (1.1 )、采集DNP3.0通訊流量,剔除該通訊流量中外站對應(yīng)的數(shù)據(jù)包,得到功能碼; [0008] (1.2)、將功能碼按照時間先后順序排列,得到DNP3.0功能碼序列;
[0009] (1.3)、設(shè)置單位時間T,再根據(jù)單位時間T將DNP3.0功能碼序列分割成不等長度的 DNP3.0功能碼短序列;
[0010] (1.4)、依次判斷所有的DNP3.0功能碼短序列中的功能碼是否有非法配合1X(XF 為〇 ),如果有,則將該DNP3.0功能碼短序列標(biāo)記為異常數(shù)據(jù);如果沒有,則保持不變;
[0011] (2)、數(shù)據(jù)預(yù)處理
[0012] (2.1)、將所有的DNP3.0功能碼短序列放置于樣本集合An,(n = 1,2,…,N)中,N為 DNP3.0功能碼短序列的總個數(shù),即樣本總個數(shù);將樣本集合An中包含異常數(shù)據(jù)樣本標(biāo)記為-1,其余的樣本標(biāo)記為+1;
[0013] (2.2)、設(shè)定長度為d的滑動窗口,d不大于DNP功能碼序列樣本集合中的最小長度, 用長度為d的滑動窗口依次處理樣本集合An*的每一個樣本,從而提取出所有長度為d的 DNP3.0功能碼短序列;
[0014] (2.3)、在所有滿足長度為d的DNP3.0功能碼短序列中,將每一個不同的d長度 DNP3.0功能碼短序列保留一份,其余重復(fù)相同的刪除,得到d長度短序列集合Μ;
[0015] (3)、SVM 異常檢測
[0016] (3.1)、構(gòu)建支持向量機模型;
[0017] (3.2)、將集合M中標(biāo)記為+1的樣本輸入到支持向量機模型中,得到檢測t型;
[0018] (3.3)、對檢測模型本身進行測試;將標(biāo)記為+1的樣本輸入到檢測模型,通過檢測 模型可以計算出SVM的分類準(zhǔn)確率,再將標(biāo)記為-1的樣本入到檢測模型,計算出檢測模型的 異常通過率,當(dāng)異常通過率大于預(yù)設(shè)的閥值K時,該條DNP3.0為異常,反正則為正常。
[0019] 本發(fā)明的發(fā)明目的是這樣實現(xiàn)的:
[0020] 本發(fā)明一種基于向量機學(xué)習(xí)的DNP異常檢測方法,選擇DNP3.0協(xié)議應(yīng)用層的功能 碼作為特征,通過功能碼在DNP3.0協(xié)議本身中固有的合法組合的結(jié)合,使向量機學(xué)習(xí)得到 特定組合,并作為深度包過濾技術(shù)的標(biāo)準(zhǔn)匹配;再通過捕獲通訊流量提取功能碼序列,使功 能碼序列與已知特征模式進行匹配,從而識別出防火墻未能識別的入侵攻擊行為。
[0021] 同時,本發(fā)明一種基于向量機學(xué)習(xí)的DNP異常檢測方法還具有以下有益效果:
[0022] (1)、本發(fā)明選取DNP3.0應(yīng)用層功能碼這一重要字段作為深度包檢測的特征,有效 阻止傳統(tǒng)防火墻無法識別的一些針對應(yīng)用層協(xié)議缺陷發(fā)起的攻擊行為,作為傳統(tǒng)防火墻的 有力補充阻止惡意入侵。
[0023] (2)、根據(jù)DNP3.0協(xié)議本身應(yīng)用層功能碼在通訊過程中研究發(fā)現(xiàn),1X(X不為0)為非 法配合,將此加入到對異常通訊的判定中,增大異常檢測的準(zhǔn)確性。
[0024] (3)、利用SVM方法建立了DNP3.0通訊的異常檢測模型,可以辨識傳統(tǒng)防火墻與入 侵檢測系統(tǒng)未能識別的異常行為。
【附圖說明】
[0025]圖1是簡單工業(yè)控制系統(tǒng)的閉環(huán)控制拓?fù)浣Y(jié)構(gòu);
[0026]圖2是數(shù)據(jù)預(yù)處理部分流程圖。
【具體實施方式】
[0027]下面結(jié)合附圖對本發(fā)明的【具體實施方式】進行描述,以便本領(lǐng)域的技術(shù)人員更好地 理解本發(fā)明。需要特別提醒注意的是,在以下的描述中,當(dāng)已知功能和設(shè)計的詳細(xì)描述也許 會淡化本發(fā)明的主要內(nèi)容時,這些描述在這里將被忽略。
[0028] 實施例
[0029] 圖1是簡單工業(yè)控制系統(tǒng)的閉環(huán)控制拓?fù)浣Y(jié)構(gòu)。
[0030] 在本實施例中,如圖1所示,簡單工業(yè)控制系統(tǒng)的閉環(huán)控制拓?fù)浣Y(jié)構(gòu)包括:主站和 外站。其中,主站通過人機接口控制主終端單元MTU(Master Terminal Unit,MTU)發(fā)送請求 命令到外站的遠(yuǎn)程終端設(shè)備RTlKRemote Terminal Unit,),通過在MTU與RTU的通信之間增 加深度包過濾技術(shù),可以有效阻止欺騙型攻擊。
[0031] 下面對本發(fā)明所述的基于向量機學(xué)習(xí)的DNP異常檢測方法進行詳細(xì)說明,具體包 括以下步驟:
[0032] Sl、流量采集
[0033] Sl · 1、在主站和外站間利用Iinux的Netf ilter機制聯(lián)合socket采集DNP3 ·0通訊流 量,剔除該通訊流量中外站對應(yīng)的數(shù)據(jù)包,得到功能碼;
[0034] SI. 2、將功能碼按照時間先后順序排列,得到DNP3.0功能碼序列,這樣消除了 DNP3.0通訊流量大量的冗余信息,減少了存儲信息所需要的空間資源;
[0035] SI. 3、設(shè)置單位時間T,由于單位時間T內(nèi)通過的通訊流量是隨機的,不能保證隨機 截斷的DNP功能碼序列包含相同數(shù)目的DNP功能碼,因此,可以根據(jù)單位時間T將DNP3.0功能 碼序列分割成不等長度的DNP3.0功能碼短序列,這樣可以減少序分割方式對最終結(jié)果的影 響;
[0036] Sl. 4、依次判斷所有的DNP3.0功能碼短序列,看每個DNP3.0功能碼短序列中的功 能碼是否有非法組合1X(X非〇),如果有,則將該DNP3.0功能碼短序列標(biāo)記為異常數(shù)據(jù);如果 沒有,則保持不變;
[0037]功能碼具有特定的合法組合,當(dāng)主站發(fā)出不同的功能碼時,外站可能處于立即處 理模式,也可能處于確認(rèn)后處理模式。因此,當(dāng)主站發(fā)送功能碼為"Γ的讀請求后,外站會返 回一個"0"的確認(rèn)后處理,當(dāng)主站收到確認(rèn)后處理,功能碼進行合法組合,即為"10",如果功 能碼進行組合后變?yōu)?1X"X非0,則表明