軟件安全

鄒德清 李珍 羌衛中 付才 文明 金海

  • 出版商: 人民郵電
  • 出版日期: 2023-12-01
  • 定價: $839
  • 售價: 8.5$713
  • 語言: 簡體中文
  • 頁數: 240
  • ISBN: 7115625743
  • ISBN-13: 9787115625748
  • 相關分類: 資訊安全軟體工程
  • 下單後立即進貨 (約4週~6週)

  • 軟件安全-preview-1
  • 軟件安全-preview-2
軟件安全-preview-1

買這商品的人也買了...

商品描述

軟件是支撐電腦、網絡和數據的基礎,軟件安全是信息安全保障的關鍵。本書通過對現有方法的總結、技術對比和實例分析,從理論到實踐、從傳統到前沿,全面深入地闡述軟件安全中的軟件漏洞與攻擊利用、軟件脆弱性分析與軟件漏洞挖掘及軟件防護技術,分別從基本概念、各種傳統與前沿的軟件防護方法的原理、典型應用、未來發展趨勢等方面進行詳細介紹。

本書既可以作為軟件安全相關專業研究生的軟件安全系列課程教材,也可以作為相關科研人員或電腦技術人員的參考書。

作者簡介

邹德清 博士,华中科技大学教授、博士生导师,网络空间安全学院常务副院长,国家网络安全优秀教师(2018),教育部新世纪优秀人才(2014-2017),教育部网络空间安全教育指导委员会委员(2018-2022)兼学校教学指导委员会委员,国家网络安全人才与创新基地办公室副主任(2018-),武汉市网络安全战略与发展研究院副院长,中国网络空间安全协会数据安全工作委员会副主任,中文信息学会大数据安全与隐私计算专委会副秘书长。长期在网络空间安全领域开展研究。

目錄大綱

第 一篇 軟件漏洞與攻擊利用

第 1章 軟件安全概述 3

1.1 軟件安全的定義及內涵 3

1.1.1 軟件安全的定義 3

1.1.2 用信息安全的屬性來理解軟件安全 4

1.2 軟件安全問題 4

1.2.1 引起軟件安全問題的原因 4

1.2.2 軟件安全問題帶來的影響 6

1.2.3 軟件安全面臨的挑戰 7

1.3 軟件安全發展歷程 8

1.3.1 黑客起源 8

1.3.2 萬維網興起 8

1.3.3 軟件安全開發生命周期的提出 9

1.3.4 在雲中擴展安全開發 9

1.4 軟件安全學科的主要內容 10

1.4.1 軟件安全與系統安全、網絡安全之間的關系 10

1.4.2 軟件安全的主流技術 11

1.5 確保軟件安全的工程化方法 12

1.6 小結 13

參考文獻 14

第 2章 主流的軟件漏洞類型及典型攻擊方法 15

2.1 空間錯誤類內存漏洞及攻擊方法 15

2.1.1 堆緩沖區溢出漏洞 15

2.1.2 棧緩沖區溢出 17

2.1.3 格式化字符串漏洞攻擊 18

2.2 時間錯誤類內存漏洞及攻擊方法 19

2.2.1 Double-Free漏洞攻擊 19

2.2.2 Use-After-Free攻擊 20

2.3 條件競爭漏洞及攻擊方法 21

2.3.1 TOCTOU攻擊 21

2.3.2 Double-Fetch攻擊 22

2.4 代碼註入型攻擊 24

2.5 代碼重用型攻擊 25

2.5.1 Return-to-libc(Ret2libc)攻擊 25

2.5.2 ROP攻擊 28

2.5.3 JOP攻擊 31

2.6 控制流劫持攻擊 32

2.7 數據流劫持攻擊 32

2.8 內存泄露攻擊 33

2.9 小結 34

參考文獻 34

第3章 漏洞利用技術 36

3.1 漏洞利用技術簡介 36

3.1.1 Exploit、Payload與Shellcode 36

3.1.2 漏洞的可利用性 37

3.1.3 漏洞利用的影響 38

3.2 人工漏洞利用 39

3.2.1 概述 39

3.2.2 觸發漏洞路徑 39

3.2.3 構造利用鏈 41

3.2.4 繞過安全機制 43

3.2.5 實例:CVE-2018-5767棧溢出漏洞 44

3.2.6 實例:CVE-2011-0065 UAF漏洞 45

3.3 自動化漏洞利用 47

3.3.1 基於二進制補丁比較的自動化漏洞利用 47

3.3.2 面向控制流的自動化漏洞利用 47

3.3.3 面向數據流的自動化漏洞利用 48

3.4 小結 49

參考文獻 49

第二篇 軟件脆弱性分析與軟件漏洞挖掘

第4章 軟件安全角式化驗證 53

4.1 軟件安全角式化驗證技術介紹 53

4.1.1 什麽是形式化驗證 53

4.1.2 定理證明方法簡介 54

4.1.3 模型檢驗方法簡介 54

4.2 軟件安全角式化驗證面臨的挑戰 55

4.2.1 定理證明方法面臨的挑戰 55

4.2.2 模型檢驗方法的算法挑戰 55

4.2.3 模型檢驗的建模挑戰 56

4.3 軟件安全角式化驗證的主流技術 57

4.3.1 Kripke結構 57

4.3.2 定理證明工具簡介 59

4.3.3 模型檢驗的關鍵技術 60

4.3.4 模型檢驗的主流驗證工具 63

4.4 典型應用 67

4.4.1 問題描述與建模 67

4.4.2 使用NuSMV工具解決農夫過河問題 68

4.4.3 使用SPIN工具解決農夫過河問題 70

4.5 未來的發展趨勢 72

4.5.1 未來的發展方向 72

4.5.2 新時代的挑戰 72

4.6 小結 73

