本發(fā)明涉及軟件開發(fā),具體為一種基于深度學(xué)習(xí)的細(xì)粒度漏洞預(yù)測及評估系統(tǒng)。
背景技術(shù):
1、軟件漏洞可能導(dǎo)致軟件系統(tǒng)數(shù)據(jù)泄露、服務(wù)中斷和系統(tǒng)崩潰,對系統(tǒng)的安全性和穩(wěn)定性構(gòu)成威脅。盡早發(fā)現(xiàn)軟件漏洞有助于降低安全風(fēng)險,因此越來越多的企業(yè)在開發(fā)階段使用靜態(tài)分析工具進(jìn)行漏洞檢測?;谝?guī)則的靜態(tài)分析工具依賴于安全專家人工定制的規(guī)則,人力和時間成本高且容易產(chǎn)生誤報,而深度學(xué)習(xí)方法能夠自動從代碼中學(xué)習(xí)特征,提升漏洞識別效率,緩解誤報問題。但是,基于深度學(xué)習(xí)的漏洞預(yù)測在落地到企業(yè)應(yīng)用過程中仍然在功能性上存在不足,安全分析人員獲得漏洞存在與否的初步判斷后,還需要漏洞的定位信息進(jìn)行審查分析,并了解漏洞的嚴(yán)重程度以安排修復(fù)優(yōu)先級。漏洞預(yù)測、定位和評估功能對安全分析人員而言缺一不可,基于深度學(xué)習(xí)的漏洞識別工作要在企業(yè)實(shí)踐中落地,提供覆蓋上述鏈路的解決方案勢在必行。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的在于提供一種基于深度學(xué)習(xí)的細(xì)粒度漏洞預(yù)測及評估系統(tǒng),以解決上述背景技術(shù)中提出的問題,幫助安全分析人員高效地發(fā)現(xiàn)漏洞并及時地確定修復(fù)優(yōu)先級。在本次發(fā)明中,通過對實(shí)際軟件安全維護(hù)的需求分析調(diào)研,首次設(shè)計并公開了一種基于深度學(xué)習(xí)能夠自動化識別漏洞、定位漏洞、評估漏洞、有效管理漏洞報告、將漏洞信息可視化的工具。本次發(fā)明在該系統(tǒng)中提供了一種細(xì)粒度漏洞預(yù)測及評估的方法,該方法借助深度學(xué)習(xí)的優(yōu)勢,全面覆蓋了安全分析人員關(guān)注的漏洞預(yù)測、定位及評估功能,以幫助從業(yè)者更高效地減輕軟件安全威脅。
2、本發(fā)明提供如下技術(shù)方案:一種基于深度學(xué)習(xí)的細(xì)粒度漏洞預(yù)測及評估系統(tǒng),該工具包括任務(wù)管理模塊、代碼預(yù)處理模塊、細(xì)粒度漏洞預(yù)測模塊、漏洞評估模塊和漏洞報告管理模塊;
3、所述任務(wù)模塊用于用戶上傳完整代碼項(xiàng)目后,生成任務(wù)、啟動處理流程并監(jiān)控執(zhí)行;
4、所述代碼預(yù)處理模塊執(zhí)行函數(shù)提取、無效信息刪除和生成pdg、ast和token序列等步驟,以中間表現(xiàn)形式存儲代碼語義和語法信息,為細(xì)粒度漏洞預(yù)測和漏洞評估模塊準(zhǔn)備數(shù)據(jù);
5、所述細(xì)粒度漏洞預(yù)測模塊從代碼中間表示形式提取特征,使用訓(xùn)練后的細(xì)粒度漏洞預(yù)測模型進(jìn)行漏洞預(yù)測和定位,并將細(xì)粒度漏洞預(yù)測結(jié)果保存至數(shù)據(jù)庫中;
6、所述漏洞評估模塊讀取漏洞預(yù)測的結(jié)果,對存在漏洞的代碼使用訓(xùn)練后的漏洞評估模型進(jìn)行漏洞評估,漏洞評估的結(jié)果將保存至數(shù)據(jù)庫;
7、所述漏洞報告模塊從數(shù)據(jù)庫中匯總漏洞預(yù)測和評估結(jié)果生成漏洞報告,并提供可視化展示和漏洞報告下載功能;
8、進(jìn)一步地,所述任務(wù)管理模塊包括接受用戶輸入單元、創(chuàng)建任務(wù)單元、執(zhí)行任務(wù)單元、查看任務(wù)單元、修改任務(wù)單元;
9、接受用戶輸入單元用于接收用戶上傳的項(xiàng)目文件、選擇的漏洞預(yù)測模型和自定義的任務(wù)執(zhí)行時間;
10、創(chuàng)建任務(wù)單元用于將用戶上傳的信息封裝成任務(wù),發(fā)送到消息隊(duì)列,等待后續(xù)任務(wù)執(zhí)行;
11、執(zhí)行任務(wù)單元用于啟動任務(wù)處理流程,依次調(diào)度代碼預(yù)處理、細(xì)粒度漏洞預(yù)測、漏洞評估等模型,并進(jìn)行任務(wù)的監(jiān)控管理;
12、查看任務(wù)單元用于查看任務(wù)的執(zhí)行進(jìn)度,包括“排隊(duì)中”、“完成”、“取消”等狀態(tài);
13、修改任務(wù)單元用于對任務(wù)進(jìn)行取消、修改參數(shù)和重新自動執(zhí)行,用戶可以修改漏洞預(yù)測的模型然后重啟任務(wù)或者直接取消任務(wù);
14、進(jìn)一步地,代碼預(yù)處理模塊包括解析函數(shù)單元、去除無效信息單元、生成中間表現(xiàn)形式單元;
15、解析函數(shù)單元用于將單個代碼文件解析成多個函數(shù),生成對應(yīng)的函數(shù)列表,最后存儲每個代碼文件對應(yīng)的函數(shù)列表;
16、去除無效信息單元用于對函數(shù)中存在的無效信息,如注釋、空行等進(jìn)行刪除,去除了對代碼分析和漏洞預(yù)測無關(guān)的內(nèi)容,確保了代碼處理的準(zhǔn)確性和高效性;
17、生成中間表現(xiàn)形式單元將每個函數(shù)代碼轉(zhuǎn)為抽象語法樹(ast)、程序依賴圖(pdg)和token語法序列形式進(jìn)行存儲;
18、進(jìn)一步地,所述細(xì)粒度漏洞預(yù)測模塊包括特征提取單元、漏洞預(yù)測單元和漏洞定位單元;
19、所述特征提取單元用于根據(jù)用戶選擇的模型進(jìn)行特征提取,將預(yù)處理后的ast、pdg和token序列文件轉(zhuǎn)為向量表示;
20、漏洞預(yù)測單元用于通過預(yù)訓(xùn)練后的模型進(jìn)行漏洞預(yù)測,獲得每個特性向量預(yù)測后的漏洞結(jié)果,即對應(yīng)的代碼函數(shù)是否存在漏洞;
21、漏洞定位單元用于對代碼進(jìn)行漏洞定位,漏洞定位將產(chǎn)生多個關(guān)鍵漏洞代碼行及每個代碼行對應(yīng)的漏洞概率,最后工具封裝漏洞定位結(jié)果并進(jìn)行存儲;
22、進(jìn)一步地,所述漏洞評估模塊包括漏洞評估特征提取單元和漏洞評估分級單元;
23、漏洞評估特征提取單元用于讀取關(guān)鍵漏洞代碼行,并通過pdg中的依賴關(guān)系獲得漏洞代碼行依賴的上下文,對漏洞代碼及其上下文的token序列進(jìn)行漏洞評估的特征提取,將其轉(zhuǎn)為向量表示;
24、漏洞評估分級單元用于通過漏洞評估模型對漏洞代碼特征進(jìn)行漏洞評估,輸出漏洞的訪問途徑、訪問復(fù)雜度和完整性影響等評估結(jié)果,然后綜合計算漏洞評分并根據(jù)評分將漏洞的嚴(yán)重程度分為高、中、低三級;
25、進(jìn)一步地,所述漏洞報告模塊包括查看漏洞詳情單元和查看漏洞報告單元;
26、查看漏洞報告單元用于將漏洞分級為高危、中危和低危三級,然后根據(jù)級別進(jìn)行漏洞數(shù)量統(tǒng)計,用戶可以點(diǎn)擊進(jìn)行漏洞報告下載;
27、查看漏洞詳情單元用于對漏洞進(jìn)行列表展示,用戶點(diǎn)擊每個漏洞后可以看到漏洞的詳細(xì)評估指標(biāo)結(jié)果,并且可以按照漏洞嚴(yán)重程度等條件進(jìn)行篩選。
28、與現(xiàn)有技術(shù)相比,本發(fā)明所達(dá)到的有益效果是:
29、1.本發(fā)明首次設(shè)計并提供了一種幫助安全分析人員提高漏洞識別效率的基于深度學(xué)習(xí)的細(xì)粒度漏洞預(yù)測及評估系統(tǒng),該系統(tǒng)包括任務(wù)管理模塊、代碼預(yù)處理模塊、細(xì)粒度漏洞預(yù)測模塊、漏洞評估模塊和漏洞報告模塊,為安全分析人員提供了一個全面而高效的工具集。這種集成化的系統(tǒng)設(shè)計能夠幫助用戶在一個平臺上完成漏洞識別、預(yù)測和評估的全過程,簡化了工作流程,提高了工作效率。本發(fā)明通過分布式框架和消息隊(duì)列、緩存等中間件實(shí)現(xiàn)系統(tǒng)開發(fā),推動基于深度學(xué)習(xí)的細(xì)粒度漏洞預(yù)測及評估的落地,幫助安全分析人員更好地利用深度學(xué)習(xí)技術(shù)來提高漏洞識別效率,推動安全工作的進(jìn)步和發(fā)展;
30、2.本發(fā)明提供了一種基于深度學(xué)習(xí)的細(xì)粒度漏洞預(yù)測方法,為用戶提供準(zhǔn)確的漏洞預(yù)測能力。本發(fā)明提供了一種集成多種基于深度學(xué)習(xí)的預(yù)測方案,不同的預(yù)測模型從基于文本序列和基于圖的兩種特征提取維度完成漏洞預(yù)測,以學(xué)習(xí)語義和語法方面的漏洞信息。同時,在預(yù)測代碼漏洞的基礎(chǔ)上,通過解釋器模型和注意力機(jī)制提供行級漏洞定位解釋,減少了人工審查漏洞代碼的時間。本發(fā)明的優(yōu)點(diǎn)是利用深度學(xué)習(xí)提高了漏洞預(yù)測的準(zhǔn)確性和可靠性,在實(shí)際問題中,準(zhǔn)確的漏洞預(yù)測可以幫助用戶在軟件開發(fā)生命周期的早期階段就發(fā)現(xiàn)潛在的安全問題,從而減少后續(xù)修復(fù)漏洞所需的時間和成本。而自動化的基于深度學(xué)習(xí)的定位解釋方法可以幫助用戶更快速地找到漏洞所在位置,加快漏洞修復(fù)的速度,提高軟件安全性和穩(wěn)定性;
31、3.本發(fā)明提供了一種基于多任務(wù)的自動化漏洞評估方法,為用戶提供漏洞評估能力。本發(fā)明提供了一種自動化漏洞評估模型,從代碼文本序列中提取共享代碼特征以完成基于cvss指標(biāo)的漏洞評估,幫助用戶及時地識別出需要優(yōu)先修復(fù)的高危漏洞。本發(fā)明提高了漏洞評估的效率,傳統(tǒng)的漏洞評估通常需要大量的人力資源和時間來完成,而這種自動化方法可以大大縮短評估的時間,提高工作效率。用戶使用自動化的漏洞評估,無需雇傭大量的安全專家從而節(jié)省了成本。自動化漏洞評估模型可以幫助用戶更準(zhǔn)確地識別出高危漏洞,幫助他們及時修復(fù)這些漏洞,從而提高系統(tǒng)的安全性;