《基於學習的智慧型化漏洞挖掘關鍵技術研究》是依託清華大學,由張超擔任項目負責人的面上項目。
基本介紹
- 中文名:基於學習的智慧型化漏洞挖掘關鍵技術研究
- 依託單位:清華大學
- 項目負責人:張超
- 項目類別:面上項目
項目摘要,結題摘要,
項目摘要
軟體安全漏洞是網路空間攻防雙方共同關心的戰略資源之一,因而漏洞挖掘技術的研究意義重大。當下最流行的漏洞挖掘方案大多基於程式分析技術,如靜態分析、模糊測試及符號執行等。然而,這些技術面臨著嚴重的瓶頸問題,如路徑爆炸等,制約了其漏洞挖掘的效率。此外,自動化漏洞挖掘技術方興未艾,吸引了大批研究人員的關注,但是現有方案的智慧型化程度較低,仍存在很大的提升空間。針對這些需求,本項目將在申請人前期基於程式分析的漏洞挖掘及自動化漏洞挖掘研究工作的基礎上,研究基於學習的智慧型化漏洞挖掘關鍵技術,嘗試突破程式分析技術(如符號執行和模糊測試)的瓶頸;重點從面向漏洞挖掘的深度學習方法、漏洞數據採集、漏洞數據預處理三個方面展開研究,設計並實現一個智慧型化漏洞挖掘系統原型,提高安全測試的路徑覆蓋率並提升漏洞挖掘效率,形成一個可支撐未來更多研究的漏洞數據集,最終實現提升軟體和系統安全性的目的。
結題摘要
漏洞是網路空間最重要的戰略資源之一。傳統的漏洞挖掘方案如靜態分析、動態分析、符號執行、模糊測試等技術經過多年的發展,取得了突出的成果,但是也面臨著嚴重的瓶頸制約。以深度學習為代表的人工智慧技術在多個領域取得了極大的成功。本課題對基於人工智慧的漏洞挖掘技術進行了探索研究。本課題的主要研究內容包括:(1)漏洞大數據的採集。當前的深度學習通常需要大量的訓練樣本才能取得較好的效果,而漏洞數據相對偏少,本課題對漏洞數據採集方法進行了研究。(2)漏洞數據預處理。與圖片等規則數據不同,程式的漏洞信息是不規則的。本課題進一步研究了如何對程式以及漏洞信息進行預處理,生成深度學習可以處理的規則數據。(3)基於神經網路預測結果的定向漏洞挖掘。通過對漏洞數據的訓練學習之後,得到的神經網路可以預測程式路徑是否存在潛在的安全漏洞,但是其中存在誤報。本課題最後研究了基於神經網路預測結果的定向漏洞挖掘方法。(4)此外,本課題基於採集的補丁和漏洞數據,還進行了模糊測試漏洞挖掘方法研究、二進制代碼相似性判定研究、自動化漏洞利用的研究。本課題構建了一個包含十萬條漏洞標記的數據集;設計了基於動態二進制插裝方法的漏洞執行軌跡提取方法、基於靜態控制流分析方法的目標路徑提取方法,以及程式路徑向量化表示方法;並在此基礎上分別訓練了一個CNN和一個RNN神經網路,可以預測目標程式中的未知路徑的脆弱性,在SARD數據集上的預測準確度高於95%。並實現了一個定向模糊測試方案,可以驗證神經網路預測的漏洞真實性,比傳統的模糊測試方案速度提升10%。課題另外提出了一個覆蓋率敏感的模糊測試方案,代碼覆蓋率提升20%,挖掘出150多個未知漏洞;提出的基於深度神經網路的二進制相似性判定方法,比當前方案準確率高出20%;自動化漏洞利用方案能夠自動地將一部分不可利用的漏洞觸發樣本重構為可以利用的樣本。本課題的研究表明,智慧型化技術能夠有效地輔助漏洞挖掘等關鍵任務。