李旭陽,牛 鑫,胡軍星,袁俊鋒,孟 晗
(1. 國(guó)網(wǎng)河南省電力公司 經(jīng)濟(jì)技術(shù)研究院,河南 鄭州 450000;2.大河南九域騰龍信息工程有限公司,河南 鄭州 450000)
隨著信息通信及互聯(lián)網(wǎng)技術(shù)的發(fā)展,智能電網(wǎng)逐步發(fā)展起來,并給電力系統(tǒng)帶來了巨大變革。智能電網(wǎng)是一種新型的電力系統(tǒng),它能夠監(jiān)測(cè)分析客戶、電網(wǎng)設(shè)備及網(wǎng)絡(luò)節(jié)點(diǎn)上電力流與信息流,控制電力流與信息流雙向流動(dòng),實(shí)現(xiàn)電網(wǎng)自主優(yōu)化運(yùn)行。
智能電網(wǎng)是建立在集成的、高速雙向通信網(wǎng)絡(luò)的基礎(chǔ)上,通過先進(jìn)的傳感和測(cè)量技術(shù)、先進(jìn)的設(shè)備技術(shù)、先進(jìn)的控制方法以及先進(jìn)的決策支持系統(tǒng)技術(shù),實(shí)現(xiàn)電網(wǎng)的可靠、安全、經(jīng)濟(jì)、高效、環(huán)境友好和使用安全的目標(biāo),其主要特征包括自愈、激勵(lì)和包括用戶、抵御攻擊、提供滿足21世紀(jì)用戶需求的電能質(zhì)量、容許各種不同發(fā)電形式的接入、啟動(dòng)電力市場(chǎng)以及資產(chǎn)的優(yōu)化高效運(yùn)行[1-2]。
智能電網(wǎng)給人們生活帶來巨大的便利的同時(shí),也面臨著一些安全威脅,特別是惡意軟件威脅。在智能電網(wǎng)中,主機(jī)系統(tǒng)安全關(guān)系著信息系統(tǒng)的正確性,攻擊者通過向主機(jī)植入惡意軟件,以達(dá)到破壞電力監(jiān)控系統(tǒng)或篡改、偽造信息流的目的,進(jìn)而影響電力系統(tǒng)的穩(wěn)定性。常見的基于惡意軟件的攻擊類型包括C&C、APT等。
為了能有效抵御惡意軟件威脅,常通過部署惡意軟件檢測(cè)系統(tǒng)對(duì)智能電網(wǎng)主機(jī)操作系統(tǒng)進(jìn)行掃描和檢測(cè)。早期惡意軟件檢測(cè)方法常通過提取惡意軟件可執(zhí)行程序的Hash碼對(duì)其進(jìn)行唯一標(biāo)志,并提取可采集的所有已知惡意軟件的Hash碼構(gòu)建惡意軟件Hash碼庫(kù),通過匹配待檢測(cè)樣本與庫(kù)中的Hash碼以判別待檢測(cè)樣本是否是惡意軟件。然而,隨著惡意軟件未知變種的泛濫(惡意軟件變種的Hash碼已發(fā)生改變),傳統(tǒng)惡意軟件檢測(cè)方法已不再適用于檢測(cè)未知變種。近幾年學(xué)術(shù)界一些學(xué)者提出基于機(jī)器學(xué)習(xí)的檢測(cè)方法以應(yīng)對(duì)惡意軟件未知變種威脅,然而受限于單一訓(xùn)練數(shù)據(jù)集和單一機(jī)器學(xué)習(xí)方法的局限性,基于機(jī)器學(xué)習(xí)的檢測(cè)方法的魯棒性存在一定不足。
針對(duì)上述問題,提出一種基于集成學(xué)習(xí)的惡意軟件未知變種檢測(cè)方法,采用集成學(xué)習(xí)方法,融合由多個(gè)數(shù)據(jù)集和多種機(jī)器學(xué)習(xí)方法訓(xùn)練得到的模型,以提升惡意軟件未知變種檢測(cè)的準(zhǔn)確性和魯棒性。研究的貢獻(xiàn)包括:1)提出一種基于集成學(xué)習(xí)的惡意軟件檢測(cè)方法,集成多源數(shù)據(jù)和多種機(jī)器學(xué)習(xí)方法實(shí)現(xiàn)惡意軟件未知變種檢測(cè);2)提出一種基于Logistic的集成學(xué)習(xí)方法,集成由支持向量機(jī)和卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到的單一檢測(cè)模型;3)實(shí)驗(yàn)結(jié)果表明,提出的基于集成學(xué)習(xí)的惡意軟件未知變種檢測(cè)方法的精度約為93%,召回率約為97%。
隨著機(jī)器學(xué)習(xí)等人工智能技術(shù)的發(fā)展,為檢測(cè)惡意軟件未知變種提供新的技術(shù)方法支撐。近年來,一些學(xué)者紛紛提出基于機(jī)器學(xué)習(xí)的惡意軟件未知變種檢測(cè)方法,通過提取惡意軟件變種共性語義特征,并采用機(jī)器學(xué)習(xí)算法,如支持向量機(jī)[3]、卷積神經(jīng)網(wǎng)絡(luò)[4]、深度信念網(wǎng)絡(luò)[5]等,訓(xùn)練惡意軟件變種檢測(cè)模型以判別未知樣本是否為惡意軟件。
McLaughlin等人[6]對(duì)惡意軟件操作碼n-gram模型進(jìn)行分布式表征,并采用卷積神經(jīng)網(wǎng)絡(luò)自適應(yīng)修正分布式表征的連接權(quán)值,以訓(xùn)練惡意軟件檢測(cè)模型。Zhang等人[7]通過n-gram模型和統(tǒng)計(jì)表征表示惡意軟件操作碼序列和API調(diào)用,分別采用卷積神經(jīng)網(wǎng)絡(luò)和多層感知器提取惡意軟件操作碼特征和API調(diào)用特征,通過合并操作碼特征和API調(diào)用特征并采用分類器訓(xùn)練惡意軟件檢測(cè)模型。Zhang等人[8]通過計(jì)算操作碼bi-gram邊緣概率矩陣,并以此構(gòu)建操作碼圖像,最后采用K近鄰方法通過比較操作碼圖像的相似性來檢測(cè)惡意軟件。Yan等人[9]提取若干段等長(zhǎng)的惡意軟件操作碼序列以構(gòu)建等寬二維操作碼圖像,并以此為特征,通過采用卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練惡意軟件檢測(cè)模型。Cesare等人[10]基于操作碼控制流圖表示惡意軟件,并采用EditString算法比較待檢測(cè)的未知樣本與已知惡意樣本間的相似性來判別未知樣本是否為惡意樣本。Joshua等人[11]采用基于bi-gram模型提取惡意軟件字節(jié)碼特征,并采用深度神經(jīng)網(wǎng)絡(luò)算法訓(xùn)練惡意軟件檢測(cè)模型。陳志鋒等人[12]采用動(dòng)態(tài)分析技術(shù),提出了一種基于數(shù)據(jù)特征的內(nèi)核惡意軟件檢測(cè)方法。該方法首先通過分析內(nèi)核數(shù)據(jù)生命周期內(nèi)的訪問行為以構(gòu)建內(nèi)核數(shù)據(jù)對(duì)象訪問模型,并利用擴(kuò)展頁表監(jiān)控內(nèi)核對(duì)象訪問操作,提取惡意軟件內(nèi)核數(shù)據(jù)特征,最后基于該特征進(jìn)行檢測(cè)。Huang等人[13]通過分析用戶接口與程序頂層函數(shù)之間的交互,基于相似度方法檢測(cè)隱藏的惡意行為。Bai等人[14]通過分析惡意軟件運(yùn)行時(shí)執(zhí)行路徑中觸發(fā)的惡意行為,提取行為特征并采用機(jī)器學(xué)習(xí)分類算法訓(xùn)練惡意軟件檢測(cè)模型。
盡管基于機(jī)器學(xué)習(xí)的惡意軟件未知變種檢測(cè)方法已取得一定進(jìn)展,但仍存在一些問題,主要體現(xiàn)在:1)訓(xùn)練樣本有限,導(dǎo)致模型覆蓋的特征分布不全面;2)模型擬合性能有限,利用有限的數(shù)據(jù)樣本進(jìn)行訓(xùn)練,容易產(chǎn)生過擬合問題。因此,提出一種基于集成學(xué)習(xí)的惡意軟件未知變種檢測(cè)方法,采用集成學(xué)習(xí)方法進(jìn)一步提升惡意軟件未知變種檢測(cè)的準(zhǔn)確性和魯棒性。
集成學(xué)習(xí)方法主要分為bagging和boosting兩類,bagging方法通過對(duì)若干子模型的結(jié)果進(jìn)行加權(quán)平均以綜合多模型的決策結(jié)果;boosting方法通過利用上一模型的錯(cuò)誤分類樣本重新訓(xùn)練子模型并對(duì)所有子模型的結(jié)果進(jìn)行加權(quán)平均以綜合多模型的決策結(jié)果,如Adaboost[15]、隨機(jī)森林[16]等。
基于機(jī)器學(xué)習(xí)的惡意軟件未知變種檢測(cè)方法利用有限的已標(biāo)記的惡意/良性樣本訓(xùn)練檢測(cè)模型,以檢測(cè)惡意軟件未知變種。然而,一方面受限于有限的訓(xùn)練樣本及其特征分布,另一方面受限于單一模型擬合性能的局限性,惡意軟件未知變種檢測(cè)模型的準(zhǔn)確性有待進(jìn)一步提升,特別在開放環(huán)境下現(xiàn)有惡意軟件未知變種檢測(cè)模型的魯棒性存在明顯不足,在檢測(cè)多來源樣本數(shù)據(jù)時(shí),檢測(cè)結(jié)果存在較嚴(yán)重的偏斜,制約模型實(shí)際應(yīng)用效果。
筆者提出一種基于集成學(xué)習(xí)的惡意軟件未知變種檢測(cè)方法,采用bi-gram模型提取惡意/良性軟件特征,并采用2種機(jī)器學(xué)習(xí)方法分別利用3個(gè)來源不同的樣本數(shù)據(jù)集進(jìn)行訓(xùn)練,構(gòu)建6個(gè)惡意軟件未知變種單一檢測(cè)模型,并基于bagging策略,設(shè)計(jì)一種Logistic集成學(xué)習(xí)方法通過集成6個(gè)單一模型最終形成統(tǒng)一的檢測(cè)模型,進(jìn)一步提升惡意軟件未知變種檢測(cè)的準(zhǔn)確性和魯棒性,并利用該集成模型對(duì)未知惡意軟件變種進(jìn)行檢測(cè),如圖1所示。
圖1 總體方案Fig. 1 The architecture of approach
筆者采用IDA Pro提取惡意/良性軟件的操作碼序列,并采用bi-gram模型通過計(jì)算相鄰兩兩操作之間的局部語義關(guān)系。令操作碼序列OP={op1,op2,…,opn},其中opi表示序列中第個(gè)i操作碼,采用bi-gram模型提取操作碼序列中相鄰兩操作碼之間的概率以表示惡意/良性代碼局部語義bi-gram={
基于上述提取的惡意/良性操作碼序列局部語義特征p(bi-gram),分別采用支持向量機(jī)(SVM, support vector machine)和卷積神經(jīng)網(wǎng)絡(luò)(CNN, convolution neural network)2種機(jī)器學(xué)習(xí)算法,利用來源于VxHeaven、Microsoft和企業(yè)云安全中心的樣本數(shù)據(jù)集,交叉訓(xùn)練6種惡意軟件檢測(cè)模型:SVMvxheaven、SVMMicrosoft、SVMsecurity_center、CNNvxheaven、CNNMicrosoft、CNNsecurity_center。其中支持向量機(jī)算法核函數(shù)采用線性核,訓(xùn)練一組權(quán)重W={w1,w2,…,wn},使得W={w1,w2,…,wn}滿足公式(1),p(bi-gram)malw表示惡意軟件特征,p(bi-gram)benign表示良性代碼特征。卷積神經(jīng)網(wǎng)絡(luò)采用損失函數(shù)為最小平方誤差,如公式(2)所示,通過訓(xùn)練一組權(quán)重W={w1,w2,…,wn},使得損失函數(shù)最小。
W·p(bi-gram)malw+b≥1或W·p(bi-gram)benign+b≤-1,
(1)
Loss=(h(W·p(hi-gram))-y)2。
(2)
基于上述6種惡意軟件檢測(cè)模型,基于bagging策略,設(shè)計(jì)一種Logistic集成學(xué)習(xí)方法集成6個(gè)模型。令6個(gè)模型的判別結(jié)果(輸出的置信度向量)為X={x1,x2,…,x6},并為每個(gè)模型分別分配一個(gè)隨機(jī)初始化的決策權(quán)重W′={w1′,w2′,…,w6′},根據(jù)樣本標(biāo)簽y,基于Logistic函數(shù)進(jìn)行有監(jiān)督訓(xùn)練,如公式(3)所示,自適應(yīng)優(yōu)化每個(gè)模型的決策權(quán)重。每個(gè)模型輸出的置信度作為L(zhǎng)ogistic函數(shù)的輸入,Logistic函數(shù)的權(quán)重采用隨機(jī)初始化,利用樣本標(biāo)簽進(jìn)行有監(jiān)督訓(xùn)練,經(jīng)過若干次迭代后決策權(quán)重收斂,此時(shí)Logistic函數(shù)中的權(quán)重即為每個(gè)模型的決策權(quán)重。當(dāng)決策權(quán)重收斂時(shí),6個(gè)模型通過該logistic函數(shù)集成為統(tǒng)一的判別模型。其中損失函數(shù)采用交叉熵,如公式(4)所示,采用梯度下降法進(jìn)行訓(xùn)練,權(quán)重W′根據(jù)公式(5)進(jìn)行迭代更新。
(3)
Loss=-(y·h(W′·X)+(1-y)·(1-h(W′·X))),
(4)
(5)
基于上述統(tǒng)一的判別模型對(duì)未知樣本進(jìn)行檢測(cè),通過提取未知樣本的操作碼bi-gram特征輸入至模型中,模型對(duì)未知樣本的bi-gram特征進(jìn)行計(jì)算得到惡意/良性分類的置信度,如果惡意類別的置信度大于良性類別的置信度,則說明未知樣本屬于惡意樣本,否則則屬于良性樣本。
所有實(shí)驗(yàn)均在相同計(jì)算機(jī)軟硬件環(huán)境和配置中進(jìn)行,其中CPU為Intel i5-3470 @ 3.20 GHz,內(nèi)存容量為16.0 GB,操作系統(tǒng)為Ubuntu 16.04,編譯器采用Eclipse 3.5/JRE 1.8。
實(shí)驗(yàn)所采用的惡意軟件數(shù)據(jù)集來源于VxHeaven、Microsoft和企業(yè)云安全中心,其中VxHeaven包括17 000余個(gè)惡意樣本,Microsoft包括5 000余個(gè)惡意樣本,企業(yè)云安全中心收集4 000余個(gè)惡意樣本,包含6類樣本家族,其數(shù)量分布如表1所示。訓(xùn)練階段和測(cè)試階段均采用了惡意樣本和良性樣本,其中3個(gè)惡意樣本數(shù)據(jù)集中的50%樣本用于分別訓(xùn)練單一檢測(cè)模型,合并3個(gè)惡意樣本數(shù)據(jù)集中剩下50%樣本形成新的數(shù)據(jù)集用于模型測(cè)試。良性樣本從若干用戶計(jì)算機(jī)采集,約11 000余個(gè),其中隨機(jī)選取50%的良性樣本用于訓(xùn)練單一檢測(cè)模型,剩余50%的良性樣本用于模型測(cè)試。
表1 惡意軟件數(shù)據(jù)集Table 1
所有實(shí)驗(yàn)均采取K-折交驗(yàn)證法,其中K=10。評(píng)估指標(biāo)包括精度PRE、召回率REC和F1值。精度表示模型判別結(jié)果中正確結(jié)果的比例,如公式(6)所示,召回率表示惡意樣本中被檢測(cè)出來的比例,如公式(7)所示,F(xiàn)1值表示精度和召回率重要程度相同時(shí)的準(zhǔn)確性,如公式(8)所示。其中,TP(true positive)表示驗(yàn)證集中被模型正確識(shí)別的高風(fēng)險(xiǎn)網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量,F(xiàn)P(false positive)表示驗(yàn)證集中被模型錯(cuò)誤識(shí)別的高風(fēng)險(xiǎn)網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量,TN(true negative)表示驗(yàn)證集中被模型正確識(shí)別的低風(fēng)險(xiǎn)網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量,F(xiàn)N(false negative)表示驗(yàn)證集中被模型錯(cuò)誤識(shí)別的低風(fēng)險(xiǎn)網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量。根據(jù)TP、FP、TN、FN,計(jì)算準(zhǔn)確度精度(PRE)、召回率(REC)和F1值。
(6)
(7)
(8)
通過測(cè)試集樣本對(duì)比分析多個(gè)單一檢測(cè)模型以及集成模型的精度、召回率和F1值,從而驗(yàn)證集成模型相較于單一模型在準(zhǔn)確性方面有顯著優(yōu)勢(shì),實(shí)驗(yàn)結(jié)果如圖2所示,結(jié)果表明:
圖2 準(zhǔn)確性對(duì)比實(shí)驗(yàn)結(jié)果Fig. 2 The accuracy comparison results
1)對(duì)比分析采用相同機(jī)器學(xué)習(xí)算法、不同訓(xùn)練集的單一檢測(cè)模型,單一檢測(cè)模型的準(zhǔn)確性受有限訓(xùn)練樣本的影響較大,因此在準(zhǔn)確性方面,利用不同數(shù)據(jù)集訓(xùn)練的模型準(zhǔn)確性存在一定差異。
2)對(duì)比分析采用相同訓(xùn)練集、不同機(jī)器學(xué)習(xí)算法的單一檢測(cè)模型,卷積神經(jīng)網(wǎng)絡(luò)的擬合性能相較于支持向量機(jī)的擬合性能更好。
3)對(duì)比分析集成模型和單一檢測(cè)模型,集成模型的精度有一定提升,召回率呈現(xiàn)顯著提升,說明集成模型的魯棒性明顯優(yōu)于單一檢測(cè)模型。
對(duì)比分析集成模型和單一檢測(cè)模型的檢測(cè)時(shí)間開銷,如圖3所示,結(jié)果表明:集成模型的檢測(cè)時(shí)間略高于單一卷積神經(jīng)網(wǎng)絡(luò)模型,雖然單一支持向量機(jī)模型的檢測(cè)時(shí)間開銷相較單一卷積神經(jīng)網(wǎng)絡(luò)模型和集成模型,但在精度和召回率等指標(biāo)方面存在明顯不足。
圖3 檢測(cè)時(shí)間對(duì)比實(shí)驗(yàn)結(jié)果Fig. 3 The time cost comparison results
提出一種基于集成學(xué)習(xí)的惡意軟件未知變種檢測(cè)方法。該方法實(shí)現(xiàn)多種惡意軟件未知變種檢測(cè)模型的集成,以進(jìn)一步提升惡意軟件未知變種的檢測(cè)性能。基于集成學(xué)習(xí)的惡意軟件未知變種檢測(cè)方法可以綜合多個(gè)檢測(cè)模型的性能,覆蓋更多的樣本數(shù)據(jù)特征,以改善單一檢測(cè)模型樣本特征和收斂性能的局限性。最后對(duì)提出的模型集成方法進(jìn)行了實(shí)驗(yàn)分析,結(jié)果表明方法相比于單一檢測(cè)模型,集成模型可以達(dá)到更高的精度、召回率和F1值。