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

使用機器學習來檢測軟件漏洞

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

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

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

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

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

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

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

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

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

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

他們將NLP與隨機森林(RM)結(jié)合起來; 一種強大的算法,可以從訓練數(shù)據(jù)集的隨機選擇的子集創(chuàng)建決策樹集合,然后將它們合并在一起,通常可以實現(xiàn)更準確的預測。

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

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

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


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

精彩推薦

圖文推薦

點擊排行

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

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