System.ArgumentOutOfRangeException: 索引和長(zhǎng)度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專利技術(shù)涉及漏洞修復(fù),尤其涉及一種源代碼的漏洞自動(dòng)修復(fù)系統(tǒng)及方法。
技術(shù)介紹
1、源代碼中的安全漏洞可能被攻擊者利用,導(dǎo)致系統(tǒng)遭受數(shù)據(jù)泄露、系統(tǒng)崩潰以及拒絕服務(wù)攻擊等攻擊,為了識(shí)別出源代碼中的漏洞并修復(fù)這些潛在的安全隱患,防止惡意攻擊,需要對(duì)源代碼進(jìn)行漏洞修復(fù)。
2、現(xiàn)有的漏洞修復(fù)方法多為基于簡(jiǎn)單靜態(tài)分析的修復(fù)方法,即依賴于簡(jiǎn)單的靜態(tài)分析或預(yù)定義的修復(fù)規(guī)則對(duì)源代碼進(jìn)行漏洞檢測(cè)與修復(fù),例如檢測(cè)代碼中錯(cuò)誤拼寫的函數(shù)名稱并進(jìn)行修復(fù),然而,實(shí)際應(yīng)用時(shí),基于簡(jiǎn)單靜態(tài)分析的修復(fù)方法缺乏對(duì)代碼語(yǔ)義的深層次理解,忽略了代碼的全局上下文依賴關(guān)系,進(jìn)而導(dǎo)致進(jìn)行漏洞修復(fù)時(shí)的準(zhǔn)確率較低。
技術(shù)實(shí)現(xiàn)思路
1、本專利技術(shù)提供一種源代碼的漏洞自動(dòng)修復(fù)系統(tǒng)及方法,其主要目的在于解決進(jìn)行漏洞修復(fù)時(shí)的準(zhǔn)確率較低的問(wèn)題。
2、為實(shí)現(xiàn)上述目的,本專利技術(shù)提供的一種源代碼的漏洞自動(dòng)修復(fù)系統(tǒng),所述系統(tǒng)包括依賴分析模塊、靜態(tài)測(cè)試模塊、種子變異模塊、動(dòng)態(tài)測(cè)試模塊及代碼修復(fù)模塊,其中:
3、所述依賴分析模塊,用于分別對(duì)預(yù)先獲取的源代碼進(jìn)行語(yǔ)法分析以及依賴分析,得到抽象語(yǔ)法圖以及抽象依賴圖;
4、所述靜態(tài)測(cè)試模塊,用于對(duì)所述抽象語(yǔ)法圖以及所述抽象依賴圖進(jìn)行圖整合,得到整合代碼圖,并利用所述整合代碼圖對(duì)所述源代碼進(jìn)行靜態(tài)漏洞分析,得到靜態(tài)代碼漏洞,其中,所述靜態(tài)測(cè)試模塊在執(zhí)行利用所述整合代碼圖對(duì)所述源代碼進(jìn)行靜態(tài)漏洞分析,得到靜態(tài)代碼漏洞時(shí),包括:逐個(gè)選取所述整合代碼圖中的節(jié)點(diǎn)作為目標(biāo)
5、
6、
7、其中,是指所述目標(biāo)整合節(jié)點(diǎn)v在第l次迭代時(shí)得到的節(jié)點(diǎn)消息特征,v是指所述目標(biāo)整合節(jié)點(diǎn),l是迭代次數(shù)索引,u是指所述目標(biāo)鄰域節(jié)點(diǎn),n(v)是指所述目標(biāo)整合節(jié)點(diǎn)v的鄰域,exp是指數(shù)函數(shù)符號(hào),σ是激活函數(shù)符號(hào),au,v是所述目標(biāo)整合節(jié)點(diǎn)v和所述目標(biāo)鄰域節(jié)點(diǎn)u之間的注意力向量,t是轉(zhuǎn)置符號(hào),是指所述目標(biāo)鄰域節(jié)點(diǎn)u在第l次迭代時(shí)的權(quán)重矩陣,是指所述目標(biāo)鄰域節(jié)點(diǎn)u在第l-1次迭代時(shí)的節(jié)點(diǎn)特征,是向量拼接符號(hào),是指所述目標(biāo)整合節(jié)點(diǎn)v在第l次迭代時(shí)的權(quán)重矩陣,是指所述目標(biāo)整合節(jié)點(diǎn)v在第l-1次迭代時(shí)的節(jié)點(diǎn)特征,是指所述目標(biāo)整合節(jié)點(diǎn)v和所述目標(biāo)鄰域節(jié)點(diǎn)u之間的邊在第l次迭代時(shí)的權(quán)重矩陣,eu,v是指所述目標(biāo)整合節(jié)點(diǎn)v和所述目標(biāo)鄰域節(jié)點(diǎn)u之間的邊對(duì)應(yīng)的特征向量,bl是指第l次迭代時(shí)的偏置系數(shù),k是所述目標(biāo)整合節(jié)點(diǎn)v的鄰域中的鄰域節(jié)點(diǎn),ak,v是所述目標(biāo)整合節(jié)點(diǎn)v和所述鄰域節(jié)點(diǎn)k之間的注意力向量,是指所述鄰域節(jié)點(diǎn)k在第l次迭代時(shí)的權(quán)重矩陣,是指所述鄰域節(jié)點(diǎn)k在第l-1次迭代時(shí)的節(jié)點(diǎn)特征,是指所述目標(biāo)整合節(jié)點(diǎn)v和所述鄰域節(jié)點(diǎn)k之間的邊在第l次迭代時(shí)的權(quán)重矩陣,ek,v是指所述目標(biāo)整合節(jié)點(diǎn)v和所述鄰域節(jié)點(diǎn)k之間的邊對(duì)應(yīng)的特征向量,tanh是雙曲正切函數(shù)符號(hào),是指所述目標(biāo)整合節(jié)點(diǎn)v在第l次迭代時(shí)的節(jié)點(diǎn)特征;對(duì)所述節(jié)點(diǎn)消息特征進(jìn)行多層感知機(jī)分類,得到節(jié)點(diǎn)漏洞特征;對(duì)所述節(jié)點(diǎn)漏洞特征進(jìn)行特征激活,得到節(jié)點(diǎn)漏洞類型;從所述整合代碼圖中所有目標(biāo)整合節(jié)點(diǎn)的節(jié)點(diǎn)漏洞類型中提取出靜態(tài)漏洞類型;利用所述靜態(tài)漏洞類型從所述源代碼中提取出靜態(tài)漏洞代碼,并根據(jù)所述靜態(tài)漏洞代碼和所述靜態(tài)漏洞類型生成靜態(tài)代碼漏洞;
8、所述種子變異模塊,用于對(duì)所述源代碼進(jìn)行插樁編譯,得到插樁執(zhí)行程序,并對(duì)所述插樁執(zhí)行程序進(jìn)行種子篩選以及種子變異,得到變異種子集;
9、所述動(dòng)態(tài)測(cè)試模塊,用于利用所述插樁執(zhí)行程序?qū)λ鲎儺惙N子集進(jìn)行覆蓋率更新,得到更新種子集,并利用所述更新種子集對(duì)所述源代碼進(jìn)行動(dòng)態(tài)漏洞分析,得到動(dòng)態(tài)代碼漏洞;
10、所述代碼修復(fù)模塊,用于根據(jù)所述靜態(tài)代碼漏洞以及所述動(dòng)態(tài)代碼漏洞對(duì)所述源代碼進(jìn)行漏洞標(biāo)注,得到標(biāo)注漏洞代碼,并根據(jù)所述整合代碼圖對(duì)所述標(biāo)注漏洞代碼進(jìn)行漏洞語(yǔ)義提取以及漏洞修復(fù),得到修復(fù)源代碼。
11、可選地,所述依賴分析模塊在執(zhí)行分別對(duì)預(yù)先獲取的源代碼進(jìn)行語(yǔ)法分析以及依賴分析,得到抽象語(yǔ)法圖以及抽象依賴圖時(shí),包括:
12、對(duì)預(yù)先獲取的源代碼進(jìn)行詞法拆解,得到代碼詞單元集;
13、對(duì)所述代碼詞單元集進(jìn)行語(yǔ)法解析,得到代碼語(yǔ)法樹;
14、對(duì)所述代碼語(yǔ)法樹進(jìn)行圖轉(zhuǎn)換,得到抽象語(yǔ)法圖;
15、根據(jù)所述代碼語(yǔ)法樹從所述源代碼中提取出模塊單元集;
16、對(duì)所述模塊單元集進(jìn)行依賴分析,得到模塊依賴邊集;
17、利用所述模塊依賴邊集對(duì)所述模塊單元集進(jìn)行圖構(gòu)建,得到抽象依賴圖。
18、可選地,所述靜態(tài)測(cè)試模塊在執(zhí)行對(duì)所述抽象語(yǔ)法圖以及所述抽象依賴圖進(jìn)行圖整合,得到整合代碼圖時(shí),包括:
19、對(duì)所述抽象語(yǔ)法圖進(jìn)行圖拆分,得到語(yǔ)法節(jié)點(diǎn)集以及語(yǔ)法邊集;
20、對(duì)所述抽象依賴圖進(jìn)行圖拆分,得到模塊依賴邊集以及模塊單元集;
21、利用如下的節(jié)點(diǎn)聚類算法計(jì)算出所述語(yǔ)法節(jié)點(diǎn)集中各個(gè)語(yǔ)法節(jié)點(diǎn)與所述模塊單元集中各個(gè)模塊單元之間的節(jié)點(diǎn)距離:
22、
23、其中,dx,y是指所述語(yǔ)法節(jié)點(diǎn)集中語(yǔ)法節(jié)點(diǎn)x和所述模塊單元集中模塊單元y之間的節(jié)點(diǎn)距離,exp是指數(shù)函數(shù)符號(hào),·為內(nèi)積符號(hào),||為取模符號(hào),x是所述語(yǔ)法節(jié)點(diǎn)集中的語(yǔ)法節(jié)點(diǎn),y是指所述模塊單元集中的模塊單元,k、θ、j是預(yù)設(shè)的距離系數(shù),α、β是預(yù)設(shè)的權(quán)重系數(shù),t是轉(zhuǎn)置符號(hào),γ()協(xié)方差矩陣運(yùn)算符,λ是預(yù)設(shè)的正則化系數(shù),i是單位矩陣;
24、根據(jù)所述節(jié)點(diǎn)距離對(duì)所述語(yǔ)法節(jié)點(diǎn)集以及所述模塊單元集進(jìn)行節(jié)點(diǎn)聚類,得到聚類節(jié)點(diǎn)類集;
25、對(duì)所述聚類節(jié)點(diǎn)類集中的各個(gè)聚類節(jié)點(diǎn)類進(jìn)行節(jié)點(diǎn)合并,得到合并節(jié)點(diǎn)集;
26、根據(jù)所述合并節(jié)點(diǎn)集對(duì)所述語(yǔ)法邊集以及所述模塊依賴邊集進(jìn)行邊合并,得到合并邊集;
27、利用所述合并邊集對(duì)所述合并節(jié)點(diǎn)集進(jìn)行圖構(gòu)建,得到整合代碼圖。
28、可選地,所述種子變異模塊在執(zhí)行對(duì)所述源代碼進(jìn)行插樁編譯,得到插樁執(zhí)行程序時(shí),包括:
29、對(duì)所述源代碼進(jìn)行函數(shù)插樁,得到函數(shù)插樁源代碼;
30、對(duì)所述函數(shù)插樁源代碼進(jìn)行分支插樁,得到分支插樁源代碼;
31、對(duì)所述分支插樁源代碼進(jìn)行基本塊插樁,得到基本塊插樁源代碼;
32、對(duì)所述基本塊插樁源代碼進(jìn)行代碼編譯,得到插樁執(zhí)行程序。
33、可選地,所述種子變異模塊在執(zhí)行對(duì)所述插樁執(zhí)行程序進(jìn)行種子篩選以及種子變異,得到變異種子集時(shí),包括:
34、對(duì)所述插樁執(zhí)行程序進(jìn)行輸入檢測(cè),得到種子輸入規(guī)則;
35、根據(jù)所述種子輸入規(guī)則對(duì)所述插樁執(zhí)行程序進(jìn)行種子篩選,得到篩選觸發(fā)種子;
36、對(duì)所述篩選觸發(fā)種子進(jìn)行位翻轉(zhuǎn),得到翻轉(zhuǎn)變異種子;
37、對(duì)所述篩選觸發(fā)種子進(jìn)行字節(jié)變異,得本文檔來(lái)自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
1.一種源代碼的漏洞自動(dòng)修復(fù)系統(tǒng),其特征在于,所述系統(tǒng)包括依賴分析模塊、靜態(tài)測(cè)試模塊、種子變異模塊、動(dòng)態(tài)測(cè)試模塊及代碼修復(fù)模塊,其中:
2.如權(quán)利要求1所述的源代碼的漏洞自動(dòng)修復(fù)系統(tǒng),其特征在于,所述依賴分析模塊在執(zhí)行分別對(duì)預(yù)先獲取的源代碼進(jìn)行語(yǔ)法分析以及依賴分析,得到抽象語(yǔ)法圖以及抽象依賴圖時(shí),包括:
3.如權(quán)利要求1所述的源代碼的漏洞自動(dòng)修復(fù)系統(tǒng),其特征在于,所述靜態(tài)測(cè)試模塊在執(zhí)行對(duì)所述抽象語(yǔ)法圖以及所述抽象依賴圖進(jìn)行圖整合,得到整合代碼圖時(shí),包括:
4.如權(quán)利要求1所述的源代碼的漏洞自動(dòng)修復(fù)系統(tǒng),其特征在于,所述種子變異模塊在執(zhí)行對(duì)所述源代碼進(jìn)行插樁編譯,得到插樁執(zhí)行程序時(shí),包括:
5.如權(quán)利要求1所述的源代碼的漏洞自動(dòng)修復(fù)系統(tǒng),其特征在于,所述種子變異模塊在執(zhí)行對(duì)所述插樁執(zhí)行程序進(jìn)行種子篩選以及種子變異,得到變異種子集時(shí),包括:
6.如權(quán)利要求1所述的源代碼的漏洞自動(dòng)修復(fù)系統(tǒng),其特征在于,所述動(dòng)態(tài)測(cè)試模塊在執(zhí)行利用所述插樁執(zhí)行程序?qū)λ鲎儺惙N子集進(jìn)行覆蓋率更新,得到更新種子集時(shí),包括:
7.如權(quán)利要求
8.如權(quán)利要求1所述的源代碼的漏洞自動(dòng)修復(fù)系統(tǒng),其特征在于,所述代碼修復(fù)模塊在執(zhí)行根據(jù)所述整合代碼圖對(duì)所述標(biāo)注漏洞代碼進(jìn)行漏洞語(yǔ)義提取以及漏洞修復(fù),得到修復(fù)源代碼時(shí),包括:
9.如權(quán)利要求1所述的源代碼的漏洞自動(dòng)修復(fù)系統(tǒng),其特征在于,所述代碼修復(fù)模塊在執(zhí)行根據(jù)所述靜態(tài)代碼漏洞以及所述動(dòng)態(tài)代碼漏洞對(duì)所述源代碼進(jìn)行漏洞標(biāo)注,得到標(biāo)注漏洞代碼時(shí),包括:
10.一種源代碼的漏洞自動(dòng)修復(fù)方法,其特征在于,所述方法包括:
...【技術(shù)特征摘要】
1.一種源代碼的漏洞自動(dòng)修復(fù)系統(tǒng),其特征在于,所述系統(tǒng)包括依賴分析模塊、靜態(tài)測(cè)試模塊、種子變異模塊、動(dòng)態(tài)測(cè)試模塊及代碼修復(fù)模塊,其中:
2.如權(quán)利要求1所述的源代碼的漏洞自動(dòng)修復(fù)系統(tǒng),其特征在于,所述依賴分析模塊在執(zhí)行分別對(duì)預(yù)先獲取的源代碼進(jìn)行語(yǔ)法分析以及依賴分析,得到抽象語(yǔ)法圖以及抽象依賴圖時(shí),包括:
3.如權(quán)利要求1所述的源代碼的漏洞自動(dòng)修復(fù)系統(tǒng),其特征在于,所述靜態(tài)測(cè)試模塊在執(zhí)行對(duì)所述抽象語(yǔ)法圖以及所述抽象依賴圖進(jìn)行圖整合,得到整合代碼圖時(shí),包括:
4.如權(quán)利要求1所述的源代碼的漏洞自動(dòng)修復(fù)系統(tǒng),其特征在于,所述種子變異模塊在執(zhí)行對(duì)所述源代碼進(jìn)行插樁編譯,得到插樁執(zhí)行程序時(shí),包括:
5.如權(quán)利要求1所述的源代碼的漏洞自動(dòng)修復(fù)系統(tǒng),其特征在于,所述種子變異模塊在執(zhí)行對(duì)所述插樁執(zhí)行程序進(jìn)行種子篩選以及種子變異,得到變異種子集時(shí),包括:...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:張振宇,
申請(qǐng)(專利權(quán))人:信必優(yōu)深圳信息技術(shù)有限公司,
類型:發(fā)明
國(guó)別省市:
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。