[發明專利]一種基于復雜網絡社團的軟件漏洞檢測方法有效
| 申請號: | 202010585822.6 | 申請日: | 2020-06-24 |
| 公開(公告)號: | CN111767547B | 公開(公告)日: | 2022-08-19 |
| 發明(設計)人: | 單純;熊玲;王可惟;劉臻;王曦 | 申請(專利權)人: | 北京理工大學 |
| 主分類號: | G06F21/57 | 分類號: | G06F21/57;G06F21/56 |
| 代理公司: | 北京理工大學專利中心 11120 | 代理人: | 劉西云;李微微 |
| 地址: | 100081 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 復雜 網絡 社團 軟件 漏洞 檢測 方法 | ||
1.一種基于復雜網絡社團的軟件漏洞檢測方法,其特征在于,包括以下步驟:
S1:將軟件系統抽象為復雜網絡圖;
S2:對所述復雜網絡圖進行預處理,得到重構網絡圖,其中,所述預處理為:判斷復雜網絡圖中任意兩個節點之間是否存在兩條以上的連接邊,若存在,則隨機保留一條連接邊,打斷剩余的連接邊,并在斷邊形成的兩個斷點處添加一個節點;
S3:獲取重構網絡圖中各節點的平均中心性,然后選取平均中心性至少排在前15%的節點作為候選節點,得到候選節點集;
S4:判斷候選節點集中互為鄰居的兩個候選節點之間的相似度是否大于設定值,若大于,則剔除平均中心性較小的節點,并將平均中心性較大的節點作為中心節點,得到中心節點集,其中,每個候選節點只進行一次判斷;
S5:分別將各中心節點作為當前中心節點執行社團劃分操作,得到各中心節點對應的備選社團,其中,所述社團劃分操作為:
S51:獲取當前中心節點各鄰居節點的局部模塊優度增量ΔLC;
S52:依次判斷各鄰居節點的局部模塊優度增量ΔLC是否大于設定閾值,若大于,則該鄰居節點屬于其對應的中心節點所在的備選社團;
S6:判斷重構網絡中是否存在未被劃分到任何備選社團的節點或者同時被劃分到多個備選社團的節點,其中,若存在未被劃分到任何備選社團的節點,則將該節點劃分到其局部模塊優度增量ΔLC最大值所對應的中心節點所在的備選社團;若存在同時被劃分到多個備選社團的節點,則將該節點劃分到其局部模塊優度增量ΔLC最大值所對應的中心節點所在的備選社團,同時將該節點從其他備選社團中刪除,得到最終的社團;
S7:采用nRank排序算法獲取各中心節點的排名值,然后按照排名值的高低將各社團進行排序;
S8:將各社團按序依次與重構網絡圖進行對比,判斷是否存在與所述重構網絡圖的局部存在相似不同構關系的社團,若存在,則該社團對應的代碼存在漏洞,并停止后續社團與重構網絡圖的對比,若不存在,則該重構網絡圖對應的軟件系統不存在漏洞。
2.如權利要求1所述的一種基于復雜網絡社團的軟件漏洞檢測方法,其特征在于,所述將軟件系統抽象為復雜網絡圖的方法為:
將軟件系統按照功能劃分為兩個以上的功能模塊,然后將功能模塊內的各行代碼分別作為一個節點,各行代碼之間存在的跳轉關系作為一條連接邊,從而將功能模塊抽象為代數構件,其中,若兩個功能模塊之間為調用關系、包含關系或者嵌套關系,則在兩個功能模塊之間存在跳轉關系的兩行代碼對應的節點之間設置一條連接邊,從而將軟件系統抽象為復雜網絡圖。
3.如權利要求1所述的一種基于復雜網絡社團的軟件漏洞檢測方法,其特征在于,所述重構網絡圖中各節點的平均中心性的獲取方法為:
其中,Ci表示第i個節點的平均中心性,i=1,2,...,N,其中,N為重構網絡中所有的節點數量,j=1,2,3,wij表示第i個節點的第j個指標的權重,且指標包括度中心性、介數中心性以及接近中心性,rij表示第i個節點的第j個指標的經過歸一化后的標準值。
4.如權利要求1所述的一種基于復雜網絡社團的軟件漏洞檢測方法,其特征在于,互為鄰居的兩個候選節點之間的相似度的計算方法為:
Sxy=|Vx∩Vy|/|Vx∪Vy|
其中,Sxy表示候選節點x與候選節點y之間的相似度,Vx表示候選節點x的所有鄰居節點所構成的集合,Vy表示候選節點y的所有鄰居節點所構成的集合,|Vx∩Vy|表示候選節點x和候選節點y共有鄰居節點的數目,|Vx∪Vy|表示候選節點x的鄰居節點數目與候選節點y的鄰居節點數目的和值再減去兩個候選節點共有鄰居節點的數目。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京理工大學,未經北京理工大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010585822.6/1.html,轉載請聲明來源鉆瓜專利網。





