軟件安全
鄒德清 李珍 羌衛中 付才 文明 金海
買這商品的人也買了...
-
$2,170$2,062 -
$960$864 -
$550$550 -
$700$665 -
$301並行演算法設計與性能優化
-
$580$435 -
$948$901 -
$454深入淺出 HTTPS : 從原理到實戰
-
$880$695 -
$774$735 -
$602用“芯”探核基於龍芯的 Linux 內核探索解析
-
$1,600$1,520 -
$594$564 -
$708$673 -
$594$564 -
$1,840$1,748 -
$505極限黑客攻防:CTF 賽題揭秘
-
$419$398 -
$662算法訓練營:海量圖解 + 競賽刷題 (入門篇)
-
$774$735 -
$352C++ 新經典:模板與泛型編程
-
$316程序員的制勝技
-
$948$901 -
$454CPU 眼裡的 C/C++
-
$534$507
相關主題
商品描述
軟件是支撐電腦、網絡和數據的基礎,軟件安全是信息安全保障的關鍵。本書通過對現有方法的總結、技術對比和實例分析,從理論到實踐、從傳統到前沿,全面深入地闡述軟件安全中的軟件漏洞與攻擊利用、軟件脆弱性分析與軟件漏洞挖掘及軟件防護技術,分別從基本概念、各種傳統與前沿的軟件防護方法的原理、典型應用、未來發展趨勢等方面進行詳細介紹。
本書既可以作為軟件安全相關專業研究生的軟件安全系列課程教材,也可以作為相關科研人員或電腦技術人員的參考書。
作者簡介
邹德清 博士,华中科技大学教授、博士生导师,网络空间安全学院常务副院长,国家网络安全优秀教师(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