參考文獻 73

第5章 符號執行技術 74

5.1 符號執行的定義 74

5.2 靜態符號執行 75

5.2.1 靜態符號執行的原理 75

5.2.2 靜態符號執行的局限性 76

5.3 動態符號執行 76

5.3.1 混合測試 77

5.3.2 執行生成測試 79

5.3.3 選擇性符號執行 80

5.4 典型應用 80

5.4.1 結合模糊測試進行漏洞檢測 80

5.4.2 代碼覆蓋率測試 81

5.4.3 反混淆 82

5.5 未來發展趨勢 82

5.6 小結 84

參考文獻 84

第6章 污點分析技術 85

6.1 污點分析技術的定義 85

6.2 靜態污點分析技術 86

6.2.1 靜態數據流分析的圖的可達性查詢算法 86

6.2.2 典型靜態污點分析系統及應用 88

6.3 動態污點分析技術 89

6.3.1 動態污點分析技術的關鍵問題 90

6.3.2 應用層動態污點分析技術 93

6.3.3 典型應用層動態污點分析系統 97

6.3.4 虛擬機層全系統動態污點分析技術 102

6.3.5 典型全系統動態污點分析系統及應用 102

6.4 典型應用 104

6.4.1 自動化網絡協議格式逆向分析技術 104

6.4.2 程序惡意行為檢測 105

6.4.3 智能手機上的敏感信息跟蹤與分析 106

6.4.4 漏洞檢測 106

6.5 未來發展趨勢 107

6.6 小結 108

參考文獻 108

第7章 軟件漏洞挖掘 110

7.1 基於規則的軟件漏洞挖掘 110

7.1.1 基本概念 110

7.1.2 數據流分析 111

7.1.3 基於符號執行的漏洞挖掘 121

7.2 克隆漏洞挖掘 125

7.2.1 基本概念 125

7.2.2 克隆漏洞挖掘的流程 130

7.2.3 挑戰與未來發展趨勢 134

7.3 智能漏洞挖掘 136

7.3.1 基本概念 136

7.3.2 智能漏洞挖掘流程 137

7.3.3 數據表徵 138

7.3.4 模型學習 140

7.3.5 未來發展趨勢 143

7.4 基於模糊測試的漏洞挖掘 144

7.4.1 基本概念 144

7.4.2 基於變異的模糊測試 144

7.4.3 基於生成的模糊測試 144

7.4.4 未來發展趨勢 145

7.5 典型應用 145

7.5.1 VulDeePecker概述 145

7.5.2 VulDeePecker總體架構 146

7.6 未來發展趨勢 147

7.7 小結 147

參考文獻 148

第三篇 軟件防護技術

第8章 代碼安全與代碼完整性保護 151

8.1 代碼安全面臨的主要挑戰 151

8.2 代碼的安全編程 152

8.2.1 系統安全架構設計 152

8.2.2 輸入數據可信性驗證 152

8.2.3 緩沖區溢出防範 153

8.2.4 程序錯誤與異常處理 154

8.3 代碼完整性保護 155

8.3.1 軟件水印技術 155

8.3.2 代碼混淆技術 155

8.3.3 代碼隱藏 159

8.3.4 數據執行保護 159

8.4 典型應用 159

8.4.1 安全編碼標準 159

8.4.2 代碼保護工具 160

8.5 未來發展趨勢 161

8.6 小結 161

參考文獻 161

第9章 控制流完整性保護 163

9.1 控制流劫持 163

9.1.1 程序的控制流轉移 163

9.1.2 控制流劫持攻擊 164

9.2 控制流完整性保護 165

9.2.1 控制流完整性的定義 165

9.2.2 控制流完整性保護過程 166

9.3 控制流完整性保護方案介紹 167

9.3.1 粗粒度的CFI保護 168

9.3.2 細粒度的CFI保護 175

9.3.3 硬件輔助的CFI保護 179

9.4 典型應用 185

9.5 未來發展趨勢 186

9.6 小結 186

參考文獻 187

第 10章 數據流與數據流完整性保護 188

10.1 數據流定義 188

10.2 數據流分析方法及分類 188

10.2.1 程序控制流圖 188

10.2.2 程序數據流圖 189

10.2.3 數據流分析方法 190

10.3 典型數據流分析方法 193

10.3.1 定義可達分析 194

10.3.2 存活變量分析 196

10.3.3 典型數據流分析方法總結 199

10.4 數據流分析方法的典型應用場景 200

10.4.1 漏洞挖掘 200

10.4.2 軟件測試 202

10.4.3 代碼表示 203

10.5 數據流完整性保護 204

10.5.1 數據流完整性概念 204

10.5.2 數據流完整性保護實例 204

10.5.3 數據完整性保護的發展與挑戰 206

10.6 典型應用 209

10.6.1 面向操作系統內核的數據流完整性保護 209

10.6.2 面向實時系統的數據流完整性保護 210

10.7 未來發展趨勢 210

10.8 小結 211

參考文獻 211

第 11章 軟件隨機化保護技術 213

11.1 ASLR介紹 213

11.1.1 回顧:虛擬地址空間佈局 213

11.1.2 ASLR 215

11.1.3 PIC和PIE技術 218

11.1.4 實例:Windows操作系統上的ASLR機制 219

11.2 ASLR的分類和實例 223

11.2.1 時間維度 223

11.2.2 粒度維度 226

11.2.3 方法維度 228

11.3 拓展:ASLR其他相關研究 231

11.3.1 內核ASLR 231

11.3.2 Retouching 232

11.4 指令集隨機化相關研究 233

11.4.1 指令集直接加解密 233

11.4.2 ASIST 234

11.4.3 Polyglot 236

11.5 典型應用 238

11.6 未來發展趨勢 239

11.7 小結 239

參考文獻 240