• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種面向工控系統(tǒng)的PU學(xué)習(xí)入侵檢測方法

      2021-08-25 03:38:42呂思才張耀方劉紅日王子博王佰玲
      信息安全學(xué)報 2021年4期
      關(guān)鍵詞:正例標(biāo)簽分類

      呂思才,張 格,張耀方,劉紅日,王子博,王佰玲*

      1計算機科學(xué)與技術(shù)學(xué)院 哈爾濱工業(yè)大學(xué)(威海) 威海 中國 264209

      2國家工業(yè)信息安全發(fā)展研究中心 北京 中國 100040

      3網(wǎng)絡(luò)空間安全研究院 哈爾濱工業(yè)大學(xué) 威海 中國 264209

      1 引言

      工業(yè)控制系統(tǒng)(Industrial Control System)是用于工業(yè)生產(chǎn)的控制系統(tǒng),是國家基礎(chǔ)設(shè)施的重要組成部分,被廣泛應(yīng)用到水利、核電和能源等關(guān)鍵領(lǐng)域中,作為國家基礎(chǔ)設(shè)施的核心控制設(shè)備,其安全關(guān)系國計民生[1]。

      隨著工業(yè)控制系統(tǒng)的迅速發(fā)展,在其被廣泛應(yīng)用的同時,安全事件也開始頻發(fā)。2010年,“震網(wǎng)”(Stuxnet)病毒爆發(fā),直接導(dǎo)致伊朗核設(shè)施的離心機大面積損毀,震網(wǎng)病毒爆發(fā)之后,工控系統(tǒng)開始逐漸成為攻擊者的主要攻擊目標(biāo)之一[2]; 2017年,全球爆發(fā)的WannaCry 勒索病毒借助高危漏洞“永恒之藍”(Eternal Bule)在世界范圍內(nèi)爆發(fā),影響多國能源、交通、通信等重點行業(yè)[3]; 2018年3月,美國計算機應(yīng)急準(zhǔn)備小組發(fā)布了一則安全通告 TA18-074A,詳細描述了俄羅斯黑客針對美國某發(fā)電廠的網(wǎng)絡(luò)攻擊事件。該攻擊以收集情報為目的,向計算機植入程序記錄有關(guān)信息進行攻擊,對發(fā)電廠造成巨大損失[4]。2019年,委內(nèi)瑞拉最大的電力設(shè)施古里水電站計算機系統(tǒng)控制中樞遭受到網(wǎng)絡(luò)攻擊,引發(fā)全國性大面積停電,約3000萬人口受到影響; 同年7月,委內(nèi)瑞拉古里水電站再次遭到攻擊,導(dǎo)致包括委內(nèi)瑞拉首都加拉加斯在內(nèi)的16個州發(fā)生大范圍停電[5]。正是由于工業(yè)控制系統(tǒng)是國家基礎(chǔ)設(shè)施的重要組成部分,因此針對工業(yè)控制系統(tǒng)的攻擊通常會造成更嚴(yán)重的后果,更巨大的經(jīng)濟損失。

      針對工業(yè)控制系統(tǒng)受到的安全威脅,使用入侵檢測手段進行防護是一項重要手段。目前基于工業(yè)控制系統(tǒng)的入侵檢測展開了多方面的研究,通過結(jié)合機器學(xué)習(xí)模型實現(xiàn)對工業(yè)控制系統(tǒng)入侵的智能化檢測。在多樣的機器學(xué)習(xí)模型中,OCSVM模型在訓(xùn)練數(shù)據(jù)上只需要一類數(shù)據(jù),這使得其可以發(fā)現(xiàn)未知的入侵,因此成為工業(yè)控制系統(tǒng)入侵檢測的常用方法。然而由于反例訓(xùn)練數(shù)據(jù)的缺失會使得訓(xùn)練的模型具有較高的 FPR(False Positive Rate,假陽性率),因此本文引入PU學(xué)習(xí)模型來進行入侵檢測,將正常流量作為正例標(biāo)簽數(shù)據(jù)訓(xùn)練模型,保留模型對于未知入侵的檢測能力的同時,提升模型對于入侵的檢測能力。而PU學(xué)習(xí)模型同時將一類標(biāo)簽數(shù)據(jù)和待檢測的無標(biāo)簽數(shù)據(jù)用于模型的訓(xùn)練,因此PU學(xué)習(xí)模型的分類性能往往高于異常檢測模型。

      本文的主要貢獻可以概括如下:

      (1) 針對工業(yè)控制系統(tǒng)數(shù)據(jù)維數(shù)高、關(guān)聯(lián)性強的特點,本文提出一種基于PU學(xué)習(xí)的特征重要度計算方法,該方法可以基于正例標(biāo)簽數(shù)據(jù)和無標(biāo)簽數(shù)據(jù)計算出特征的重要度,以用于特征選擇。

      (2) 在 PU 學(xué)習(xí)的類先驗概率估計上,本文分析了基于正例標(biāo)簽頻率的類先驗概率估計算法,并通過OCSVM模型劃分可信賴的正例子集,改良了正例標(biāo)簽頻率的計算方法,減小了先驗概率估計的誤差。

      (3) 基于工業(yè)控制系統(tǒng)攻擊的隱蔽性特點,將PU學(xué)習(xí)應(yīng)用到工業(yè)控制系統(tǒng)入侵檢測,構(gòu)建神經(jīng)網(wǎng)絡(luò)進行PU學(xué)習(xí),在僅有正常流量作為標(biāo)簽數(shù)據(jù)的情況下訓(xùn)練分類模型,并通過公開數(shù)據(jù)集實驗進行實驗驗證模型的有效性。

      本文的結(jié)構(gòu)如下: 第 2節(jié)介紹工業(yè)控制系統(tǒng)入侵檢測和PU學(xué)習(xí)的研究現(xiàn)狀; 第3節(jié)為本文的主要研究內(nèi)容; 第 4節(jié)通過實驗驗證提出的算法的有效性; 第5節(jié)對文章進行總結(jié)。

      2 相關(guān)工作

      2.1 工業(yè)控制系統(tǒng)概述

      工控網(wǎng)絡(luò)層次模型從上到下共分為 5個層級,依次為企業(yè)資源層、生產(chǎn)管理層、過程監(jiān)控層、現(xiàn)場控制層和現(xiàn)場設(shè)備層,不同層級的實時性要求不同。企業(yè)資源層主要包括 ERP系統(tǒng)功能單元,用于為企業(yè)決策層員工提供決策運行手段,如圖1所示。

      圖1 工業(yè)控制系統(tǒng)層次結(jié)構(gòu)Figure 1 Architecture of an Industrial Control System

      工業(yè)控制最底層是現(xiàn)場設(shè)備層,其包含一些應(yīng)用在現(xiàn)場的設(shè)備,如傳感器,監(jiān)控器等一些執(zhí)行設(shè)備單元,用于對生產(chǎn)過程進行感知與操作。

      過程監(jiān)控層和現(xiàn)場控制層是用于監(jiān)視和控制現(xiàn)場設(shè)備。其中過程監(jiān)控層主要包含SCADA和HMI,SCADA可以對現(xiàn)場的運行設(shè)備進行監(jiān)視和控制,以實現(xiàn)數(shù)據(jù)采集、設(shè)備控制、測量、參數(shù)調(diào)節(jié)以及各類信號報警等各項功能; HMI為人機界面,用于系統(tǒng)和用戶之間進行信息交互。現(xiàn)場控制層主要是PLC,PLC向上與 HMI相連,接收控制命令和查詢請求,向下與現(xiàn)場設(shè)備相連,通過發(fā)送操作指令對現(xiàn)場設(shè)備進行控制。

      生產(chǎn)管理層中包含MES和MOMS,用于對生產(chǎn)過程進行管理,如制造數(shù)據(jù)管理、生產(chǎn)調(diào)度管理等。

      最上層為企業(yè)資源層,企業(yè)資源規(guī)劃(ERP)系統(tǒng)管理核心業(yè)務(wù)流程,如生產(chǎn)或產(chǎn)品計劃,物料管理和財務(wù)情況等。

      2.2 工業(yè)控制系統(tǒng)入侵檢測特點

      工業(yè)控制系統(tǒng)的入侵檢測與互聯(lián)網(wǎng)的入侵檢測存在顯著差別,由于工業(yè)控制系統(tǒng)的環(huán)境的特殊性,其具有獨特的特征[6]:

      (1) 高實時性。工業(yè)控制系統(tǒng)通常部署在電力、核能等領(lǐng)域中,系統(tǒng)具有較高的實時性,因此也要求入侵檢測具有較高的實時性。

      (2) 工控設(shè)備資源受限。工業(yè)控制系統(tǒng)包含大量執(zhí)行特定操作的傳感器和執(zhí)行器,為降低成本,其擁有的計算、存儲資源通常十分有限。

      (3) 設(shè)備難以更新,重啟。工業(yè)控制系統(tǒng)與物理世界聯(lián)系緊密,通常無法暫停工作,否則會對整個工業(yè)控制系統(tǒng)、人員、環(huán)境造成嚴(yán)重的危害。

      基于以上工業(yè)控制系統(tǒng)的特征,實際上對入侵檢測系統(tǒng)就提出的較高的要求:

      (1) 實時性。工業(yè)控制系統(tǒng)對入侵檢測具有更高的實時性要求,要求入侵檢測系統(tǒng)可以利用工業(yè)控制系統(tǒng)的實時信息進行入侵檢測。

      (2) 資源受限。工業(yè)控制系統(tǒng)資源受限的特點對入侵檢測的方法進行了限制,要求入侵檢測模型具有較低的資源消耗。一些基于深度學(xué)習(xí)的算法的時間復(fù)雜度就相對較高,特別是深度學(xué)習(xí)模型,拋開訓(xùn)練時間不談,一些深層的神經(jīng)網(wǎng)絡(luò)模型,其網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜參數(shù)量非常大,所需的訓(xùn)練和預(yù)測時間也較長。在資源首先的情況下,一些復(fù)雜的深層神經(jīng)網(wǎng)絡(luò)模型難以適用于工業(yè)控制系統(tǒng)的入侵檢測。因此在將神經(jīng)網(wǎng)絡(luò)模型運用到工業(yè)控制系統(tǒng)的入侵檢測是,需要著重考慮模型的復(fù)雜度,在保證準(zhǔn)確率的同時盡可能使神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)簡單。

      (3) 設(shè)備難以更新和重啟。這一特點對入侵檢測模型性能進行了限制。首先由于設(shè)備難以更新模型需要具有較好的泛化性能,即在訓(xùn)練數(shù)據(jù)上訓(xùn)練的模型運用到真實數(shù)據(jù)上同樣需要具有較好的性能;其次是指標(biāo)的要求,由于設(shè)備無法重啟或暫停,因此進行入侵檢測需要具有較高的查準(zhǔn)率,即寧可漏報也不誤報。

      以上是工業(yè)控制系統(tǒng)的特點,在進行入侵檢測時,通常需要基于其流量進行分析,工業(yè)數(shù)據(jù)的特點是維數(shù)高、關(guān)聯(lián)性強,這會增加入侵檢測模型的訓(xùn)練時間,因此需要對工業(yè)數(shù)據(jù)特征提取,降低后續(xù)數(shù)據(jù)建模和處理的復(fù)雜度[15]。

      基于工業(yè)控制系統(tǒng)高查準(zhǔn)率,低資源消耗的要求,以及其數(shù)據(jù)標(biāo)簽難獲取的特點,本文構(gòu)建淺層神經(jīng)網(wǎng)絡(luò)進行 PU學(xué)習(xí),用于工業(yè)控制系統(tǒng)入侵檢測。同時針對工業(yè)控制系統(tǒng)數(shù)據(jù)維度高,關(guān)聯(lián)性強的特點,提出一種基于PU學(xué)習(xí)的特征選擇算法用于數(shù)據(jù)降維。

      2.3 工業(yè)控制系統(tǒng)入侵檢測相關(guān)工作

      工業(yè)控制系統(tǒng)入侵檢測按照檢測的數(shù)據(jù)可以分為: 基于流量的檢測,基于設(shè)備狀態(tài)的檢測和基于協(xié)議的檢測。在流量上,通過工業(yè)控制系統(tǒng)真實流量構(gòu)建特征,如流持續(xù)時間,端口等信息,然后結(jié)合一些機器學(xué)習(xí)模型進行檢測,如 OCSVM[7]; 在設(shè)備狀態(tài)上,魏戰(zhàn)紅等人提出一種基于 CUSUM 算法的入侵檢測方法,在該方法中首先以傳感器獲取的實際值和模型預(yù)測值之間的差值作為統(tǒng)計序列,根據(jù)3σ原則設(shè)計偏移常數(shù)決定閾值,最后在實驗中驗證了該方法可以有效檢測偏差攻擊和幾何攻擊; 在協(xié)議上,一些工控協(xié)議是公開的,可以依據(jù)這些協(xié)議的規(guī)范制定檢測規(guī)則,對特定工控協(xié)議進行檢測,如Modbus協(xié)議[8-9]。

      隨著機器學(xué)習(xí)和人工智能的迅速發(fā)展,其影響逐漸輻射到入侵檢測領(lǐng)域,大量機器學(xué)習(xí)模型被用于入侵檢測,按照適用的機器學(xué)習(xí)算法不同,可以分為傳統(tǒng)分類模型,聚類模型[10-11],集成模型,異常檢測模型和神經(jīng)網(wǎng)絡(luò)四類。由于神經(jīng)網(wǎng)絡(luò)發(fā)展迅速,且表現(xiàn)出了比傳統(tǒng)機器學(xué)習(xí)模型更好的分類性能,因此,基于傳統(tǒng)分類模型的入侵檢測逐漸降溫。集成模型和異常檢測模型各有特點,集成模型由多個基分類器集成分類性能較好,且如隨機森林[12]; 異常檢測如 OCSVM 的優(yōu)點有: 1) 對于未知的入侵具有檢測能力; 2) 僅需要背景流量作為訓(xùn)練數(shù)據(jù)。隨著研究的深入,自編碼器等神經(jīng)網(wǎng)絡(luò)被用于無監(jiān)督的異常檢測[13]。

      入侵檢測最常用的異常檢測算法是OCSVM,李琳等人[14]調(diào)研了 OCSVM 算法在工業(yè)控制系統(tǒng)入侵檢測中的應(yīng)用。在網(wǎng)絡(luò)層和傳輸層上,OCSVM算法被用于SCADA系統(tǒng)的TCP/IP流量異常檢測; 在應(yīng)用層上,基于 ModbusTCP正常通信流量訓(xùn)練OCSVM 模型進行入侵檢測。同時文中也指出了OCSVM異常檢測存在三個主要問題: 工業(yè)控制系統(tǒng)的特征構(gòu)建問題,參數(shù)尋優(yōu)問題和較高的誤報率。

      隨著深度學(xué)習(xí)的推廣,大量深度學(xué)習(xí)模型被用于入侵檢測,包括: RNN(Recurrent Neural Network,循環(huán)神經(jīng)網(wǎng)絡(luò)),CNN(Convolutional Neural Networks,卷積神經(jīng)網(wǎng)絡(luò)),DBN (Deep Belief Network,深度信念網(wǎng)絡(luò)),AE(AutoEncoder Network,自編碼網(wǎng)絡(luò))。深度學(xué)習(xí)模型相較于 OCSVM 等經(jīng)典的異常檢測模型,在檢測率上有了提升,但是訓(xùn)練模型所需的時間也更長。

      表1中總結(jié)了近幾年的基于機器學(xué)習(xí)的工業(yè)控制系統(tǒng)入侵檢測相關(guān)工作,從相關(guān)工作分析,工業(yè)控制系統(tǒng)的入侵檢測研究具有如下趨勢:

      表1 機器學(xué)習(xí)在工業(yè)控制系統(tǒng)入侵檢測中的應(yīng)用Table 1 Summary of work related to intrusion detection

      (1) 趨向于異常檢測。工業(yè)控制系統(tǒng)的入侵檢測更多的是被作為異常檢測問題處理,在模型選擇上偏好OCSVM等一分類模型或AE等無監(jiān)督模型進行識別。

      (2) 趨向于高精度。在進幾年的研究工作中部分研究者趨向于通過一些參數(shù)優(yōu)化算法如粒子群算法(PSO)和引力搜索算法(GSA)優(yōu)化模型參數(shù),使模型具有更好的分類性能。

      (3) 趨向于實時高效。工業(yè)控制系統(tǒng)由于資源受限,因此要求模型具有較小的計算成本,從相關(guān)工作來看,工業(yè)控制系統(tǒng)入侵檢測更加注重低計算消耗的模型,同時大多在訓(xùn)練模型前通過特征選擇或特征提取的方法,如PCA,fisher分值進行降維,從而減少模型訓(xùn)練所用的時間和計算量。

      2.4 PU學(xué)習(xí)

      PU學(xué)習(xí)可以視為一種基于神經(jīng)網(wǎng)絡(luò)進行異常檢

      測的方法,其通過正例數(shù)據(jù)集和無標(biāo)簽數(shù)據(jù)集來估計二分類誤差,從而使PU學(xué)習(xí)模型可以達到接近二分類模型的分類性能。

      由于 PU學(xué)習(xí)需要通過正例數(shù)據(jù)集和無標(biāo)簽數(shù)據(jù)集訓(xùn)練模型,為了有效的估計二分類誤差,無標(biāo)簽數(shù)據(jù)集在應(yīng)用到 PU學(xué)習(xí)之前需要對其正例和反例樣本的混合比例進行估計[31-32],也被稱為類先驗概率估計(class prior estimation)。類先驗概率估計主要方法是從PU數(shù)據(jù)集的分布著手,由于無標(biāo)簽數(shù)據(jù)集中混合了正例和反例數(shù)據(jù),所以實際上無標(biāo)簽數(shù)據(jù)集的分布由正例數(shù)據(jù)分布和反例數(shù)據(jù)分布組合而成,通過比較PU數(shù)據(jù)集的分布可以求出類先驗概率[33-35]。除此以外,基于正例標(biāo)簽頻率的類先驗概率估計算法是目前最為先進的算法之一,Jessa Bekker等人[36]提出TIcE算法,通過在無標(biāo)簽數(shù)據(jù)集中劃分可信賴的正例子集來估計正例標(biāo)簽頻率,這也是目前時間復(fù)雜度最低的算法。

      2014年,Plessis等人[37]首先對PU學(xué)習(xí)問題進行了理論分析,將PU學(xué)習(xí)與二分類模型進行比較,在已知類先驗概率π的條件下估算出二分類樣本的損失,理論上其可以獲得和二分類模型相同的決策面,該模型被稱為uPU(unbiased Positve-unlabeled learning)。針對 uPU模型損失函數(shù)需要滿足對稱條件,Plessis等人[38]繼續(xù)展開研究,給出了一種將不滿足對稱條件的損失函數(shù)應(yīng)用于 uPU中的方法,并驗證了非凸損失函數(shù)和凸損失函數(shù)具有相似的精度。2016年,Plessis等人[39]進一步比較了PU學(xué)習(xí)模型與二分類模型,分析了在一些情況下PU學(xué)習(xí)模型性能比二分類模型更佳的原因。

      2017年,Ryuichi Kiryo等人[40]針對uPU容易發(fā)生過擬合的問題,提出了 nnPU(Positive-unlabeled learning with Non-negative risk estimator)算法,在uPU的基礎(chǔ)上,對其估計二分類損失的方法進行改進,保證了估計的反例損失恒為正數(shù),從而避免了由于估計的損失為負數(shù)帶來的問題,并指出nnPU性能優(yōu)于uPU。最后,Jessa Bekker等人[41]對現(xiàn)有的PU學(xué)習(xí)進行了總結(jié),在文章中針對目前PU學(xué)習(xí)的七個主要問題進行了分析,其中包括PU學(xué)習(xí)的假設(shè),評價指標(biāo),主要模型和類先驗概率估計等。

      3 基于PU學(xué)習(xí)的入侵檢測

      工業(yè)控制系統(tǒng)的入侵檢測問題被作為異常檢測問題收到學(xué)者們的關(guān)注,但是一些經(jīng)典的異常檢測算法如OCSVM算法,具有較高的誤報率,分類性能同二分類模型相比具有較大差距。本文提出使用PU學(xué)習(xí)進行入侵檢測,該方法被證明具有接近二分類的分類性能,同時在訓(xùn)練數(shù)據(jù)上同 OCSVM 模型一樣只需要一類標(biāo)簽數(shù)據(jù)。

      基于PU學(xué)習(xí)的入侵檢測流程如圖2所示,在特征工程上,需要通過正例標(biāo)簽數(shù)據(jù)和誤標(biāo)簽數(shù)據(jù)對特征進行分析,選擇關(guān)鍵特征,降低數(shù)據(jù)維度,減小無關(guān)特征對模型分類性能的影響; 同時PU學(xué)習(xí)的類先驗概率作為先驗知識,需要在進行特征工程的同時進行處理,通過分析正例數(shù)據(jù)和誤標(biāo)簽數(shù)據(jù),構(gòu)建模型,估計誤標(biāo)簽數(shù)據(jù)集的類先驗概率; 然后結(jié)合特征選擇后的正例標(biāo)簽數(shù)據(jù)、無標(biāo)簽數(shù)據(jù)以及類先驗概率,訓(xùn)練PU學(xué)習(xí)模型,最后輸出模型和誤標(biāo)簽數(shù)據(jù)集的分類標(biāo)簽。

      圖2 基于PU學(xué)習(xí)的入侵檢測流程示意圖Figure 2 Schematic diagram of intrusion detection process based on PU learning

      基于以上流程,本部分主要的研究內(nèi)容分為三部分: 首先,探索一種基于PU學(xué)習(xí)的特征選擇算法,基于正例標(biāo)簽數(shù)據(jù)和無標(biāo)簽數(shù)據(jù)分析特征的重要度;其次,研究類先驗概率估計算法,提升類先驗概率估計的準(zhǔn)確度,為PU學(xué)習(xí)提供重要先驗知識; 最后,基于特征選擇之后的數(shù)據(jù)和估計的類先驗概率,通過PU學(xué)習(xí)訓(xùn)練分類模型。

      在本文的研究中分別對異常檢測存在的問題有針對的進行了回答:

      (1) 在特征工程上,本文基于 PU學(xué)習(xí)研究了特征重要度計算方法,可以作為特征選擇的度量標(biāo)準(zhǔn)對工業(yè)控制系統(tǒng)數(shù)據(jù)進行特征選擇;

      (2) 在工業(yè)控制系統(tǒng)資源限制和實時性問題上,本文選用了淺層的神經(jīng)網(wǎng)絡(luò),其所需的存儲資源和計算資源都比較少,符合工業(yè)控制系統(tǒng)需求;

      (3) 在誤報率上,PU學(xué)習(xí)已經(jīng)被驗證具有接近二分類模型的分類性能,相較于無監(jiān)督的異常檢測模型查準(zhǔn)率較高。

      3.1 PU學(xué)習(xí)的特征重要度

      在工業(yè)控制系統(tǒng)中,數(shù)據(jù)具有維數(shù)高、關(guān)聯(lián)性強的特點。當(dāng)數(shù)據(jù)維度很高時,許多機器學(xué)習(xí)問題會變得困難,這種現(xiàn)象被稱為維數(shù)災(zāi)難。特征選擇是特征工程的重要內(nèi)容,其原理是在所有特征抽取關(guān)鍵特征,從而達到降維的目的。特征選擇的方法可以分為兩類: 封裝式和過濾式。其中封裝式的特征選擇通常是擇定一個基模型進行多輪訓(xùn)練,根據(jù)訓(xùn)練所得模型的分類性能逐漸篩除冗余特征; 過濾式的特征選擇是通過計算特征的重要度,設(shè)定閾值篩除無關(guān)特征,并進一步通過相關(guān)性篩除冗余特征。

      在PU學(xué)習(xí)中,由于只有一類帶標(biāo)簽的樣本,因此,封裝式的模型難以評估模型性能,因此在本文中采用過濾式特征選擇方法,其中常用的特征重要度計算方法如表1所示。

      過濾式特征選擇方法的重要度計算方法通過評估特征與標(biāo)簽的相關(guān)性來計算,認為和目標(biāo)類別存在明顯相關(guān)關(guān)系特征是關(guān)鍵特征。然而在在PU學(xué)習(xí)中,只有一類標(biāo)簽樣本,無法直接使用二分類模型中的特征重要度計算方法,因此需要尋找一種適合于PU學(xué)習(xí)場景的特征重要度計算方法。

      以此二分類的重要度計算思想為啟發(fā),本文給出一種PU學(xué)習(xí)的關(guān)鍵特征識別方法: 考慮到無標(biāo)簽數(shù)據(jù)集是正例樣本和反例樣本混合而得,無標(biāo)簽數(shù)據(jù)集中特征的屬性值包含了正例取值和反例取值兩部分,如果該特征與類標(biāo)簽強相關(guān),那么無標(biāo)簽數(shù)據(jù)集中該特征的屬性值在分布上應(yīng)該呈現(xiàn)出明顯的雙峰或多峰特征,且不同類樣本特征的分布差異較大,如圖3所示; 當(dāng)特征與類標(biāo)簽弱相關(guān)時,則正例與反例樣本的特征分布相似。

      圖3 PU學(xué)習(xí)的關(guān)鍵特征的分布Figure 3 Key feature distribution of PU learning

      特征在正例數(shù)據(jù)集和無標(biāo)簽數(shù)據(jù)集上的分布差異即可作為特征的重要度。KL散度可以描述兩個分布之間的差異,其離散形式如公式(1)所示。

      KL散度在計算兩個特征分布差異時,需要特征屬性值的概率。首先考慮到特征的屬性值取值范圍沒有限定,因此在計算之前需要先進行最大最小值標(biāo)準(zhǔn)化,目的是為了將標(biāo)準(zhǔn)化之后的屬性值限制在[0,1]區(qū)間內(nèi); 其次,特征的屬性值存在連續(xù)和離散兩種形式,為了統(tǒng)一處理,在算法中將[0,1]區(qū)間進行等分,通過每個小區(qū)域中樣本的頻率作為概率計算KL散度。

      算法1.基于KL散度的特征重要度算法

      輸入: 正例標(biāo)簽數(shù)據(jù)集 P,無標(biāo)簽數(shù)據(jù)集 U,特征重要度閾值threshold

      輸出: 特征選擇之后的正例數(shù)據(jù)集P′和無標(biāo)簽數(shù)據(jù)U′

      1: Initialize feature importace vectorω;

      2: Load data set P and U;

      3: Data normalization by MinMaxScaler;

      4: FOR i=1 TO M,DO

      5: Divide the [0,1]interval into 100 equal parts,and take the frequency as probability;

      6: Calculate i-th featue’s importance through KL divergence: ω [i]= KLi(P||U);

      7: END FOR

      8: RETURN ω

      時間復(fù)雜度分析: 算法中第 3步進行數(shù)據(jù)標(biāo)準(zhǔn)化,采用的數(shù)據(jù)標(biāo)準(zhǔn)化方法為最大最小值標(biāo)準(zhǔn)化,該步的時間復(fù)雜度為O(mn); 第 4~6步為計算特征重要度,通過將[0,1]區(qū)間等分,以每個小區(qū)間中的頻數(shù)作為概率計算 KL散度,該部分的時間復(fù)雜度為O(m n)。因此算法的總時間復(fù)雜度為O(mn)。

      通過 KL散度可以在僅有正例標(biāo)簽數(shù)據(jù)的場景下給出特征重要度的估計值,區(qū)分關(guān)鍵特征和無關(guān)特征,在不考慮冗余特征的情況下,可以基于特征重要度對特征進行過濾,如設(shè)定特征重要度閾值或指定選擇的特征數(shù)。

      3.2 PU學(xué)習(xí)的類先驗概率估計

      在工業(yè)控制系統(tǒng)中,大量入侵?jǐn)?shù)據(jù)的采集是十分困難的,但是系統(tǒng)正常運行的流量和狀態(tài)碼的采集相對簡單,以正常狀態(tài)的數(shù)據(jù)作為正例標(biāo)簽數(shù)據(jù),進行 PU學(xué)習(xí)是符合工業(yè)控制系統(tǒng)實際應(yīng)用場景的,而在PU學(xué)習(xí)中,分析待檢測的數(shù)據(jù),獲得類先驗概率是十分重要的。PU學(xué)習(xí)的類先驗概率被定義為π= p(y = 1 ),當(dāng)樣本的采集滿足 SCAR(select at completely random)假設(shè)時,類先驗概率即為無標(biāo)簽數(shù)據(jù)集中正例樣本所占的比例。

      定義 1(SCAR假設(shè))樣本的采集與樣本的屬性無關(guān),是完全隨機的,即:

      按照正例數(shù)據(jù)的來源不同可以分為兩類: One Sample(OS)和 Two Sample(TS)。OS在采集數(shù)據(jù)時,僅進行一次隨機采樣,即在真實數(shù)據(jù)中隨機采集一部分?jǐn)?shù)據(jù),在采集的數(shù)據(jù)中挖掘出一些正例數(shù)據(jù)加上標(biāo)簽,未標(biāo)簽的數(shù)據(jù)作為無標(biāo)簽數(shù)據(jù); TS在采集數(shù)據(jù)時,需要進行兩次采樣,即首先隨機采集一部分正例標(biāo)簽數(shù)據(jù),無標(biāo)簽數(shù)據(jù)集在真實數(shù)據(jù)中通過隨機抽樣進行獲得。

      由于正例數(shù)據(jù)是通過在無標(biāo)簽數(shù)據(jù)集中隨機選擇的,因此在這種場景下產(chǎn)生了一個中間變量c,該變量被稱為正例標(biāo)簽頻率(label frequency),其定義為 c = p(s = 1 | y = 1 ),其中s=1表示樣本被選中的樣本。標(biāo)簽頻率和類先驗概率的關(guān)系可以通過公式(3)表示。

      因此可以通過估計正例標(biāo)簽頻率c,來估算類先驗概率。特別地,在 TS場景下,可以將正例數(shù)據(jù)和無標(biāo)簽數(shù)據(jù)混合,將正例樣本視為隨機抽取并加上標(biāo)簽的正例樣本,也可進行正例標(biāo)簽頻率估計。

      文獻[36]中通過使用決策樹來提升估計的正例標(biāo)簽頻率的下界,從而得到正例標(biāo)簽頻率的估計值,該算法被稱為TIcE算法。本文通過OCSVM算法對TIcE算法進行改進,提出通過 OCSVM 算法來劃分可信賴正例子集,進而估計正例標(biāo)簽頻率。

      OCSVM算法是一種經(jīng)典的異常檢測算法,當(dāng)其使用RBF核函數(shù)時,性能和SVDD類似,可以認為OCSVM算法在特征空間中劃分找到一個超球體,將正例樣本包含在該超球體內(nèi),并且使得該超球體半徑最小。其問題描述如公式所示。

      公式中的v是異常點比例的上界,因此可以通過設(shè)置參數(shù)來限制正例數(shù)據(jù)集中被劃分為異常點的樣本數(shù)量,從而模型劃分的正例子集樣本量較少導(dǎo)致的估計偏差。同時,當(dāng)設(shè)置異常點比例上界較大時,此時的超球體半徑較小,模型劃分為正例的樣本可以作為可信賴的正例樣本。

      在正例標(biāo)簽頻率的估計上,估計值可以通過切比雪夫不等式給出。通過切比雪夫不等式,正例子集S中標(biāo)簽樣本的數(shù)量LS滿足公式(5)。

      其中LS服從二項分布,且隨機變量LS的期望為E(L) = cNS,方差為 D (L ) = c ( 1 - c )NS,NS為正例子集S的樣本總數(shù)。代入公式(5)得到:

      通過公式(7),可以以概率δ對正例標(biāo)簽頻率c的上界和下界進行約束,如公式(8)所示。

      在TIcE算法中,由于發(fā)現(xiàn)可信賴正例子集的算法是決策樹,隨著決策樹劃分的進行,葉子節(jié)點的數(shù)量減少,會存在一些葉子節(jié)點脫離真實樣本混合比例,故在算法中選擇類先驗概率估計的下界進行約束。然而,通過OCSVM算法劃分可信賴的正例子集,可以對正例子集樣本數(shù)進行約束,因此可以取區(qū)間中點作為對正例標(biāo)簽頻率c的估計值,進而可以計算出類先驗概率,稱該類先驗概率估計算法為OCSVM-cE。

      OCSVM 相較于 TIcE算法,首先將尋找正例子集的算法由決策樹轉(zhuǎn)換成OCSVM,這樣做一方面可以通過 OCSVM 模型的參數(shù)對可信賴正例子集的樣本數(shù)進行限制,避免由于可信賴正例子集樣本過少導(dǎo)致的估計偏差,另一方面在訓(xùn)練模型所使用的數(shù)據(jù)上進行了優(yōu)化,TIcE在構(gòu)建決策樹時需要同時使用正例數(shù)據(jù)集和無標(biāo)簽數(shù)據(jù)集,這也導(dǎo)致在通過TIcE算法估計類先驗概率時,需要根據(jù)不同的無標(biāo)簽數(shù)據(jù)集重復(fù)構(gòu)建決策樹,在實際應(yīng)用中開銷較大。然而OCSVM-cE算法在構(gòu)建模型時僅需要正例數(shù)據(jù)集,訓(xùn)練的模型可以在不同的無標(biāo)簽數(shù)據(jù)集中使用,因此在訓(xùn)練好模型之后,OCSVM-cE算法的時間復(fù)雜度降至O(n)。

      算法2.OCSVM-cE算法

      輸入: 正例標(biāo)簽數(shù)據(jù)集 P,無標(biāo)簽數(shù)據(jù)集 U,OCSVM的誤差上界δ

      輸出: 類先驗概率π

      1: Load dataset P and U;

      2: NP= l en(P),NU= l en(U);

      3: Data normalization;

      4: Set upper bound on the fraction of training errors as δ,train an OCSVM model;

      5: Merge P and U as A,predict A through OCSVM model;

      6: Count the number of samples identified as positive examples in P and U as nPand nU;

      通過算法 2可以在對待檢測的工控數(shù)據(jù)進行分析,估計其類先驗概率,為PU學(xué)習(xí)提供重要的先驗知識,同時避免了采集工業(yè)控制系統(tǒng)入侵檢測數(shù)據(jù),極大的減少了人工成本。

      3.3 基于神經(jīng)網(wǎng)絡(luò)的PU學(xué)習(xí)

      在工業(yè)控制系統(tǒng)中,入侵具有較高的隱蔽性且更新較快,從“Stuxnet”到“Duqu”,再到“Flame”火焰病毒,傳統(tǒng)的基于分類的入侵檢測技術(shù)難以應(yīng)對其更新,而將入侵檢測作為異常檢測處理,雖然無法識別入侵的種類,但是可以在面對未知入侵時也具有示警的能力。本文采用PU學(xué)習(xí)方法進行入侵檢測,將正常流量作為標(biāo)簽數(shù)據(jù),與待檢測的數(shù)據(jù)同時參與模型的訓(xùn)練,同異常檢測算法一樣,PU學(xué)習(xí)方法具有檢測未知攻擊的能力,同時其被證明了訓(xùn)練的模型具有接近二分類模型的準(zhǔn)確率。

      3.3.1 數(shù)據(jù)不平衡下的PU學(xué)習(xí)

      PU學(xué)習(xí)中將無標(biāo)簽數(shù)據(jù)集視為帶有噪聲標(biāo)簽樣本的反例數(shù)據(jù)集,進而通過類先驗概率估計二分類損失。二分類損失的期望計算如公式(9)所示:

      然而在PU學(xué)習(xí)中,沒有帶標(biāo)簽的反例樣本,因此無法直接計算反例樣本的損失,nnPU中提出通過無標(biāo)簽數(shù)據(jù)集去估計反例樣本損失,這也是nnPU的核心思想。無標(biāo)簽數(shù)據(jù)集混合了正例和反例樣本,將其視為含有錯誤標(biāo)簽樣本的反例數(shù)據(jù)集,那么其損失的期望可以表述如下:

      其中π為無標(biāo)簽數(shù)據(jù)集中的類先驗概率,l為損失函數(shù),UP為無標(biāo)簽數(shù)據(jù)集中的正例樣本集合。在公式(10)中,EU(l(f(x),-1 ))可以直接計算,EN(l(f(x),- 1 ))是待估計的反例樣本損失,因而問題轉(zhuǎn)換成計算出 EUP(l(f(x),-1 ))。

      在TS場景下正例標(biāo)簽數(shù)據(jù)集和無標(biāo)簽數(shù)據(jù)集均通過隨機采樣獲得,故正例標(biāo)簽數(shù)據(jù)集損失的期望和無標(biāo)簽數(shù)據(jù)集中正例樣本損失的期望近似,有:

      聯(lián)立公式(10)和公式(11)可以得到估計二分類誤差的方法,如公式(12)所示。

      公式被稱為Non-negative risk estimator[40],其中,max(0,EU(l(f(x) ,- 1 )) -πEP(l(f(x),- 1 )))是估計的反例樣本損失,EP(l(f(x) ,1))是正例樣本損失的期望。

      在進行入侵檢測時,將正常流量作為正例樣本,這樣在待檢測的無標(biāo)簽數(shù)據(jù)集中正例樣本的比例通常遠大于反例,存在數(shù)據(jù)不平衡問題。

      圖4 y=1時focal loss函數(shù)圖像Figure 4 Image of focal loss function when y=1

      為了應(yīng)對由于類先驗概率較小導(dǎo)致的數(shù)據(jù)不平衡問題,PU學(xué)習(xí)的損失函數(shù)設(shè)定為focal loss,如圖2所示,focal loss可以寫成:

      在模型的訓(xùn)練過程中,正例樣本識別錯誤時會被作為難分樣本,此時(f(xi) )γ和(1 -f(xi) )γ存在數(shù)十倍甚至數(shù)百倍的差距,可以增大難分樣本的權(quán)重,提升nnPU在數(shù)據(jù)不平衡下的分類性能。修正之后的Non-negative risk estimator 如公式(14)所示。

      PU 學(xué)習(xí)的算法偽代碼如算法3所示。

      算法3.PU學(xué)習(xí)算法

      輸入: 正例標(biāo)簽數(shù)據(jù)集P,無標(biāo)簽數(shù)據(jù)集U,epochs,學(xué)習(xí)率γ,batch_size

      輸出: 無標(biāo)簽數(shù)據(jù)集中樣本的預(yù)測值

      1: Load datasetPandU,Data preprocessing and data normalization;

      2: define a neural network;

      3: Weight initialization;

      4: FORk=1 TOepochs,DO

      5: Forward propagation;

      6: Calculate risk estimatorR(fl);

      8: IF Satisfied early stopping conditions THEN

      9: Break;

      10: END IF;

      11: END FOR

      12: PredictUthrough the trained model;

      13: RETURN the labels ofU

      通過以上分析可知,PU學(xué)習(xí)相較于二分類模型,在誤差計算上進行調(diào)整,通過risk estimator估計二分類誤差,以估計的二分類的誤差進行反向傳播,調(diào)整神經(jīng)網(wǎng)絡(luò)模型的參數(shù)。

      3.3.2 神經(jīng)網(wǎng)絡(luò)設(shè)置

      使用機器學(xué)習(xí)方法進行工業(yè)控制系統(tǒng)入侵檢測的過程中,需要關(guān)注工業(yè)控制系統(tǒng)對模型的實時性要求,要求模型對輸入的數(shù)據(jù)可以快速做出判定,因此在使用的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)需要盡可能簡化,一方面簡化的模型可以減少檢測的響應(yīng)時間,提高模型的實時性; 另一方面可以降低對計算資源的需求,更加符合工業(yè)控制系統(tǒng)的應(yīng)用場景。

      PU 學(xué)習(xí)是一種依托于神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法,在僅有一類標(biāo)簽數(shù)據(jù)的場景下,通過估計分類誤差來訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型。神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的不同,同樣也會對模型性能產(chǎn)生影響,在本節(jié)中我們探討兩種不同網(wǎng)絡(luò)結(jié)構(gòu)的PU學(xué)習(xí)模型。

      第一種是全連接的神經(jīng)網(wǎng)絡(luò)DNN。DNN是具有多個隱藏層的神經(jīng)網(wǎng)絡(luò),理論上DNN可以擬合任意函數(shù),文獻[42]中探討了不同隱藏層數(shù)量的 DNN在入侵檢測中的分類性能,且其結(jié)果顯示在進行二分類時,含3個隱藏層的DNN模型就可以擁有比較高的分類性能,并且隨著層數(shù)的增加,分類性能沒有明顯提升。因此本文中選用含3個隱藏層DNN模型,三個隱藏的節(jié)點數(shù)分別為256、64、16。模型的網(wǎng)絡(luò)結(jié)構(gòu)設(shè)置如表3所示。

      表3 DNN網(wǎng)絡(luò)設(shè)置Table 3 Configuration of DNN model

      PU學(xué)習(xí)通過 DNN完成一個二分類任務(wù),將所有待檢測的樣本劃分為正常流量和入侵流量,DNN的輸出通過Sigmoid函數(shù)映射到[0,1]區(qū)間內(nèi),以完成二分類任務(wù)。

      DNN中在兩個全連接層之間進行批量標(biāo)準(zhǔn)化(Batch Normalization,BN),即將每個隱層神經(jīng)元的輸出進行標(biāo)準(zhǔn)化,使得非線性變換函數(shù)的輸入值落入對輸入比較敏感的區(qū)域。使用BN可以加速神經(jīng)網(wǎng)絡(luò)的收斂,此外BN允許模型使用更高的學(xué)習(xí)率,并降低模型對于網(wǎng)絡(luò)參數(shù)初始化的要求,其還可以充當(dāng)調(diào)節(jié)器,在某些情況下可以消除對Dropout的需求[42]。

      DNN中的激活函數(shù)選用的是ReLu函數(shù),(1)可以加速網(wǎng)絡(luò)訓(xùn)練。相比于sigmoid、tanh,其求導(dǎo)更加迅速。(2)防止梯度消失。當(dāng)數(shù)值過大或者過小,sigmoid,tanh的導(dǎo)數(shù)接近于0,ReLu為非飽和激活函數(shù)不存在這種現(xiàn)象。(3)使網(wǎng)格具有稀疏性。

      權(quán)重更新算法選用Adam算法,Adam是一種自適應(yīng)學(xué)習(xí)率的優(yōu)化算法,具有收斂快,內(nèi)存占用少的優(yōu)點。

      第二種是卷積神經(jīng)網(wǎng)絡(luò) CNN。在本文中,采用了一種簡單的CNN網(wǎng)絡(luò)結(jié)構(gòu)Lenet-5結(jié)構(gòu)??紤]到Lenet-5是處理二維圖像的網(wǎng)絡(luò),要求輸入為32×32,而工業(yè)控制系統(tǒng)的數(shù)據(jù)通常為一維向量,因此對網(wǎng)絡(luò)結(jié)構(gòu)進行調(diào)整,替換Lenet-5中的二維卷積為一維卷積,此時輸入大小為32×1。因而在進行訓(xùn)練模型前需要進行特征選擇,降維到32維。網(wǎng)絡(luò)中第一層使用5×1的卷積,通過第一層后得到6個大小為28×1的特征圖,然后通過大小為2的最大池化采樣,變化成14×1大小,第二個卷積層使用5×1的卷積,輸出16個大小為10×1的特征圖,再通過大小為2的最大池化采樣,變化成5×1,最后將所有圖像鋪平輸入到一個全連接層中,全連接層有兩層,第一層神經(jīng)元數(shù)量為120,第二層神經(jīng)元數(shù)量為 84,最后按照分類的類別,通過softmax函數(shù)進行輸出?;贚enet-5的工業(yè)控制系統(tǒng)模型結(jié)構(gòu)如圖5所示。其中輸入(?,32,1)中的?代表batch_size,激活函數(shù)采用Relu函數(shù)。

      圖5 基于CNN的PU學(xué)習(xí)入侵檢測模型結(jié)構(gòu)Figure 5 PU learning for intrusion detection architecture based on CNN

      至此,可以得到基于PU學(xué)習(xí)的模型結(jié)構(gòu)。基于PU學(xué)習(xí)的入侵檢測的模型離線訓(xùn)練步驟如下:

      Step 1.讀取數(shù)據(jù),包括正例標(biāo)簽數(shù)據(jù)和待檢測的無標(biāo)簽數(shù)據(jù),進行數(shù)據(jù)預(yù)處理;

      Step 2.通過OCSVM-cE算法估計無標(biāo)簽數(shù)據(jù)集的類先驗概率,保存OCSVM模型;

      Step 3.通過 KL散度計算特征重要度,設(shè)定閾值th或選用的特征數(shù)K,按照特征重要度進行特征選擇,得到新的訓(xùn)練數(shù)據(jù)集;

      Step 4.初始化一個深度神經(jīng)網(wǎng)絡(luò),使用特征選擇后的新訓(xùn)練數(shù)據(jù)集訓(xùn)練 PU學(xué)習(xí)模型,訓(xùn)練的過程如算法3所示;

      Step 5.導(dǎo)出訓(xùn)練好的神經(jīng)網(wǎng)絡(luò),返回?zé)o標(biāo)簽數(shù)據(jù)集的預(yù)測值。

      4 實驗結(jié)果與分析

      4.1 數(shù)據(jù)介紹與分析

      實驗中使用了三個入侵檢測公開數(shù)據(jù)集:NSL-KDD①下載地址: https://www.unb.ca/cic/datasets/nsl.html.[43],UNSW-NB15②下載地址: https://www.unsw.adfa.edu.au/unsw-canberra-cyber/cybersecurity/ADFA-NB15-Datasets/.[44]和 WADI③下載地址: https://itrust.sutd.edu.sg/itrust-labs_datasets/[45]。其中NSL-KDD和UNSW-NB15數(shù)據(jù)集中的數(shù)據(jù)是基于互聯(lián)網(wǎng)流量提取的特征,包含流的基本特征(如傳輸層協(xié)議類型、端口等)、流的時間信息、連接內(nèi)容特征等,這些特征也可以作為工業(yè)控制系統(tǒng)流量進行提取。同時,為了進一步驗證模型在工控場景下的有效性,引入了WADI數(shù)據(jù)集,一方面在數(shù)據(jù)上應(yīng)用工控試驗臺提供的工控數(shù)據(jù); 另一方面,仿真工控數(shù)據(jù)不平衡特點。

      在攻擊類型上,NSL-KDD數(shù)據(jù)集是在KDDCUP 99數(shù)據(jù)集上進行了改進,去除了一些冗余數(shù)據(jù),數(shù)據(jù)集中包含了正常流量和22類攻擊流量,攻擊流量主要有: 拒絕服務(wù)攻擊 DOS,監(jiān)視和探測(Probing),遠程機器非法訪問(R2L)和普通用戶的越權(quán)訪問(U2R)四大類。UNSW_NB15數(shù)據(jù)集是由澳大利亞網(wǎng)絡(luò)安全中心生成的入侵檢測數(shù)據(jù)集,包括 DOS、Backdoors等在內(nèi)的9種攻擊的樣本。WADI數(shù)據(jù)集是在配屬試驗臺上收集的,實驗臺由許多向用戶水箱供水的大型水箱組成,WADI數(shù)據(jù)集種包含16種攻擊,其攻擊目標(biāo)是停止向用戶水箱供水。

      在實驗中,UNSW-NB15數(shù)據(jù)集,采用的官網(wǎng)提供的訓(xùn)練和測試數(shù)據(jù)集,合共257673個樣本。WADI數(shù)據(jù)集采用的是2019年10月的帶標(biāo)簽的數(shù)據(jù)。各數(shù)據(jù)集的樣本量如表4所示。

      表4 實驗數(shù)據(jù)集信息Table 4 Information of experiment data set

      4.2 數(shù)據(jù)預(yù)處理

      訓(xùn)練和測試數(shù)據(jù)集劃分上,基于樣本的真實標(biāo)簽,在正例數(shù)據(jù)中隨機抽取指定數(shù)量的正例樣本作為訓(xùn)練集,剩下的數(shù)據(jù)作為測試集。數(shù)據(jù)處理上,針對NSL-KDD存在的字符串?dāng)?shù)據(jù),如協(xié)議類型和服務(wù),需要進行獨熱編碼將字符串轉(zhuǎn)換成一個向量,編碼之后的NSL-KDD數(shù)據(jù)集維數(shù)從41維提升到122維。UNSW-NB15和 WADI數(shù)據(jù)集中的數(shù)據(jù)不存在空值和字符串,因此可以直接使用。

      本實驗中采用的設(shè)備: 處理器為 Intel core i7 8750H,操作系統(tǒng)為64位Windows 10家庭中文版,硬盤為西數(shù)SN720,內(nèi)存16 G。

      4.3 評價指標(biāo)

      訓(xùn)練好模型之后,通過模型對待預(yù)測的數(shù)據(jù)集進行分類,基于模型的判定結(jié)果,可以建立如表5的混淆矩陣:

      表5 混淆矩陣Table 5 Confusion matrix

      如表2~5所示,行表示是數(shù)據(jù)的真實類別,列表示模型的預(yù)測類別。在入侵檢測中關(guān)注的是模型對于入侵樣本的識別能力,因此使用入侵樣本的查準(zhǔn)率和召回率作為評價指標(biāo),查準(zhǔn)率如公式所示,查準(zhǔn)率描述的是模型預(yù)測為正例的樣本中,真實標(biāo)簽為正例的比例,如公式(15)所示。

      表2 二分類的特征重要度計算方法Table 2 Method for calculating feature importance of binary classification

      召回率如公式(16)所示,召回率描述的是模型將所有真實類別為正例的樣本識別為正例的比例。

      F1-score也常被用于作為評價指標(biāo),F1-score是查準(zhǔn)率和召回率的調(diào)和平均值,如公式(17)所示。

      除了以上指標(biāo),在入侵檢測場景中,由于面對的數(shù)據(jù)量較大,因此,模型訓(xùn)練和預(yù)測所用的時間也是衡量模型性能的一個重要指標(biāo)。

      4.4 實驗結(jié)果分析

      (1) 特征重要度的有效性分析和時間效率

      本實驗中,首先在二分類場景下通過隨機森林計算各個特征的重要度,并將其與基于KL散度計算的特征重要度進行對比,驗證使用KL散度計算的特征權(quán)重的有效性。

      實驗中,在所有樣本中隨機抽取2000個正例樣本作為正例標(biāo)簽數(shù)據(jù)集,再抽取2000個正例樣本和4000個反例樣本混合作為無標(biāo)簽數(shù)據(jù)集,余下的所有樣本作為測試集。圖6和圖7分別展示了 KLOCSVM和KDE-OCSVM算法在NSL-KDD數(shù)據(jù)集和UNSW-NB15數(shù)據(jù)集中的實驗結(jié)果。

      圖6 UNSW-NB15特征重要度Figure 6 Feature importance on UNSW-NB15

      圖7 NSL-KDD特征重要度Figure 7 Feature importance on NSL-KDD

      進一步地,計算兩種算法所得特征重要度的相關(guān)性并進行相關(guān)性檢驗。通過計算,在UNSW-NB15數(shù)據(jù)集下,兩種算法的特征重要度在歸一化之后的相關(guān)系數(shù)均值為 0.72,檢驗的P值為 4.29× 1 0-7,NSL-KDD數(shù)據(jù)集上的相關(guān)系數(shù)為0.9364,檢驗的P值為 1.15× 1 0-56。以顯著性水平為0.05,可以認定通過 KL散度計算出的特征重要性和在二分類情況下的特征重要性存在顯著的相關(guān)關(guān)系,即通過KL散度計算的特征重要度是有效的。

      (2) 類先驗概率估計

      為了驗證本文提出的OCSVM-cE算法的有效性,將其與以下類先驗概率算法進行比較:

      · KM1/KM2算法。該算法由Ramaswamy等人[31]在2016年提出,該算法通過計算正例和反例數(shù)據(jù)集的分布嵌入到核空間中,通過求解一個二次規(guī)劃問題即可解得類先驗概率,該算法是目前估計準(zhǔn)確率較高的算法。

      · TIcE算法。該算法由Jessa Bekker[36]在2019年提出,該算法基于決策樹對所有樣本進行劃分,通過子集提升正例樣本標(biāo)簽頻率下界,得到正例樣本標(biāo)簽頻率的估計值,進而計算出類先驗概率,該算法是目前類先驗概率估計時間復(fù)雜度最低的算法。

      · OCSVM-cE算法。本文中提出的算法,訓(xùn)練OCSVM 模型尋找無標(biāo)簽數(shù)據(jù)集的可信賴正例子集,通過可信賴正例子集估計正例樣本標(biāo)簽頻率,進而計算出類先驗概率。

      類先驗概率估計問題中,核心的評價指標(biāo)是估計的準(zhǔn)確率,即估計值和真實值的誤差。此外,算法的時間復(fù)雜度也是一項重要的評價指標(biāo)。

      基于以上評價指標(biāo)設(shè)計如下兩個實驗進行驗證:1) 驗證類先驗概率估計的準(zhǔn)確度,在實驗中以不同的類先驗概率構(gòu)造無標(biāo)簽數(shù)據(jù)集,并通過四種不同的基線算法估計構(gòu)造的無標(biāo)簽數(shù)據(jù)集的類先驗概率,分析不同算法估計值與真實值的誤差; 2) 驗證算法的時間復(fù)雜度。在該實驗中首先比較同樣本量下各算法進行類先驗概率估計所需的時間,然后在不同樣本量下估計類先驗概率時間變化趨勢。

      首先是類先驗概率估計的準(zhǔn)確率。實驗中,設(shè)置正例標(biāo)簽數(shù)據(jù)集樣本量為 1000,無標(biāo)簽數(shù)據(jù)集中反例樣本為2000,分別構(gòu)造類先驗概率為: 0.1,0.2,0.3,0.4,0.5的無標(biāo)簽數(shù)據(jù)集。分別使用基線算法對構(gòu)造的數(shù)據(jù)集進行類先驗概率估計。

      實驗結(jié)果如圖8和圖9所示。圖中橫坐標(biāo)為真實類先驗概率,縱坐標(biāo)為估計值和預(yù)測值誤差的絕對值。實驗結(jié)果顯示,OCSVM-cE算法在兩個數(shù)據(jù)集上都能保持較高的預(yù)測準(zhǔn)確度,誤差和KM2算法接近且維持在0.05以下,算法估計的穩(wěn)定性較好。

      圖8 UNSW-NB15類先驗概率誤差Figure 8 Class prior estimation error of UNSW-NB15

      圖9 NSL-KDD類先驗概率誤差Figure 9 Class prior estimation error of NSL-KDD

      在實驗過程中,TIcE算法存在較大的正誤差,這是由于TIcE算法通過求標(biāo)簽頻率的下界去估計真實標(biāo)簽頻率,這將導(dǎo)致估計的標(biāo)簽頻率比真實值低,因此估計的類先驗概率比真實值大,在 OCSVM-cE算法中,通過 OCSVM 算法尋找可信賴的正例子集,避免使用下界,提升了估計的準(zhǔn)確率。

      為了進一步檢驗OCSVM-cE算法估計的穩(wěn)定性,設(shè)置正例標(biāo)簽數(shù)據(jù)集樣本數(shù)為2000,在[0.1,0.9]區(qū)間內(nèi)隨機取值作為類先驗概率構(gòu)造無標(biāo)簽數(shù)據(jù)集,重復(fù)進行 100次實驗,計算類先驗概率估計值和真實值的誤差。

      圖10中展示了100次重復(fù)實驗的箱線圖,可以發(fā)現(xiàn)OCSVM-cE算法在KDD和UNSW-NB15數(shù)據(jù)集上的預(yù)計效果比 WADI數(shù)據(jù)集上更好,估計的誤差上四分?jǐn)?shù)小于 0.05,而 WADI數(shù)據(jù)集上估計的誤差的下四分位數(shù)為0.0407,中位數(shù)為0.0672,上四分位數(shù)為0.0884,僅存在兩個異常點,因此WADI的估計值比較穩(wěn)定,且誤差集中在[0.05,01]區(qū)間內(nèi),綜合三個數(shù)據(jù)集的估計結(jié)果,OCSVM-cE是一種穩(wěn)定的類先驗概率估計算法。

      圖10 類先驗概率誤差箱線圖Figure 10 Boxplot of class prior estimation error

      在 PU學(xué)習(xí)中,類先驗概率是重要的先驗知識,其估計的誤差將直接影響訓(xùn)練的模型的性能,通過實驗進一步探討類先驗概率估計誤差對模型性能的影響。實驗中設(shè)置無標(biāo)簽數(shù)據(jù)集真實類先驗概率為0.4,在[0,1]區(qū)間中以0.05為間距取不同的值作為類先驗概率的估計值進行實驗,結(jié)果如圖11所示。圖11是在 UNSW-NB15數(shù)據(jù)集下,設(shè)置正例標(biāo)簽樣本數(shù)為10000,無標(biāo)簽數(shù)據(jù)集中的反例樣本數(shù)為20000的實驗結(jié)果。其中橫坐標(biāo)為估計的類先驗概率,縱坐標(biāo)為F1-score??梢钥吹?當(dāng)估計的類先驗概率為0.4時,F1-score達到最大值,此時模型的性能是最好的,并且隨著估計的類先驗概率和真實類先驗概率誤差的增大,F1-score開始下降,當(dāng)估計值為0時所有無標(biāo)簽樣本被劃分為反例,當(dāng)估計值為1時,所有無標(biāo)簽樣本被劃分為正例。從F1-score分析,估計的類先驗概率誤差應(yīng)當(dāng)小于0.05可以保證模型具有較好的分類性能。

      圖11 不同類先驗概率估計值對F1-score的影響Figure 11 Influence of different estimated class prior to F1-score

      圖12顯示,在固定正例樣本數(shù)為 1000時,OCSVM-cE算法和 TIcE算法所需的時間與無標(biāo)簽樣本數(shù)成正相關(guān)。考慮到 OCSVM-cE中,訓(xùn)練OCSVM模型僅需要使用到正例樣本,因此可以認為OCSVM-cE算法更加貼合入侵檢測應(yīng)用場景,其過程中訓(xùn)練的 OCSVM 模型是可以復(fù)用的,在對新無標(biāo)簽數(shù)據(jù)集進行類先驗概率估計時,可以直接加載模型,來劃分可信賴的正例子集。

      圖12 UNSW-NB15數(shù)據(jù)集不同樣本量估計時間Figure 12 Estimation time of UNSW_NB15 with different sample size

      (3) PU學(xué)習(xí)性能分析

      對比的二分類模型的神經(jīng)網(wǎng)絡(luò)設(shè)置: DNN的設(shè)置與PU學(xué)習(xí)所用的DNN網(wǎng)絡(luò)模型一樣,模型中包含三個隱含層,第一層的神經(jīng)元數(shù)量為 256,第二層神經(jīng)元數(shù)量為 64,第三層神經(jīng)元數(shù)量為 16,但是在訓(xùn)練的過程中使用具有真實標(biāo)簽的正例和反例樣本進行訓(xùn)練; CNN的網(wǎng)絡(luò)結(jié)構(gòu)使用和文獻[46]相同的LeNet-5結(jié)構(gòu),輸入為32×32的圖像,第一層使用5×5的卷積,通過第一層后得到 6個大小為28×28的特征圖,并通過2×2的最大池化采樣,變化成14×14大小,第二個卷積層使用5×5的卷積,輸出16個大小為10×10的特征圖,然后通過2×2的最大池化采樣,變化成5×5,最后將所有圖像鋪平輸入到一個全連接層中,第一層神經(jīng)元數(shù)量為 120,第二層神經(jīng)元數(shù)量為 84,最后按照分類的類別,通過softmax函數(shù)進行輸出; RNN[47]中設(shè)置隱藏層節(jié)點數(shù)為80。

      實驗中設(shè)置正例標(biāo)簽樣本數(shù)為10000,無標(biāo)簽數(shù)據(jù)集中的反例樣本數(shù)為2000,類先驗概率為0.9,學(xué)習(xí)率為0.01,迭代次數(shù)為50。

      表6為PU學(xué)習(xí)與二分類模型對比結(jié)果,表中的對比實驗可以分為兩類: 同網(wǎng)絡(luò)結(jié)構(gòu)(DNN/CNN)下PU學(xué)習(xí)和二分類性能對比,PU學(xué)習(xí)和目前性能較好的二分類模型的對比。從實驗結(jié)果來看,同網(wǎng)絡(luò)結(jié)構(gòu)下PU學(xué)習(xí)的性能與二分類模型在查準(zhǔn)率上近似,但是召回率存在一定的差距,根據(jù)前文的分析,工控入侵檢測對于模型的查準(zhǔn)率要求更高,期望做到“寧可漏報也不誤報”,因此 PU 學(xué)習(xí)是適用于工控入侵檢測的,同時相較于目前先進的CNN-BiLSTM等模型,在查準(zhǔn)率上依舊可以維持較小的差距。同時 PU學(xué)習(xí)對比二分類模型,降低了訓(xùn)練數(shù)據(jù)的要求,只需要一類標(biāo)簽數(shù)據(jù),這可以有效的減少數(shù)據(jù)采集工作,同時僅通過正例數(shù)據(jù)和無標(biāo)簽數(shù)據(jù)進行訓(xùn)練,使得模型可以挖掘出未知類型的入侵。

      表6 PU學(xué)習(xí)與二分類模型對比結(jié)果Table 6 Comparison result of PU learning with binary classification

      表6中實驗對比了PU學(xué)習(xí)和二分類模型的性能,接下來將對比PU學(xué)習(xí)和異常檢測模型,分析同樣在僅有一類標(biāo)簽數(shù)據(jù)的條件下,二者性能差異。從表1中列舉的研究分析,目前用于入侵檢測的異常檢測模型主要為AE和OCSVM,其中AE是無監(jiān)督模型,AE包含兩個部分: Encoder(編碼器)和 Decoder(解碼器)。Encoder的作用是用來發(fā)現(xiàn)給定數(shù)據(jù)的壓縮表示,Decoder是用來重建原始輸入,通過計算重建輸入和原始輸入的誤差進行異常檢測,表1中文獻[13]、文獻[20]和文獻[25]在使用 AE模型上大同小異,因此本文選擇采用文獻[13]提出的模型①源碼下載地址: https://github.com/Battlingboy/AE-IDS進行對比實驗;同時,縱觀OCSVM進行入侵檢測的研究,其主要工作集中在特征工程上,本實驗中基于PU學(xué)習(xí)的特征重要度量進行特征選擇,結(jié)合 OCSVM 進行異常檢測。參數(shù)設(shè)置上,OCSVM設(shè)置誤差上界為0.1,AE的參數(shù)采用源碼中的默認設(shè)置。

      表7為PU學(xué)習(xí)與異常檢測模型的對比結(jié)果,表中的指標(biāo)顯示,特別地,可以觀察到OCSVM和AE在 WADI數(shù)據(jù)集上模型的性能較差,造成這種情況是因為測試數(shù)據(jù)不平衡,測試數(shù)據(jù)集中正例數(shù)據(jù)與反例數(shù)據(jù)的比約為 16︰1,這也說明了 OCSVM 和AE算法在處理不平衡數(shù)據(jù)時存在不足,而PU學(xué)習(xí)通過 focal loss提升了模型在不平衡數(shù)據(jù)下的性能,因此PU學(xué)習(xí)在查準(zhǔn)率和召回率上都有明顯提升,在三個數(shù)據(jù)集上,PU學(xué)習(xí)在查準(zhǔn)率上均表現(xiàn)明顯優(yōu)與AE和OCSVM。

      表7 PU學(xué)習(xí)與異常檢測模型對比結(jié)果Table 7 Comparison result of PU learning with anomaly detection

      結(jié)合表6和表7的結(jié)果,不難發(fā)現(xiàn),PU學(xué)習(xí)盡管在訓(xùn)練數(shù)據(jù)上同異常檢測算法類似,僅需要一類標(biāo)簽數(shù)據(jù),但是訓(xùn)練的模型的分類性能相較于異常檢測算法有較大的提升,特別地在工控場景下以WADI數(shù)據(jù)集為例,正常數(shù)據(jù)與異常數(shù)據(jù)之比高達16︰1,PU學(xué)習(xí)同樣可以維持較高的查準(zhǔn)率和查全率,同一些二分類算法相比,在查準(zhǔn)率上也僅有細微的差距,結(jié)合前文對于工控場景特點,PU學(xué)習(xí)是適合于工控場景異常檢測的。

      綜上所述,本文提出使用PU學(xué)習(xí)進行入侵檢測,PU學(xué)習(xí)是一種近似于異常檢測的算法,但在訓(xùn)練數(shù)據(jù)上需要標(biāo)簽正例數(shù)據(jù),且正例數(shù)據(jù)需要滿足SCAR條件,在此基礎(chǔ)上PU學(xué)習(xí)可以提供高查準(zhǔn)率高召回率的入侵檢測,其查準(zhǔn)率和召回率均較無監(jiān)督的異常檢測模型有明顯的提升,特別地,PU學(xué)習(xí)在查準(zhǔn)率上接近二分類模型。

      5 結(jié)論

      工業(yè)控制系統(tǒng)被廣泛應(yīng)用到核電、水利等國家重要基礎(chǔ)設(shè)施中,保障工業(yè)控制系統(tǒng)安全是十分重要的,入侵檢測系統(tǒng)是作為保障網(wǎng)絡(luò)安全的重要手段,也是工業(yè)控制系統(tǒng)安全防護的重要組成部分。本文中,針對工業(yè)控制系統(tǒng)入侵檢測,提出使用PU學(xué)習(xí)進行入侵檢測,以正常流量作為標(biāo)簽數(shù)據(jù)探測待檢測數(shù)據(jù)中的異常樣本; 針對工業(yè)控制系統(tǒng)數(shù)據(jù)維度高、關(guān)聯(lián)性強的特點,提出一種特征重要度計算方法用于特征選擇; 同時改進類先驗概率估計算法,提出 OCSVM-cE算法用于類先驗概率估計,提高了估計的穩(wěn)定性和準(zhǔn)確率。最后通過實驗驗證PU學(xué)習(xí)的有效性,同有監(jiān)督二分類模型相比,PU學(xué)習(xí)的查準(zhǔn)率維持在一個較高的水準(zhǔn),召回率略低; 同異常檢測模型對比,PU學(xué)習(xí)在準(zhǔn)確率和召回率上均有提升。PU學(xué)習(xí)盡管其避免了使用反例數(shù)據(jù),但是也對正例數(shù)據(jù)進行了更嚴(yán)格的限制: 正例樣本是完全隨機采樣的,即正例樣本的分布與無標(biāo)簽數(shù)據(jù)集中正例樣本的分布相同。這也是PU學(xué)習(xí)的不足,未來的工作可以圍繞如何在具有選擇偏差的數(shù)據(jù)集下進行PU學(xué)習(xí)。

      致 謝本文研究受國防基礎(chǔ)科研計劃(No.JCKY 2019608B001)資助。

      猜你喜歡
      正例標(biāo)簽分類
      小學(xué)生舉例表現(xiàn)與概念理解的相關(guān)性研究
      分類算一算
      基于概念形成的教學(xué)研究
      分類討論求坐標(biāo)
      無懼標(biāo)簽 Alfa Romeo Giulia 200HP
      車迷(2018年11期)2018-08-30 03:20:32
      數(shù)據(jù)分析中的分類討論
      不害怕撕掉標(biāo)簽的人,都活出了真正的漂亮
      海峽姐妹(2018年3期)2018-05-09 08:21:02
      教你一招:數(shù)的分類
      標(biāo)簽化傷害了誰
      高中數(shù)學(xué)概率教學(xué)中的誤區(qū)與應(yīng)對策略分析
      江川县| 泌阳县| 肇州县| 望都县| 太仆寺旗| 荣昌县| 六盘水市| 花莲县| 岳阳县| 柳江县| 铁力市| 房产| 新干县| 云林县| 唐山市| 开远市| 永济市| 固原市| 通化县| 南平市| 同江市| 肇庆市| 兰溪市| 建湖县| 江山市| 封开县| 安西县| 四会市| 独山县| 本溪市| 合川市| 鹿邑县| 大城县| 双鸭山市| 泽普县| 鄱阳县| 米林县| 广水市| 随州市| 黎川县| 浪卡子县|