您的位置: 首頁(yè) >互聯(lián)網(wǎng) >

使用機(jī)器學(xué)習(xí)來(lái)檢測(cè)軟件漏洞

2019-06-13 16:21:36 編輯: 來(lái)源:
導(dǎo)讀 研發(fā)公司Draper和波士頓大學(xué)的一組研究人員利用機(jī)器學(xué)習(xí)算法開發(fā)了一個(gè)新的大規(guī)模漏洞檢測(cè)系統(tǒng),可以幫助您更快,更有效地發(fā)現(xiàn)軟件漏洞。黑

研發(fā)公司Draper和波士頓大學(xué)的一組研究人員利用機(jī)器學(xué)習(xí)算法開發(fā)了一個(gè)新的大規(guī)模漏洞檢測(cè)系統(tǒng),可以幫助您更快,更有效地發(fā)現(xiàn)軟件漏洞。

黑客和惡意用戶不斷提出破壞IT系統(tǒng)和應(yīng)用程序的新方法,通常是利用軟件安全漏洞。軟件漏洞是由程序員制作的一個(gè)小錯(cuò)誤,他們開發(fā)了一個(gè)可以快速傳播的系統(tǒng),特別是通過(guò)開源軟件或通過(guò)代碼重用和調(diào)整。

每年都有數(shù)千個(gè)這些漏洞被公開報(bào)告給常見漏洞和披露數(shù)據(jù)庫(kù)(CVE),而其他許多漏洞則由開發(fā)人員在內(nèi)部發(fā)現(xiàn)和修補(bǔ)。如果沒(méi)有充分解決這些漏洞,這些漏洞可能被攻擊者利用,通常具有破壞性影響,正如許多最近引人注目的漏洞中所證明的那樣,例如Heartbleed漏洞和WannaCry ramsomware cryptoworm。

通常,用于分析程序的現(xiàn)有工具只能檢測(cè)基于預(yù)定義規(guī)則的有限數(shù)量的潛在錯(cuò)誤。但是,開源存儲(chǔ)庫(kù)的廣泛使用為開發(fā)可能揭示代碼漏洞模式的技術(shù)開辟了新的可能性。

來(lái)自Draper和Boston的研究人員開發(fā)了一種新的漏洞檢測(cè)工具,該工具使用機(jī)器學(xué)習(xí)來(lái)自動(dòng)檢測(cè)C / C ++ 源代碼中的漏洞,這已經(jīng)顯示出有希望的結(jié)果。

該團(tuán)隊(duì)編譯了一個(gè)包含數(shù)百萬(wàn)個(gè)開源函數(shù)的大型數(shù)據(jù)集,并使用三個(gè)靜態(tài)(運(yùn)行前)分析工具(即Clang,Cppcheck和Flawfinder)對(duì)其進(jìn)行標(biāo)記,這些工具旨在識(shí)別潛在的漏洞利用。他們的數(shù)據(jù)集包括從SATEIV Juliet Test Suite,Debian Linux發(fā)行版和GitHub上的公共Git存儲(chǔ)庫(kù)中提取的數(shù)百萬(wàn)個(gè)C和C ++代碼的功能級(jí)示例。

“使用這些數(shù)據(jù)集,我們開發(fā)了一種基于深度特征表示學(xué)習(xí)的快速且可擴(kuò)展的漏洞檢測(cè)工具,可以直接解釋詞匯源代碼,”研究人員在他們的論文中寫道。

由于編程語(yǔ)言在某些方面類似于人類語(yǔ)言,研究人員設(shè)計(jì)了一種漏洞檢測(cè)技術(shù),該技術(shù)使用自然語(yǔ)言處理(NLP),這是一種允許計(jì)算機(jī)理解和解釋人類語(yǔ)言的AI策略。

“我們利用類似于用于句子情感分類的特征提取方法,使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)和遞歸神經(jīng)網(wǎng)絡(luò)(RNN)進(jìn)行功能級(jí)源漏洞分類,”研究人員在他們的論文中解釋道。

他們將NLP與隨機(jī)森林(RM)結(jié)合起來(lái); 一種強(qiáng)大的算法,可以從訓(xùn)練數(shù)據(jù)集的隨機(jī)選擇的子集創(chuàng)建決策樹集合,然后將它們合并在一起,通??梢詫?shí)現(xiàn)更準(zhǔn)確的預(yù)測(cè)。

研究人員在真實(shí)軟件包和NIST STATE IV基準(zhǔn)數(shù)據(jù)集上測(cè)試了他們的工具。

“我們的研究結(jié)果表明,對(duì)源代碼進(jìn)行深入的特征表示學(xué)習(xí)是一種有前途的自動(dòng)化軟件漏洞檢測(cè)方法,”他們寫道。“我們應(yīng)用了各種受自然語(yǔ)言領(lǐng)域分類問(wèn)題啟發(fā)的ML技術(shù),根據(jù)我們的應(yīng)用對(duì)其進(jìn)行了微調(diào),并使用通過(guò)卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的特征并使用集合樹算法進(jìn)行分類,獲得了最佳的整體結(jié)果。”

到目前為止,他們的工作主要集中在C / C ++代碼上,但他們的方法也可以應(yīng)用于任何其他編程語(yǔ)言。他們特別選擇創(chuàng)建一個(gè)自定義的C / C ++詞法分析器,因?yàn)檫@將產(chǎn)生一個(gè)簡(jiǎn)單而通用的函數(shù)源代碼表示,這是機(jī)器學(xué)習(xí)培訓(xùn)的理想選擇。


免責(zé)聲明:本文由用戶上傳,如有侵權(quán)請(qǐng)聯(lián)系刪除!

最新文章

精彩推薦

圖文推薦

點(diǎn)擊排行

2016-2022 All Rights Reserved.平安財(cái)經(jīng)網(wǎng).復(fù)制必究 聯(lián)系QQ280 715 8082   備案號(hào):閩ICP備19027007號(hào)-6

本站除標(biāo)明“本站原創(chuàng)”外所有信息均轉(zhuǎn)載自互聯(lián)網(wǎng) 版權(quán)歸原作者所有。