張瑞 王曉菲
摘要:為解決傳統(tǒng)軟件漏洞檢測方法檢測吞吐率低的問題,基于混合深度學(xué)習(xí)模型設(shè)計軟件漏洞檢測方法。通過確定軟件漏洞檢測關(guān)鍵點,提取軟件漏洞中的關(guān)鍵點,處理軟件漏洞檢測數(shù)據(jù),剔除與軟件漏洞關(guān)鍵點無關(guān)的檢測數(shù)據(jù),基于混合深度學(xué)習(xí)模型向量化表達(dá)軟件漏洞特征,運用混合深度學(xué)習(xí)模型的學(xué)習(xí)能力檢測軟件漏洞,實現(xiàn)基于混合深度學(xué)習(xí)模型軟件漏洞檢測。設(shè)計實例分析,結(jié)果表明,設(shè)計檢測方法檢測吞吐率均在3reqs/s以上,遠(yuǎn)高于對照組的檢測吞吐率,能夠解決傳統(tǒng)軟件漏洞檢測方法檢測吞吐率低的問題。
關(guān)鍵詞:混合深度學(xué)習(xí)模型;漏洞檢測;吞吐率
中圖分類號:TP343.7? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)18-0072-02
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
在信息化時代中,由于軟件的大范圍開發(fā),對開發(fā)者的專業(yè)性要求逐漸降低,導(dǎo)致開發(fā)者編寫的代碼越來越簡單化。這就意味著,軟件存在漏洞,其安全性急需提高[1]。在我國,但大多數(shù)對軟件漏洞檢測方法的研究都停留在通過關(guān)鍵設(shè)備檢測軟件異常,這種檢測方法在本質(zhì)上屬于靜態(tài)檢測,而軟件漏洞在本質(zhì)上屬于動態(tài)問題,因此傳統(tǒng)方法在實際應(yīng)用中存在檢測效率低的問題,具有很大的局限性。在后續(xù)的研究中,國外提出學(xué)習(xí)模型在軟件漏洞檢測方法的應(yīng)用,該方法一經(jīng)推出,立即受到相關(guān)部門的重點關(guān)注。但由于科學(xué)技術(shù)的不斷進(jìn)步,為學(xué)習(xí)模型的優(yōu)化設(shè)計提供了前所未有的機(jī)遇。因此,可以看出對軟件漏洞檢測方法的優(yōu)化設(shè)計是勢在必行的,混合深度學(xué)習(xí)模型可以提高數(shù)據(jù)處理效率。因此,本文將混合深度學(xué)習(xí)模型應(yīng)用在軟件漏洞檢測方法設(shè)計中,致力于從根本上提高軟件漏洞檢測效率。
1混合深度學(xué)習(xí)模型
混合深度學(xué)習(xí)模型在本質(zhì)上是一種前饋BP算法,可以通過卷積層以及池化層的人工神經(jīng)元響應(yīng)在覆蓋范圍內(nèi)的所有單元?;旌仙疃葘W(xué)習(xí)模型以其對數(shù)據(jù)以及圖像出色的處理能力,能夠廣泛應(yīng)用于各個行業(yè)中,并取得良好的應(yīng)用效果[2]。本文基于混合深度學(xué)習(xí)模型設(shè)計型的軟件漏洞檢測方法具體內(nèi)容,如下文所述。
2軟件漏洞檢測方法
2.1確定軟件漏洞檢測關(guān)鍵點
在軟件漏洞檢測過程中,必須預(yù)先確定軟件漏洞檢測點,以此為依據(jù),展開智能檢測[3]。本文采用基于混合深度學(xué)習(xí)模型中對軟件的程序切片,提取軟件漏洞檢測點,軟件漏洞檢測點在直線中的位置,如表1所示。
結(jié)合表1所示,擬合軟件漏洞檢測點在直線中的位置,提取軟件漏洞中的關(guān)鍵點,在明確軟件漏洞中關(guān)鍵點的前提下,執(zhí)行軟件漏洞檢測數(shù)據(jù)處理。
2.2軟件漏洞檢測數(shù)據(jù)處理
以上文得出的軟件漏洞檢測關(guān)鍵點為切入點,提取軟件漏洞檢測數(shù)據(jù)。并將字符型軟件漏洞檢測數(shù)據(jù)轉(zhuǎn)化為數(shù)值型軟件漏洞檢測數(shù)據(jù)[4]。此過程,可通過公式可表現(xiàn)為:
[f:A→B]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(1)
式(1)中,[f]表示[A]與[B]之間的映射關(guān)系;[A]為原始字符型軟件漏洞數(shù)據(jù);[B]為二進(jìn)制數(shù)據(jù)。由于軟件漏洞檢測中在收斂速度和精度方面多存在問題,利用混合深度學(xué)習(xí)模型,對數(shù)據(jù)就行歸一化處理:
[X=P-MinMax-Min]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(2)
在公式(2)中,[X]表示歸一化處理后的值;[P]表示原始軟件漏洞檢測數(shù)據(jù)權(quán)重;[Max]表示基于混合深度學(xué)習(xí)模型歸一化的最大值;[Min]表示基于混合深度學(xué)習(xí)模型歸一化的最小值。在通過公式(2),完成軟件漏洞檢測數(shù)據(jù)歸一化處理。在此基礎(chǔ)上,本文采用基于混合深度學(xué)習(xí)模型7×7的卷積核,分析軟件漏洞檢測數(shù)據(jù)。首先,將軟件漏洞檢測數(shù)據(jù)中的檢測點作為一個獨立的信號,提取信號中的與軟件漏洞關(guān)鍵點相關(guān)的數(shù)據(jù)[5]。此過程可以通過計算的方式加以表達(dá),設(shè)目標(biāo)函數(shù)為[v],可得公式(3)。
[v=Kd/Xt]? ? ? ? ? ? ? ? ? ? ? ? ? ? (3)
公式(1)中,[K]指的是軟件漏洞檢測數(shù)據(jù)總字符長度;[d]指的是軟件漏洞檢測數(shù)據(jù)集大小;[t]指的是軟件漏洞檢測數(shù)據(jù)與軟件漏洞關(guān)鍵點的關(guān)聯(lián)程度。通過公式(1),提取信號中的與軟件漏洞關(guān)鍵點相關(guān)的數(shù)據(jù),導(dǎo)入數(shù)據(jù)處理計算機(jī),剔除與軟件漏洞關(guān)鍵點無關(guān)的軟件漏洞檢測數(shù)據(jù),保證軟件漏洞檢測數(shù)據(jù)處理精度。
2.3向量化表達(dá)軟件漏洞特征
在完成軟件漏洞檢測數(shù)據(jù)處理的基礎(chǔ)上,基于混合深度學(xué)習(xí)模型將軟件漏洞檢測數(shù)據(jù)嵌入到池化層和全連接層之間,向量化處理軟件漏洞特征,并保證軟件代碼的完整度不被破壞[6]。
為基于混合深度學(xué)習(xí)模型向量化處理漏洞特征代碼,在此基礎(chǔ)上,通過編寫 python 腳本,實現(xiàn)對軟件漏洞特征向量的矩陣化,詞向量的個數(shù)作為橫坐標(biāo),詞向量的維數(shù)作為縱坐標(biāo)。特征矩陣大小統(tǒng)一處理為 50×50,詞向量個數(shù)不足50個的用0補(bǔ)齊。以此,完成基于混合深度學(xué)習(xí)模型向量化表達(dá)軟件漏洞特征。
2.4實現(xiàn)基于混合深度學(xué)習(xí)模型軟件漏洞檢測
基于混合深度學(xué)習(xí)模型向量化表達(dá)軟件漏洞特征后,可以將軟件漏洞檢測的過程可以看作對一個深度學(xué)習(xí)結(jié)構(gòu)權(quán)值參數(shù)的初始化訓(xùn)練過程[7]。為避免導(dǎo)致訓(xùn)練時間過長,使用混合深度學(xué)習(xí)模型在進(jìn)行軟件漏洞檢測前,應(yīng)通過數(shù)次訓(xùn)練,增強(qiáng)混合深度學(xué)習(xí)模型的學(xué)習(xí)能力,便于模型能夠通過多次記憶提高自身學(xué)習(xí)能力,掌握更多的軟件漏洞檢測方法[8]。利用強(qiáng)分類器針對大量軟件漏洞特征進(jìn)行分類,幫助訓(xùn)練后的深度學(xué)習(xí)分類器能夠快速地對軟件漏洞特征做出詳盡的表達(dá),將表達(dá)結(jié)果作為檢測軟件漏洞的參照標(biāo)準(zhǔn)。設(shè)軟件漏洞檢測方程式為[x],可得公式(4)所示。
[x=12λv2]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (4)
公式(4)中,[λ]指的是軟件漏洞檢測正則化率。得到公式(4)后,用混合深度學(xué)習(xí)模型判斷軟件漏洞的屬性,以此實現(xiàn)軟件漏洞檢測。
3實例分析
3.1實驗準(zhǔn)備
構(gòu)建實例分析,硬件設(shè)施包括:型號為TYR3583589的上位機(jī)。此次實驗環(huán)境參數(shù)設(shè)置如下:任務(wù)最大迭代次數(shù)20、任務(wù)布置器2個、虛擬主機(jī)資源數(shù)量860、任務(wù)資源消耗量30、網(wǎng)絡(luò)權(quán)重系數(shù)0.3575。
實驗對象選取Kerdgerly軟件,在保證實驗具有有效性的前提下,選擇同一個測試指標(biāo)進(jìn)行,實驗的內(nèi)容為測試本文方法與傳統(tǒng)方法之間的檢測吞吐率。分別使用本文方法與傳統(tǒng)方法檢測Kerdgerly軟件漏洞,設(shè)置迭代次數(shù)為20,利用Heapchyer軟件記錄測得的檢測吞吐率,分別設(shè)置為實驗組和對照組。
3.2實驗結(jié)果分析與結(jié)論
采集10組實驗數(shù)據(jù),并整理,繪制為實驗結(jié)果圖,如圖1所示。
通過圖1可得出如下的結(jié)論:本文檢測方法檢測吞吐率均在3reqs/s以上,遠(yuǎn)高于對照組的檢測吞吐率,對于Kerdgerly軟件漏洞檢測效率更高。實驗表明,設(shè)計的方法具有實用性,可以廣泛應(yīng)用于軟件漏洞方面。
4結(jié)束語
通過基于混合深度學(xué)習(xí)模型的軟件漏洞檢測方法研究,來解決傳統(tǒng)方法中軟件漏洞檢測中的問題,通過理論分析保證了理論可行性,并進(jìn)行對比試驗,驗證了設(shè)計方法的實用性。在后期的發(fā)展中,應(yīng)加大混合深度學(xué)習(xí)模型在軟件漏洞檢測方法中的應(yīng)用力度。
參考文獻(xiàn):
[1] 李元誠,崔亞奇,呂俊峰,等.開源軟件漏洞檢測的混合深度學(xué)習(xí)方法[J].計算機(jī)工程與應(yīng)用,2019,55(11):52-59.
[2] 杜鵬,丁世飛.基于混合詞向量深度學(xué)習(xí)模型的DGA域名檢測方法[J].計算機(jī)研究與發(fā)展,2020,57(2):433-446.
[3] 李傳煌,吳艷,錢正哲,等.SDN下基于深度學(xué)習(xí)混合模型的DDoS攻擊檢測與防御[J].通信學(xué)報,2018,39(7):176-187.
[4] 李元誠,黃戎,來風(fēng)剛,等.基于深度聚類的開源軟件漏洞檢測方法[J].計算機(jī)應(yīng)用研究,2020,37(4):1107-1110,1114.
[5] 夏之陽,易平,楊濤.基于神經(jīng)網(wǎng)絡(luò)與代碼相似性的靜態(tài)漏洞檢測[J].計算機(jī)工程,2019,45(12):141-146.
[6] 張成彬,趙慧,曹宗鈺.基于深度學(xué)習(xí)的車身網(wǎng)絡(luò)KWP2000協(xié)議漏洞挖掘[J].山東大學(xué)學(xué)報(工學(xué)版),2019,49(2):17-22.
[7] 趙磊,金銀山,劉勤亮,等.基于深度學(xué)習(xí)的高結(jié)構(gòu)化惡意樣本的檢測方法[J].武漢大學(xué)學(xué)報(理學(xué)版),2019,65(6):571-575.
[8] 張杰,黃仁書,林金霞.基于Deep Learning算法的漏洞掃描技術(shù)研究[J].黑河學(xué)院學(xué)報,2018,9(7):209-210.
【通聯(lián)編輯:張薇】