基于中間表示的二進制軟件漏洞分析技術(shù)研究
發(fā)布時間:2022-10-30 19:29
隨著軟件安全事件的不斷涌現(xiàn),各種軟件漏洞被接連曝光,軟件漏洞已成為影響軟件安全的重要因素,漏洞檢測則成為信息安全領(lǐng)域的主要研究方向。現(xiàn)有的漏洞檢測方法分為面向源代碼的漏洞檢測和面向二進制軟件的漏洞檢測,其中前者已經(jīng)較為成熟,但是二進制代碼的設計特點和結(jié)構(gòu)特征都與源代碼不同,并且由于二進制語義信息的缺乏以及分析的復雜性,目前少有成熟的二進制漏洞檢測工具可以使用。同時,越來越多的軟件以二進制的形式發(fā)布,因此,對二進制程序的漏洞檢測的方法和技術(shù)進行研究是十分迫切且必要的。本文以Android平臺上的二進制軟件動態(tài)鏈接庫為研究對象,提出了一種可用于漏洞檢測的二進制程序中間語言BinaryLift以及一種全新的二進制程序語義特征表示形式ProF,并實現(xiàn)了一種基于BinaryLift和ProF的漏洞分析方案。本文的主要研究工作及成果如下:1.中間語言BinaryLift的設計與實現(xiàn):本文分析了已有的二進制程序中間語言的局限性,提出了一種類源碼級中間語言BinaryLift。BinaryLift是對底層語言的進一步轉(zhuǎn)化,其準確、完整的反映了程序信息,并且還原了程序的部分高級語義信息,彌補了直接對底層...
【文章頁數(shù)】:97 頁
【學位級別】:碩士
【文章目錄】:
摘要
Abstract
第一章 緒論
1.1 研究背景及意義
1.2 國內(nèi)外研究現(xiàn)狀
1.2.1 人工分析
1.2.2 模糊測試
1.2.3 符號執(zhí)行
1.2.4 二進制代碼比對
1.2.5 代碼特征識別
1.3 研究目標及內(nèi)容
1.4 論文主要工作及組織結(jié)構(gòu)
第二章 二進制程序的中間形式研究
2.1 中間形式構(gòu)建過程
2.2 中間語言
2.2.1 REIL
2.2.2 VEX IL
2.2.3 Vine IL
2.2.4 局限性分析
2.3 中間表示
2.3.1 樹型中間表示
2.3.2 圖型中間表示
2.3.3 文本型中間表示
2.3.4 局限性分析
2.4 本章小結(jié)
第三章 中間語言BinaryLift的設計與實現(xiàn)
3.1 設計原則
3.2 BinaryLift轉(zhuǎn)化過程
3.3 預處理
3.3.1 反匯編
3.3.2 基本塊劃分
3.4 指令翻譯
3.4.1 指令副作用
3.4.2 跳轉(zhuǎn)指令處理
3.4.3 條件表達式構(gòu)造
3.5 形式化處理
3.5.1 函數(shù)棧幀分析
3.5.2 條件選擇模式識別
3.5.3 循環(huán)模式識別
3.5.4 BinryLift語法定義
3.6 BinaryLift轉(zhuǎn)化示例
3.7 BinaryLift特點及適用性分析
3.8 本章小結(jié)
第四章 中間表示ProF的設計與實現(xiàn)
4.1 二進制程序高危漏洞
4.1.1 緩沖區(qū)溢出漏洞
4.1.2 整數(shù)溢出漏洞
4.1.3 UAF漏洞
4.2 BinaryLift漏洞表現(xiàn)形式
4.2.1 高危函數(shù)調(diào)用
4.2.2 循環(huán)內(nèi)存寫入
4.3 ProF轉(zhuǎn)化過程
4.3.1 定義
4.3.2 轉(zhuǎn)化過程
4.4 動作篩選
4.5 結(jié)果計算
4.5.1 數(shù)據(jù)流分析
4.5.2 折疊計算
4.6 條件生成
4.7 ProF特點及適用性分析
4.8 本章小結(jié)
第五章 漏洞檢測及有效性驗證
5.1 漏洞檢測模型
5.2 BinaryLift有效性驗證
5.2.1 BinaryLift vs Assembly Instructions
5.2.2 BinaryLift vs Vine IL
5.3 ProF有效性驗證
5.3.1 ProF vs BinaryLift
5.3.2 ProF vs系統(tǒng)調(diào)用鏈
5.4 Android Stagefright漏洞分析
5.5 本章小結(jié)
第六章 總結(jié)與展望
6.1 工作總結(jié)
6.2 工作展望
參考文獻
致謝
攻讀學位期間發(fā)表的學術(shù)論文
【參考文獻】:
期刊論文
[1]基于遺傳算法的二進制程序模糊測試方法[J]. 焦龍龍,羅森林,劉望桐,潘麗敏,張笈. 浙江大學學報(工學版). 2018(05)
[2]二進制程序中的use-after-free漏洞檢測技術(shù)[J]. 韓心慧,魏爽,葉佳奕,張超,葉志遠. 清華大學學報(自然科學版). 2017(10)
[3]二進制程序漏洞挖掘關(guān)鍵技術(shù)研究綜述[J]. 王夏菁,胡昌振,馬銳,高欣竺. 信息網(wǎng)絡安全. 2017(08)
[4]Cppcheck的軟件缺陷模式分析與定位[J]. 張仕金,尚趙偉. 計算機工程與應用. 2015(03)
[5]二進制程序安全缺陷靜態(tài)分析方法的研究綜述[J]. 田碩,梁洪亮. 計算機科學. 2009(07)
碩士論文
[1]二進制代碼漏洞靜態(tài)檢測研究[D]. 章亮.華僑大學 2017
本文編號:3699347
【文章頁數(shù)】:97 頁
【學位級別】:碩士
【文章目錄】:
摘要
Abstract
第一章 緒論
1.1 研究背景及意義
1.2 國內(nèi)外研究現(xiàn)狀
1.2.1 人工分析
1.2.2 模糊測試
1.2.3 符號執(zhí)行
1.2.4 二進制代碼比對
1.2.5 代碼特征識別
1.3 研究目標及內(nèi)容
1.4 論文主要工作及組織結(jié)構(gòu)
第二章 二進制程序的中間形式研究
2.1 中間形式構(gòu)建過程
2.2 中間語言
2.2.1 REIL
2.2.2 VEX IL
2.2.3 Vine IL
2.2.4 局限性分析
2.3 中間表示
2.3.1 樹型中間表示
2.3.2 圖型中間表示
2.3.3 文本型中間表示
2.3.4 局限性分析
2.4 本章小結(jié)
第三章 中間語言BinaryLift的設計與實現(xiàn)
3.1 設計原則
3.2 BinaryLift轉(zhuǎn)化過程
3.3 預處理
3.3.1 反匯編
3.3.2 基本塊劃分
3.4 指令翻譯
3.4.1 指令副作用
3.4.2 跳轉(zhuǎn)指令處理
3.4.3 條件表達式構(gòu)造
3.5 形式化處理
3.5.1 函數(shù)棧幀分析
3.5.2 條件選擇模式識別
3.5.3 循環(huán)模式識別
3.5.4 BinryLift語法定義
3.6 BinaryLift轉(zhuǎn)化示例
3.7 BinaryLift特點及適用性分析
3.8 本章小結(jié)
第四章 中間表示ProF的設計與實現(xiàn)
4.1 二進制程序高危漏洞
4.1.1 緩沖區(qū)溢出漏洞
4.1.2 整數(shù)溢出漏洞
4.1.3 UAF漏洞
4.2 BinaryLift漏洞表現(xiàn)形式
4.2.1 高危函數(shù)調(diào)用
4.2.2 循環(huán)內(nèi)存寫入
4.3 ProF轉(zhuǎn)化過程
4.3.1 定義
4.3.2 轉(zhuǎn)化過程
4.4 動作篩選
4.5 結(jié)果計算
4.5.1 數(shù)據(jù)流分析
4.5.2 折疊計算
4.6 條件生成
4.7 ProF特點及適用性分析
4.8 本章小結(jié)
第五章 漏洞檢測及有效性驗證
5.1 漏洞檢測模型
5.2 BinaryLift有效性驗證
5.2.1 BinaryLift vs Assembly Instructions
5.2.2 BinaryLift vs Vine IL
5.3 ProF有效性驗證
5.3.1 ProF vs BinaryLift
5.3.2 ProF vs系統(tǒng)調(diào)用鏈
5.4 Android Stagefright漏洞分析
5.5 本章小結(jié)
第六章 總結(jié)與展望
6.1 工作總結(jié)
6.2 工作展望
參考文獻
致謝
攻讀學位期間發(fā)表的學術(shù)論文
【參考文獻】:
期刊論文
[1]基于遺傳算法的二進制程序模糊測試方法[J]. 焦龍龍,羅森林,劉望桐,潘麗敏,張笈. 浙江大學學報(工學版). 2018(05)
[2]二進制程序中的use-after-free漏洞檢測技術(shù)[J]. 韓心慧,魏爽,葉佳奕,張超,葉志遠. 清華大學學報(自然科學版). 2017(10)
[3]二進制程序漏洞挖掘關(guān)鍵技術(shù)研究綜述[J]. 王夏菁,胡昌振,馬銳,高欣竺. 信息網(wǎng)絡安全. 2017(08)
[4]Cppcheck的軟件缺陷模式分析與定位[J]. 張仕金,尚趙偉. 計算機工程與應用. 2015(03)
[5]二進制程序安全缺陷靜態(tài)分析方法的研究綜述[J]. 田碩,梁洪亮. 計算機科學. 2009(07)
碩士論文
[1]二進制代碼漏洞靜態(tài)檢測研究[D]. 章亮.華僑大學 2017
本文編號:3699347
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3699347.html
最近更新
教材專著