[發明專利]一種基于神經網絡與深度學習的C/C++漏洞靜態檢測方法有效
| 申請號: | 202011519232.X | 申請日: | 2020-12-21 |
| 公開(公告)號: | CN112560036B | 公開(公告)日: | 2022-11-29 |
| 發明(設計)人: | 錢葉魁;付才;韓蘭勝;楊瑞朋;黃浩;雒朝峰;杜江;時晨航 | 申請(專利權)人: | 中國人民解放軍陸軍炮兵防空兵學院;華中科技大學 |
| 主分類號: | G06F21/56 | 分類號: | G06F21/56;G06N3/04;G06N3/08 |
| 代理公司: | 中國兵器工業集團公司專利中心 11011 | 代理人: | 辛海明 |
| 地址: | 450052 河*** | 國省代碼: | 河南;41 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 神經網絡 深度 學習 c++ 漏洞 靜態 檢測 方法 | ||
本發明涉及一種基于神經網絡與深度學習的C/C++漏洞靜態檢測方法,屬于信息安全領域。本發明對待檢測的源碼進行數據清潔和代碼切片;將代碼切片轉換為CVDF?LZW編碼的輸入向量;將輸入向量轉化為等長的輸入,并進行歸一化處理;將歸一化后的向量的關鍵字信息輸入到14個神經元中,輸出是一個14維向量;將歸一化后的向量輸入不同的神經網絡,輸出是漏洞特征向量中相應操作維度向量;將14維向量和操作維度向量整合成35維漏洞特征向量;在漏洞特征向量中以非全連接的形式提取有關聯的神經元,通過線性函數轉換得到一個6維的輸出向量,通過softmax多分類層將對應的漏洞類型特征值轉換為相應的概率值。本發明可以面向多種類漏洞實現高精度檢測,提高效率和適應性。
技術領域
本發明屬于信息安全領域,具體涉及一種基于神經網絡與深度學習的C/C++ 漏洞靜態檢測方法。
背景技術
目前,軟件安全已經成為人們日益關注的熱點話題之一。根據CSEC2017模 型,知識領域被分為數據安全,軟件安全,系統安全,人員安全,組織安全及 社會安全六個方面,軟件安全位列其中。而隨著軟件數量的爆炸式增長,軟件 安全漏洞的研究面臨著嚴峻的挑戰。在面向源代碼的漏洞靜態檢測領域,傳統 的人工檢測方式效率低下,已經無法有效應對形式多變,日益增多的軟件漏洞, 且識別精度取決于軟件安全從業人員的技術水準;傳統的自動化漏洞檢測只能 針對種類單一的漏洞進行挖掘。機器學習作為近些年興起的學科,是一門多領 域交叉學科,它涉及概率論、統計學、逼近論、凸分析、算法復雜度理論等多門學科,并在圖像識別,自然語言處理,模式識別等領域取得了突出成績。神 經網絡與深度學習作為機器學習的最新發展成果,在解決非線性分類等相關問 題相比較傳統機器學習算法有著更高的效率與精準度,許多科研工作者開始將 機器學習與神經網絡應用于漏洞研究。例如Fabian等人使用模式識別研究污點 漏洞;Pang等人使用深度神經網絡預測漏洞軟件組件;Fabian等人使用代碼屬 性圖像建模發現漏洞本文;Wu等人同樣運用深度學習進行漏洞檢測;Lin等人使 用跨項目遷移表示學習進行漏洞功能挖掘。
目前國內外傳統的源代碼漏洞挖掘主要分為人工挖掘與自動挖掘。人工挖 掘主要依據漏洞產生機理,歸納漏洞特征,將漏洞進行種類劃分,在人工檢測 時提高效率,例如WANG等人運用安全視覺的方式對C/C++程序漏洞進行分類研究; LV等人將C/C++常見漏洞分為5大類,并對每一類的具體特征做了細分;傳統的 自動漏洞挖掘方式是進行自動化漏洞分類,并運用控制流與數據流分析對源碼 進行數據與邏輯跟蹤,當追蹤到異常操作時,則判定該源代碼含有相應種類漏 洞,例如SHAO等人針對緩沖區溢出的單一種類漏洞進行了詳細的原理闡述,并 給出了漏洞檢測,漏洞修復與漏洞防護的詳細方案。傳統的自動漏洞挖掘針對 某一具體類型具體操作的漏洞具有較高的檢測效率,但該方法具有如下缺陷:1、 每次檢測僅能針對一種特定類型的漏洞,檢測效率較低;2、無法檢測出進行其 它相關操作的同一類型漏洞,適應性較差;3、當需要檢測的漏洞數據量較大時 檢測速度較慢。隨著人工智能領域的興起,研究人員開始運用機器學習進行自 動化漏洞挖掘,ZHANG等人對目前機器學習的研究成果做了綜述;ZOU等人闡述 了在軟件漏洞挖掘中從傳統的自動化向智能化的漏洞挖掘發展,該文章也指出 傳統的機器學習技術在漏洞挖掘領域的應用仍具有局限性;而在人工智能領域 的最新研究方向——神經網絡與漏洞挖掘的相關領域的研究中,LI等人提出了 將漏洞源碼提取出代碼小部件并提出了基于bi-lstm神經網絡的vuldeepecker 漏洞檢測模型;XIA等人基于代碼相似性原理,運用圖像識別領域中應用廣泛的 卷積神經網絡將漏洞源碼與模板源碼進行相似性比對,這種方式對于大批量形 態相似的漏洞具有較高的檢測速度,同時能夠運用現有的神經網絡進行訓練而 不必提出全新的神經網絡架構,但隨著漏洞的發展,形式與特征趨于多樣化, 代碼相似性難以針對不同類別不同特征的漏洞進行檢測;SUN等人則在人工智能 技術在安全漏洞領域的運用一文中以綜述的形式匯總了到目前為止國內外有關 人工智能在安全漏洞方向的研究成果,并得出了深度學習會對漏洞領域的研究 與發展產生巨大影響的結論;LI等人運用深度聚類神經網絡(KNN)針對開源軟 件的API序列嵌入向量空間并進行聚類,根據聚類結果進行漏洞檢測;ZHANG等 人借助神經網絡在自然語言處理領域的成熟應用,提出了自然語言數據驅動的 智能化軟件評估方法,并取得了顯著的成效。但WANG、LV等人提出的分類方式 僅能提高傳統人工漏洞檢測的識別效率,難以從根本上解決人工漏洞檢測的弊 端;SHAO LI提出的檢測方案僅能針對單一或種類有限的漏洞進行檢測;XIA等 人僅針對代碼相似性這一特征進行檢測,無法檢測形態特征差異較大的漏洞; ZHANG SUN等人在匯總國內外研究成果的同時并未提出新的漏洞挖掘方案。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國人民解放軍陸軍炮兵防空兵學院;華中科技大學,未經中國人民解放軍陸軍炮兵防空兵學院;華中科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011519232.X/2.html,轉載請聲明來源鉆瓜專利網。





