[發(fā)明專利]知識驅(qū)動的軟件缺陷檢測與分析方法及系統(tǒng)在審
| 申請?zhí)枺?/td> | 202110726068.8 | 申請日: | 2021-06-29 |
| 公開(公告)號: | CN113434418A | 公開(公告)日: | 2021-09-24 |
| 發(fā)明(設(shè)計)人: | 薄莉莉;曹思聰;孫小兵;李世豪;李斌 | 申請(專利權(quán))人: | 揚州大學(xué) |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F40/211;G06F40/253;G06F40/295;G06F40/30;G06F16/28;G06K9/62;G06N3/04;G06N3/08 |
| 代理公司: | 南京蘇高專利商標事務(wù)所(普通合伙) 32204 | 代理人: | 孟紅梅 |
| 地址: | 225009 *** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 知識 驅(qū)動 軟件 缺陷 檢測 分析 方法 系統(tǒng) | ||
本發(fā)明公開了一種知識驅(qū)動的軟件缺陷檢測與分析方法及系統(tǒng),主要包括:構(gòu)建缺陷數(shù)據(jù)集;構(gòu)建代碼特征圖以對代碼進行建模并嵌入到向量空間;通過圖神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)缺陷代碼隱式特征,訓(xùn)練缺陷檢測模型;利用檢測模型檢測項目中存在的缺陷,通過相似度計算匹配缺陷數(shù)據(jù)集中已有的相似缺陷;提取相似缺陷報告中有語義價值的缺陷知識,進行知識融合與檢測,構(gòu)建軟件缺陷知識圖譜以輔助開發(fā)者理解檢測出的缺陷可能存在的問題。本發(fā)明可以緩解傳統(tǒng)缺陷檢測技術(shù)中難以制定有效全面的缺陷模式所導(dǎo)致的高誤報率問題,并從知識的角度分析檢測出的缺陷,使實際應(yīng)用領(lǐng)域更廣、精度更高、可解釋性更強。
技術(shù)領(lǐng)域
本發(fā)明屬于軟件安全領(lǐng)域,特別涉及一種知識驅(qū)動的軟件缺陷檢測與分析方法及系統(tǒng)。
背景技術(shù)
軟件缺陷是指軟件產(chǎn)品的結(jié)果不符合軟件要求或最終用戶期望。它通常會以非預(yù)期的方式產(chǎn)生不正確或意外的結(jié)果和行為。軟件日益增加的復(fù)雜性和依賴性增加了軟件高質(zhì)量、低成本和可維護的難度,以及創(chuàng)建軟件缺陷的可能性。傳統(tǒng)的缺陷檢測方法大多針對某種特定類型的缺陷,通過正則表達式來匹配代碼中可能存在缺陷的語句。然而,完全依靠人工專家制定的缺陷規(guī)則來涵蓋日益增長的軟件缺陷是不切實際的。
目前已有一些工作使用機器學(xué)習(xí)的方法來檢測軟件缺陷。何吉元等人提出一種基于搜索的半監(jiān)督集成方法,通過具有全局搜索能力的遺傳算法,基于少量已標記目標實例對基分類器進行集成,顯著提高了項目間缺陷檢測的性能。陳曙等人提出將實例加權(quán)的領(lǐng)域適配與機器學(xué)習(xí)的預(yù)測模型訓(xùn)練過程相結(jié)合,通過構(gòu)造目標項目樣本相關(guān)的權(quán)重,以實例權(quán)重去影響預(yù)測模型的參數(shù)學(xué)習(xí)過程,將來自目標項目中缺陷數(shù)據(jù)集的分布特性適配到訓(xùn)練數(shù)據(jù)集中,從而實現(xiàn)缺陷數(shù)據(jù)樣本的復(fù)用和跨項目軟件缺陷預(yù)測。然而,目前大多數(shù)基于機器學(xué)習(xí)的軟件缺陷檢測方法的粒度均為文件級,使得當部署到實際的應(yīng)用場景下時,用戶難以根據(jù)粗粒度的檢測結(jié)果來輔助代碼的維護與保障。
發(fā)明內(nèi)容
發(fā)明目的:本發(fā)明的目的在于針對上述現(xiàn)有技術(shù)存在的問題,提供一種具有應(yīng)用領(lǐng)域更廣、精度更高、可解釋性更強等特點的知識驅(qū)動的軟件缺陷檢測與分析方法及系統(tǒng)。
技術(shù)方案:為實現(xiàn)本發(fā)明目的所采用的技術(shù)方案為:一種知識驅(qū)動的軟件缺陷檢測與分析方法,所述方法包括以下步驟:
步驟1,采集公開的缺陷數(shù)據(jù),構(gòu)建缺陷數(shù)據(jù)集;
步驟2,對缺陷代碼進行預(yù)處理,通過代碼特征圖對代碼進行建模并嵌入到向量空間;其中代碼特征圖根據(jù)抽象語法樹AST、控制流圖CFG和程序依賴圖PDG構(gòu)造,圖的邊類型由AST、CFG和PDG構(gòu)成,節(jié)點集由抽象語法樹AST的節(jié)點集構(gòu)成;從代碼特征圖中提取與缺陷代碼行相關(guān)的缺陷特征子圖進行圖嵌入;
步驟3,通過圖神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)缺陷代碼隱式特征,訓(xùn)練缺陷檢測模型;
步驟4,對待檢測項目進行處理,輸入最優(yōu)的檢測模型中,檢測項目中存在的缺陷,并將檢測到的缺陷依據(jù)其缺陷類型與缺陷數(shù)據(jù)集中的同類型已知缺陷進行相似度計算,匹配相似度最高的已知缺陷;
步驟5,提取相似缺陷報告中有語義價值的缺陷知識,進行知識融合與檢測,構(gòu)建軟件缺陷知識圖譜,通過挖掘相似缺陷報告中的關(guān)鍵信息以輔助開發(fā)者理解檢測出的缺陷;
進一步地,步驟1所述采集公開的缺陷數(shù)據(jù),構(gòu)建缺陷數(shù)據(jù)集,具體過程包括:
步驟1-1,從缺陷追蹤庫和開源代碼庫中采集公開的缺陷數(shù)據(jù),包括缺陷報告以及缺陷代碼;
步驟1-2,對采集到的缺陷數(shù)據(jù)進行預(yù)處理,從函數(shù)級別提取缺陷代碼,對函數(shù)級缺陷代碼進行清洗,去除包括代碼注釋、聲明的全局參數(shù)在內(nèi)的多余信息,得到缺陷數(shù)據(jù)集。
進一步地,步驟2所述對缺陷代碼進行預(yù)處理,通過代碼特征圖對代碼進行建模并嵌入到向量空間,具體過程包括:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于揚州大學(xué),未經(jīng)揚州大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110726068.8/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種具有自冷卻保溫功能的鍋爐
- 下一篇:一種建筑垃圾回收再利用裝置
- 一種基于應(yīng)用軟件散布的軟件授權(quán)與保護方法及系統(tǒng)
- 一種用于航空機載設(shè)備的軟件在線加載系統(tǒng)及方法
- 軟件構(gòu)建方法、軟件構(gòu)建裝置和軟件構(gòu)建系統(tǒng)
- 惡意軟件檢測方法及裝置
- 一種基于軟件基因的軟件同源性分析方法和裝置
- 軟件引入系統(tǒng)、軟件引入方法及存儲介質(zhì)
- 軟件驗證裝置、軟件驗證方法以及軟件驗證程序
- 使用靜態(tài)和動態(tài)惡意軟件分析來擴展惡意軟件的動態(tài)檢測
- 一種工業(yè)控制軟件構(gòu)建方法和軟件構(gòu)建系統(tǒng)
- 可替換游戲軟件與測驗軟件的裝置與方法





