張瑞 王曉菲



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