[發明專利]一種基于深度特征的細粒度漏洞檢測方法有效
| 申請號: | 201811340404.X | 申請日: | 2018-11-12 |
| 公開(公告)號: | CN109657473B | 公開(公告)日: | 2020-09-18 |
| 發明(設計)人: | 鄒德清;王蘇娟;金海;李珍 | 申請(專利權)人: | 華中科技大學 |
| 主分類號: | G06F21/57 | 分類號: | G06F21/57;G06F40/211;G06F16/35;G06N3/04 |
| 代理公司: | 華中科技大學專利中心 42201 | 代理人: | 曹葆青;李智 |
| 地址: | 430074 湖北*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 深度 特征 細粒度 漏洞 檢測 方法 | ||
本發明公開了一種基于深度特征的細粒度漏洞檢測方法,其步驟包括以下兩個階段:訓練階段和檢測階段。訓練階段包含:收集大量的有漏洞和無漏洞的程序;對這些程序進行預處理,并從程序依賴圖中提取出程序切片;對生成的程序切片按照漏洞類型打上標簽;按照安全分析規則,從程序切片中提取出程序關注點;將程序切片和程序關注點轉化成向量;搭建基于深度學習的漏洞檢測模型,用向量訓練模型參數至最優;最終得到一個訓練完備的基于深度學習的漏洞檢測模型。檢測階段包含:按照訓練階段的源碼處理方式,從待測程序中提取程序切片和程序關注點并分別將其轉化為向量;利用訓練好的漏洞檢測模型對向量進行分類,最后根據分類結果生成漏洞檢測報告。
技術領域
本發明屬于網絡空間安全領域,更具體地,涉及一種基于深度特征的細粒度漏洞檢測方法。
背景技術
大多數網絡攻擊都是由于某些軟件漏洞引起的,盡管現在已經出現了很多的安全技術來避免軟件漏洞。但是由于存在諸多原因,例如,軟件的復雜性使得軟件漏洞是不可避免的。鑒于無法避免軟件漏洞,所以另一種防御方法是盡快檢測并修補它們。檢測軟件源代碼中的漏洞是解決軟件漏洞問題的一個不可或缺的方法。在這種方法下,許多解決方案使用手動定義的漏洞模式來檢測漏洞。但是,手動定義漏洞模式是一項主觀且繁瑣的任務,通常不能保證漏洞檢測結果的誤報率和漏報率。
發明內容
針對現有技術的以上缺陷或改進需求,本發明的目的在于解決現有手動定義檢測漏洞的模式是一項主觀且繁瑣的任務,通常不能保證漏洞檢測結果的誤報率和漏報率的技術問題。
為實現上述目的,本發明提供一種基于深度特征的細粒度漏洞檢測方法,包括如下步驟:
S1,訓練階段:
收集訓練程序,從訓練程序中提取出程序切片,并給程序切片打上對應的標簽,所述標簽包括:該程序切片有無漏洞、如有漏洞其對應的漏洞屬性;
遍歷所述訓練程序中的所有語句,根據當前遍歷到的語句在所述程序切片中對應的語句類型從所述程序切片中提取程序關注點,根據所述程序切片和程序關注點得到最終的訓練數據;
初步搭建基于深度學習的漏洞檢測模型,以通過融合程序切片和程序關注點中的特征來檢測漏洞,將所述訓練數據和訓練數據包括的程序切片對應的標簽輸入初步搭建的基于深度學習的漏洞檢測模型,根據輸出的訓練數據對應的檢測結果和程序切片對應的標簽調整漏洞檢測模型的參數,以使得漏洞檢測模型的檢測結果達到最優,基于調整好的漏洞檢測模型的參數得到訓練完備的基于深度學習的漏洞檢測模型;
S2,檢測階段:
按照訓練階段中源代碼的處理方式,從待測程序中提取對應的程序切片和程序關注點,得到檢測數據;
將檢測數據輸入所述訓練完備的基于深度學習的漏洞檢測模型進行檢測,根據檢測結果生成對應的漏洞檢測報告,所述漏洞檢測報告包括待檢測程序是否包含漏洞以及若包含漏洞其對應的漏洞屬性。
在一個可選的實例中,步驟S1包括以下步驟:
S1.1,收集訓練程序,對所述訓練程序進行預處理,將所述訓練程序的源代碼解析成程序依賴圖的格式,再從程序依賴圖中提取出程序切片;
S1.2,按照程序切片有無漏洞和漏洞的屬性給程序切片打上標簽;
S1.3,遍歷訓練程序中的所有語句,根據當前遍歷到的語句在所述程序切片中對應的語句類型從所述程序切片中提取程序關注點;
S1.4,解析程序切片和程序關注點中每條語句的成分,提取出其中的變量名和函數名,規范這些變量名和函數名的命名格式,消除不一致的代碼命名規范;
S1.5,將程序切片和程序關注點分別轉化為數字化表征對應的向量;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華中科技大學,未經華中科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811340404.X/2.html,轉載請聲明來源鉆瓜專利網。





