基于圖網(wǎng)絡(luò)的源代碼漏洞檢測研究
發(fā)布時間:2023-03-13 07:45
計算機(jī)軟件應(yīng)用于各行各業(yè),已經(jīng)成為社會發(fā)展的支柱性產(chǎn)業(yè)之一,在國計民生中占據(jù)著重要的地位。一旦軟件系統(tǒng)遭受到攻擊,就會給社會帶來巨大的損失。如何及時發(fā)現(xiàn)軟件程序中的潛在漏洞,盡早修復(fù),以避免造成更大的損失,這對于保護(hù)軟件提供商和用戶的權(quán)益至關(guān)重要。在軟件生命的早期階段,對軟件源代碼進(jìn)行漏洞檢測,就可以及早的發(fā)現(xiàn)潛在漏洞。目前已有的源代碼漏洞檢測方案主要分為基于規(guī)則的檢測和基于學(xué)習(xí)的檢測方法,前者由于規(guī)則覆蓋不全往往導(dǎo)致誤報率較高;而后者由于目前機(jī)器學(xué)習(xí)的編碼方式對程序語義表達(dá)欠缺致使準(zhǔn)確率結(jié)果提升有限。為了解決以上方法存在的缺陷,進(jìn)一步提升源代碼漏洞檢測的準(zhǔn)確率,本文提出一種基于圖神經(jīng)網(wǎng)絡(luò)的源代碼漏洞檢測方法Graph VDS,該方法借助圖結(jié)構(gòu)充分表達(dá)源代碼語義關(guān)系,通過訓(xùn)練圖卷積網(wǎng)絡(luò)模型,檢測源代碼圖是否含有漏洞。本文的主要研究內(nèi)容如下:(1)本文系統(tǒng)的對當(dāng)前主流的源代碼漏洞檢測機(jī)制進(jìn)行分析,詳細(xì)介紹了已有方法的基本原理、技術(shù)特點和存在的缺陷?偨Y(jié)了目前源代碼漏洞檢測普遍存在的漏洞規(guī)則覆蓋不全、程序語義表達(dá)欠缺的問題,并針對性提出了一種基于圖神經(jīng)網(wǎng)絡(luò)的源代碼漏洞檢測方案。(2)針對傳...
【文章頁數(shù)】:83 頁
【學(xué)位級別】:碩士
【文章目錄】:
摘要
ABSTRACT
第一章 引言
1.1 研究背景和意義
1.2 國內(nèi)外研究現(xiàn)狀
1.2.1 靜態(tài)分析漏洞檢測工具
1.2.2 機(jī)器學(xué)習(xí)在漏洞檢測中的應(yīng)用
1.2.3 代碼的圖表示法
1.2.4 圖神經(jīng)網(wǎng)絡(luò)
1.3 本文的研究內(nèi)容
1.4 本文的組織結(jié)構(gòu)
第二章 源代碼漏洞檢測機(jī)制
2.1 源代碼漏洞檢測方法
2.1.1 源代碼靜態(tài)分析檢測工具
2.1.2 基于機(jī)器學(xué)習(xí)的源代碼漏洞檢測
2.1.3 基于圖表示的源代碼漏洞檢測
2.2 基于圖網(wǎng)絡(luò)實現(xiàn)源代碼漏洞檢測
2.3 本章小結(jié)
第三章 基于圖網(wǎng)絡(luò)的源代碼漏洞檢測方法
3.1 Graph VDS方法概述
3.2 源代碼的圖表示方法設(shè)計
3.2.1 語法圖
3.2.2 數(shù)據(jù)流圖
3.2.3 控制流圖
3.2.4 函數(shù)調(diào)用圖
3.2.5 組裝代碼圖
3.3 代碼子圖提取方法設(shè)計
3.3.1 Sink函數(shù)調(diào)用數(shù)據(jù)依賴關(guān)系分析
3.3.2 Sink函數(shù)調(diào)用控制依賴關(guān)系分析
3.4 圖神經(jīng)網(wǎng)絡(luò)模型
3.4.1 圖卷積網(wǎng)絡(luò)
3.4.2 模型訓(xùn)練與漏洞檢測
3.5 本章小結(jié)
第四章 Graph VDS原型系統(tǒng)的設(shè)計與實現(xiàn)
4.1 系統(tǒng)模塊設(shè)計
4.1.1 源代碼圖構(gòu)造模塊
4.1.2 代碼子圖提取模塊
4.1.3 圖卷積網(wǎng)絡(luò)模塊
4.2 關(guān)鍵算法設(shè)計
4.2.1 語法圖構(gòu)造過程算法
4.2.2 數(shù)據(jù)流圖構(gòu)造過程算法
4.2.3 控制流圖構(gòu)造過程算法
4.2.4 Sink函數(shù)調(diào)用數(shù)據(jù)依賴分析算法
4.2.5 圖卷積網(wǎng)絡(luò)模型算法
4.3 本章小結(jié)
第五章 系統(tǒng)實驗評估與分析
5.1 實驗設(shè)計
5.1.1 實驗環(huán)境和實驗步驟
5.1.2 數(shù)據(jù)集和對比工具
5.2 圖網(wǎng)絡(luò)模型訓(xùn)練
5.2.1 模型輸入
5.2.2 模型訓(xùn)練
5.3 性能分析
5.4 Java和 C/C++數(shù)據(jù)集的實驗結(jié)果分析
5.4.1 Java數(shù)據(jù)集實驗結(jié)果分析
5.4.2 C/C++數(shù)據(jù)集實驗結(jié)果分析
5.5 開源代碼庫的漏洞檢測
5.6 本章小結(jié)
總結(jié)與展望
總結(jié)
展望
參考文獻(xiàn)
致謝
攻讀碩士學(xué)位期間取得的科研成果
本文編號:3762074
【文章頁數(shù)】:83 頁
【學(xué)位級別】:碩士
【文章目錄】:
摘要
ABSTRACT
第一章 引言
1.1 研究背景和意義
1.2 國內(nèi)外研究現(xiàn)狀
1.2.1 靜態(tài)分析漏洞檢測工具
1.2.2 機(jī)器學(xué)習(xí)在漏洞檢測中的應(yīng)用
1.2.3 代碼的圖表示法
1.2.4 圖神經(jīng)網(wǎng)絡(luò)
1.3 本文的研究內(nèi)容
1.4 本文的組織結(jié)構(gòu)
第二章 源代碼漏洞檢測機(jī)制
2.1 源代碼漏洞檢測方法
2.1.1 源代碼靜態(tài)分析檢測工具
2.1.2 基于機(jī)器學(xué)習(xí)的源代碼漏洞檢測
2.1.3 基于圖表示的源代碼漏洞檢測
2.2 基于圖網(wǎng)絡(luò)實現(xiàn)源代碼漏洞檢測
2.3 本章小結(jié)
第三章 基于圖網(wǎng)絡(luò)的源代碼漏洞檢測方法
3.1 Graph VDS方法概述
3.2 源代碼的圖表示方法設(shè)計
3.2.1 語法圖
3.2.2 數(shù)據(jù)流圖
3.2.3 控制流圖
3.2.4 函數(shù)調(diào)用圖
3.2.5 組裝代碼圖
3.3 代碼子圖提取方法設(shè)計
3.3.1 Sink函數(shù)調(diào)用數(shù)據(jù)依賴關(guān)系分析
3.3.2 Sink函數(shù)調(diào)用控制依賴關(guān)系分析
3.4 圖神經(jīng)網(wǎng)絡(luò)模型
3.4.1 圖卷積網(wǎng)絡(luò)
3.4.2 模型訓(xùn)練與漏洞檢測
3.5 本章小結(jié)
第四章 Graph VDS原型系統(tǒng)的設(shè)計與實現(xiàn)
4.1 系統(tǒng)模塊設(shè)計
4.1.1 源代碼圖構(gòu)造模塊
4.1.2 代碼子圖提取模塊
4.1.3 圖卷積網(wǎng)絡(luò)模塊
4.2 關(guān)鍵算法設(shè)計
4.2.1 語法圖構(gòu)造過程算法
4.2.2 數(shù)據(jù)流圖構(gòu)造過程算法
4.2.3 控制流圖構(gòu)造過程算法
4.2.4 Sink函數(shù)調(diào)用數(shù)據(jù)依賴分析算法
4.2.5 圖卷積網(wǎng)絡(luò)模型算法
4.3 本章小結(jié)
第五章 系統(tǒng)實驗評估與分析
5.1 實驗設(shè)計
5.1.1 實驗環(huán)境和實驗步驟
5.1.2 數(shù)據(jù)集和對比工具
5.2 圖網(wǎng)絡(luò)模型訓(xùn)練
5.2.1 模型輸入
5.2.2 模型訓(xùn)練
5.3 性能分析
5.4 Java和 C/C++數(shù)據(jù)集的實驗結(jié)果分析
5.4.1 Java數(shù)據(jù)集實驗結(jié)果分析
5.4.2 C/C++數(shù)據(jù)集實驗結(jié)果分析
5.5 開源代碼庫的漏洞檢測
5.6 本章小結(jié)
總結(jié)與展望
總結(jié)
展望
參考文獻(xiàn)
致謝
攻讀碩士學(xué)位期間取得的科研成果
本文編號:3762074
本文鏈接:http://www.sikaile.net/kejilunwen/yysx/3762074.html
最近更新
教材專著