定 價(jià):88 元
叢書名:普通高等教育“十三五”規(guī)劃教材普通高等院校工程實(shí)踐系列規(guī)劃教材
- 作者:吳世忠等著
- 出版時(shí)間:2014/11/1
- ISBN:9787030418906
- 出 版 社:科學(xué)出版社
- 中圖法分類:TP311.53
- 頁(yè)碼:536
- 紙張:膠版紙
- 版次:1
- 開本:16K
《軟件漏洞分析技術(shù)》首先介紹了軟件漏洞在當(dāng)今社會(huì)所造成的影響,進(jìn)而引出漏洞的基本概念,包括定義、特點(diǎn)、分類等,在此基礎(chǔ)上總結(jié)了現(xiàn)今普遍應(yīng)用的漏洞分析方法,并進(jìn)一步將其劃分為源代碼漏洞分析、二進(jìn)制漏洞分析、架構(gòu)安全性分析和運(yùn)行系統(tǒng)漏洞分析等4大類別;在后面的章節(jié)中對(duì)4大類漏洞分析技術(shù)所包含的具體技術(shù)從基本原理、實(shí)現(xiàn)方法、實(shí)例分析和典型使用等幾個(gè)方面進(jìn)行展開;并在最后對(duì)未來漏洞分析的前景進(jìn)行了展望。
更多科學(xué)出版社服務(wù),請(qǐng)掃碼獲取。
漏洞分析技術(shù)和理論的研究人員;信息安全專業(yè)相關(guān)的教師和學(xué)生;漏洞分析和漏洞挖掘工程師。
目錄
第1部分 漏洞分析基礎(chǔ)
第1章 軟件中的漏洞
1.1 漏洞概述 3
1.1.1 漏洞定義 3
1.1.2 漏洞特點(diǎn) 7
1.2 漏洞分類與分級(jí) 9
1.2.1 漏洞分類 9
1.2.2 漏洞分級(jí) 12
1.3 漏洞的影響 15
1.3.1 漏洞無處不在 15
1.3.2 漏洞分析保障信息安全 18
參考文獻(xiàn) 22
第2章 漏洞分析發(fā)展歷程
2.1 軟件漏洞分析 25
2.1.1 廣義漏洞分析 26
2.1.2 狹義漏洞分析 26
2.2 原始萌芽階段 28
2.2.1 通信安全 28
2.2.2 分析萌芽 29
2.2.3 信息加密 30
2.3 初步發(fā)展階段 30
2.3.1 計(jì)算機(jī)安全 31
2.3.2 單一化漏洞挖掘 31
2.3.3 操作系統(tǒng)防護(hù) 32
2.4 高速發(fā)展階段 33
2.4.1 互聯(lián)網(wǎng)安全 33
2.4.2 多樣化漏洞分析 34
2.4.3 信息系統(tǒng)防護(hù) 36
2.5 綜合治理階段 38
2.5.1 網(wǎng)際安全 38
2.5.2 系統(tǒng)化漏洞管控 39
2.5.3 防御體系建設(shè) 44
參考文獻(xiàn) 48
第3章 漏洞分析技術(shù)概述
3.1 漏洞分析技術(shù)體系 56
3.2 軟件架構(gòu)安全分析 58
3.2.1 形式化架構(gòu)分析技術(shù) 59
3.2.2 工程化架構(gòu)分析技術(shù) 60
3.2.3 分析技術(shù)對(duì)比 60
3.3 源代碼漏洞分析 61
3.3.1 基于中間表示的分析技術(shù) 63
3.3.2 基于邏輯推理的分析技術(shù) 64
3.3.3 分析技術(shù)對(duì)比 64
3.4 二進(jìn)制漏洞分析 66
3.4.1 靜態(tài)漏洞分析技術(shù) 67
3.4.2 動(dòng)態(tài)漏洞分析技術(shù) 68
3.4.3 動(dòng)靜結(jié)合的漏洞分析技術(shù) 68
3.4.4 分析技術(shù)對(duì)比 69
3.5 運(yùn)行系統(tǒng)漏洞分析 70
3.5.1 信息收集 71
3.5.2 漏洞檢測(cè) 71
3.5.3 漏洞確認(rèn) 72
3.5.4 分析技術(shù)對(duì)比 72
參考文獻(xiàn) 73
第2部分 源代碼漏洞分析
第4章 數(shù)據(jù)流分析
4.1 基本原理 79
4.1.1 基本概念 79
4.1.2 檢測(cè)程序漏洞 80
4.1.3 輔助支持技術(shù) 83
4.2 方法實(shí)現(xiàn) 85
4.2.1 使用數(shù)據(jù)流分析檢測(cè)程序漏洞 85
4.2.2 數(shù)據(jù)流分析作為輔助技術(shù) 98
4.3 實(shí)例分析 101
4.3.1 使用數(shù)據(jù)流分析檢測(cè)程序漏洞 101
4.3.2 數(shù)據(jù)流分析作為輔助技術(shù) 106
4.4 典型工具 107
4.4.1 Fortify SCA 107
4.4.2 Coverity Prevent 109
4.4.3 FindBugs 112
參考文獻(xiàn) 114
第5章 污點(diǎn)分析
5.1 基本原理 1 16
5.1.1 基本概念 116
5 1.2 使用污點(diǎn)分析技術(shù)挖掘程序漏洞 117
5.2 方法實(shí)現(xiàn) 1 19
5.2.1 基于數(shù)據(jù)流的污點(diǎn)分析 119
5.2.2 基于依賴關(guān)系的污點(diǎn)分析 125
5.3 實(shí)例分析 126
5.4 典型工具 128
5.4.1 Pixy 128
5.4.2 TAJ 130
參考文獻(xiàn) 131
第6章 符號(hào)執(zhí)行
6.1 基本原理 134
6.1.1 基本概念 134
6.1.2 襝測(cè)程序漏洞 136
6.1.3 構(gòu)造測(cè)試用例 138
6.1.4 與其他漏洞分析技術(shù)結(jié)合 140
6.2 方法實(shí)現(xiàn) 141
6.2.1 使用符號(hào)執(zhí)行檢測(cè)程序漏洞 141
6.2.2 使用符號(hào)執(zhí)行構(gòu)造測(cè)試用例 148
6.3 實(shí)例分析 149
6.3.1 檢測(cè)程序漏洞 149
6.3.2 構(gòu)造測(cè)試用例 151
6.4 典型工具 153
6.4.1 Clang 153
6.4.2 KLEE 156
參考文獻(xiàn) 158
第7章 模型檢測(cè)
7.1 基本原理 161
7.1.1 基本概念 161
7.1.2 技術(shù)框架 l62
7.1.3 方法特點(diǎn) 163
7.2 方法實(shí)現(xiàn) 164
7.2.1 程序建模 165
7.2.2 安全缺陷屬性描述 166
7.2.3 程序漏洞檢查 168
7.3 實(shí)例分析 170
7.3.1 線性時(shí)序邏輯檢查 170
7.3.2 分布式軟件的漏洞檢測(cè) 172
7.4 典型工具 175
7.4.1 SLAM 176
7.4.2 MOPS 178
參考文獻(xiàn) 182
第8章 定理證明
8.1 基本原理 185
8.1.1 基本概念 1 85
8.1.2 技術(shù)框架 1 86
8.1.3 方法特點(diǎn) 187
8.2 方法實(shí)現(xiàn) 187
8.2.1 程序轉(zhuǎn)換 1 88
8.2.2 屬性描述 192
8.2.3 定理證明 194
8.3 實(shí)例分析 198
8.3.1 整數(shù)溢出漏洞分析 198
8.3.2 TLS協(xié)議邏輯漏洞分析 200
8.3.3 輸入驗(yàn)證類漏洞分析 203
8.4 典型工具 205
8.4.1 Saturn 205
8.4.2 ESC/Java 207
參考文獻(xiàn) 208
第3部分 二進(jìn)制漏洞分析
第9章 模糊測(cè)試
9.1 基本原理 215
9.1.1 基本概念 215
9.1.2 基本過程 216
9.2 方法實(shí)現(xiàn) 217
9.2.1 輸入數(shù)據(jù)的關(guān)聯(lián)分析 217
9.2.2 測(cè)試用例集的構(gòu)建方法 223
9.2.3 測(cè)試異常分析 227
9.2.4 模糊測(cè)試框架 231
9.3 實(shí)例分析 232
9.3.1 文件模糊測(cè)試 233
9.3.2 網(wǎng)絡(luò)協(xié)}義模糊測(cè)試 236
9.3.3 ActiveX控件模糊測(cè)試 239
9.4 典型工具 242
9.4.1 Peach 242
9.4.2 Sulley 244
參考文獻(xiàn) 246
第10章 動(dòng)態(tài)污點(diǎn)分析
10.1 基本原理 247
10.1.1 基本概念 247
10.1.2 動(dòng)態(tài)污點(diǎn)分析原理 248
10.1.3 方法特點(diǎn) 250
10.2 方法實(shí)現(xiàn) 251
10.2.1 污點(diǎn)數(shù)據(jù)標(biāo)記 252
10.2.2 污點(diǎn)動(dòng)態(tài)跟蹤 254
10.2.3 污點(diǎn)誤用檢查 260
10.3 實(shí)例分析 262
10.4 典型工具 264
10.4.1 TaintCheck 265
10.4.2 Argos 265
10.4.3 TaintDroid 267
參考文獻(xiàn) 268
第11章 基于模式的漏洞分析
11.1 基本原理 270
11.1.1 基本概念 270
11.1.2 二進(jìn)制文件結(jié)構(gòu) 271
11.2 方法實(shí)現(xiàn) 277
11.2.1 反匯編分析 277
11.2.2 逆向中間表示 280
11.2.3 漏洞模式建模 289
11.2.4 漏洞模式檢測(cè) 293
11.3 實(shí)例分析 295
11.3.1 緩沖區(qū)溢出類漏洞實(shí)例(不安全函數(shù)調(diào)用) 295
11.3.2 緩沖區(qū)溢出類漏洞實(shí)例(循環(huán)寫內(nèi)存) 298
11.3.3 整數(shù)溢出類漏洞實(shí)例 299
11.3.4 內(nèi)存地址對(duì)象破壞性調(diào)用類漏洞實(shí)例 300
11.4 典型工具 302
11.4.1 BinNavi 302
11.4.2 BAP 303
參考文獻(xiàn) 304
第12章 基于二進(jìn)制代碼比對(duì)的漏洞分析
12.1 基本原理 307
12.1.1 研究現(xiàn)狀 307
12.1.2 基本原理 308
12.2 方法實(shí)現(xiàn) 310
12.2.1 基于文本的二進(jìn)制代碼比對(duì) 310
12.2.2 基于圖同構(gòu)的二進(jìn)制比對(duì) 311
12.2.3 基于結(jié)構(gòu)化的二進(jìn)制比對(duì) 313
12.2.4 軟件補(bǔ)丁的二進(jìn)制比對(duì)技術(shù) 317
12.3 實(shí)例分析 318
12.3.1 漏洞信息搜集 318
12.3.2 搭建調(diào)試環(huán)境 318
12.3.3 補(bǔ)丁比對(duì) 319
12.3.4 靜態(tài)分析 321
12.3.5 動(dòng)態(tài)調(diào)試 322
12.4 典型工具 324
12.4.1 Bindiff 324
12.4.2 Eye Binary Diffing Suite 326
參考文獻(xiàn) 328
第13章 智能灰盒測(cè)試
13.1 基本原理 330
13.1.1 基本概念 330
13.1.2 智能灰盒測(cè)試的過程 331
13.2 方法實(shí)現(xiàn) 332
13.2.1 動(dòng)態(tài)符號(hào)執(zhí)行 333
13.2.2 路徑控制與定向遍歷 339
13.2.3 路徑約束求解 350
13.2.4 漏洞觸發(fā)數(shù)據(jù)生成 359
13.3 實(shí)例分析 364
13.3.1 關(guān)鍵路徑提取 364
13.3.2 中間符號(hào)設(shè)置 365
13.3.3 污點(diǎn)分析 366
13.3.4 執(zhí)行Trace獲取 368
13.3.5 路徑控制與定向遍歷 369
13.3.6 約束求解 370
13 3.7 結(jié)論 371
13.4 典型工具 371
13.4.1 Dart 371
13.4.2 Smart fuzzing 373
13.4.3 BitBlaze 375
參考文獻(xiàn) 376
第4部分 架構(gòu)安全和運(yùn)行系統(tǒng)漏洞分析
第14章 軟件架構(gòu)安全分析
14.1 基本原理 383
14.1.1 軟件架構(gòu)定義 383
14.1.2 架構(gòu)安全概述 384
14.1.3 架構(gòu)安全分析過程 386
14.2 方法實(shí)現(xiàn) 386
14.2.1 形式化分析技術(shù) 386
14.2.2 工程化分析技術(shù) 391
14.3 實(shí)例分析 400
14.3.1 形式化分析實(shí)例一一UMLsec 400
14.3.2 工程化分析實(shí)例一一基于Web應(yīng)用程序的威脅建模 403
14.4 典型工具 406
14.4.1 威脅建模工具 406
14.4.2 軟件架構(gòu)分析工具 408
參考文獻(xiàn) 409
第15章 運(yùn)行系統(tǒng)漏洞分析
15.1 基本原理 411
15.1.1 基本概念 411
15.1.2 運(yùn)行系統(tǒng)漏洞分析 412
15.2 方法實(shí)現(xiàn) 414
15.2.1 信息收集 414
15 2.2 配置管理漏洞檢測(cè) 417
15.2.3 通信協(xié)議漏澗檢測(cè) 418
15 2.4 授權(quán)認(rèn)證漏洞檢測(cè) 420
15.2.5 數(shù)據(jù)驗(yàn)證漏洞檢測(cè) 423
15 2.6 數(shù)據(jù)安全性漏洞檢測(cè) 425
15.3 實(shí)例分析 426
15.3.1 信息收集 426
15 3.2 漏洞檢測(cè)過程 426
15.4 典型工具 429
15.4.1 Nmap 429
15.4.2 NeSSuS 430
15.4.3 微軟基線安全分析器 431
15.4.4 WVS 432
參考文獻(xiàn) 434
第5部分 前沿技術(shù)及未來展望
第16章 漏洞分析領(lǐng)域新挑戰(zhàn)
16.1 移動(dòng)智能終端漏洞分析 439
16.1.1 領(lǐng)域背景 439
16.1.2 漏洞分析技術(shù) 440
16.1.3 應(yīng)對(duì)措施 443
16.2 云計(jì)算平臺(tái)漏洞分析 444
16.2.1 領(lǐng)域背景 444
16.2.2 漏洞分析技術(shù) 446
16.2.3 應(yīng)對(duì)措施 449
16.3 物聯(lián)網(wǎng)漏洞分析 449
16.3.1 領(lǐng)域背景 449
16.3.2 漏洞分析技術(shù) 451
16.3.3 應(yīng)對(duì)措施 455
16.4 工控系統(tǒng)漏洞分析 456
16.4.1 領(lǐng)域背景 456
16.4.2 漏洞分析技術(shù) 457
16.4.3 應(yīng)對(duì)措施 461
16.5 其他新興領(lǐng)域的漏洞分析 462
16.5.1 智能家居的漏洞分析 462
16.5.2 眢能交通的漏洞分析 464
16.5.3 可穿戴設(shè)備的漏洞分析 466
參考文獻(xiàn) 467
第17章 漏洞分析技術(shù)展望
17.1 理論突破 476
17 1.1 軟件模型構(gòu)建 476
17.1.2 漏洞模式提取 477
17.1.3 技術(shù)極限求解 478
17.2 技術(shù)發(fā)展 479
17.2.1 精確度判定 479
17.2.2 分析性能的提高 480
17.2.3 智能化提升 481
17.3 工程實(shí)現(xiàn) 482
17.3.1 大規(guī)模軟件的漏洞分析 482
17.3.2 新型平臺(tái)上的漏洞分析 485
17.3.3 通用平臺(tái)級(jí)漏洞分析軟件開發(fā) 488
參考文獻(xiàn) 489
附錄A 國(guó)內(nèi)外重要漏洞庫(kù)介紹
A.1 國(guó)家級(jí)漏洞庫(kù) 492
A.2 行業(yè)級(jí)漏洞庫(kù) 495
A.3 民間級(jí)漏洞庫(kù) 496
參考文獻(xiàn) 502
附錄B 國(guó)內(nèi)外重要安全標(biāo)準(zhǔn)介紹
B.1 總體情況 503
B.2 基礎(chǔ)類標(biāo)準(zhǔn) 504
B.2.1 國(guó)內(nèi)標(biāo)準(zhǔn) 504
B.2.2 國(guó)際標(biāo)準(zhǔn) 505
B.3 防范類標(biāo)準(zhǔn) 509
B.3.1 國(guó)內(nèi)標(biāo)準(zhǔn) 509
B.3.2 國(guó)際標(biāo)準(zhǔn) 512
B.4 管理類標(biāo)準(zhǔn) 514
B.4.1 國(guó)內(nèi)標(biāo)準(zhǔn) 514
B.4.2 國(guó)際標(biāo)準(zhǔn) 515
B.5 應(yīng)用類標(biāo)準(zhǔn) 517
B.5.1國(guó)際標(biāo)準(zhǔn) 517
2.3.1計(jì)算機(jī)安全
隨著計(jì)算機(jī)技術(shù)的發(fā)展,社會(huì)各方面對(duì)于計(jì)算機(jī)技術(shù)需求量不斷增加,使得計(jì)算機(jī)安全問題也日益突出。操作系統(tǒng)作為計(jì)算機(jī)軟硬件統(tǒng)一的管理平臺(tái),是引發(fā)各種計(jì)算機(jī)安全問題的主要載體,其中通過漏洞提升訪問權(quán)限來竊取系統(tǒng)中的信息或通過病毒損壞系統(tǒng)文件是最常見的安全問題。首先,攻擊者利用漏洞得到計(jì)算機(jī)的合法身份進(jìn)入計(jì)算機(jī)系統(tǒng),肆意對(duì)計(jì)算機(jī)中的數(shù)據(jù)進(jìn)行復(fù)制、修改、刪除等操作。美國(guó)五角大樓的計(jì)算機(jī)專家曾模仿黑客攻擊了自己的計(jì)算機(jī)系統(tǒng)1.2萬次,其中88%均成功。其次,惡性病毒傳播往往借助于軟件漏洞,可以使整個(gè)計(jì)算機(jī)系統(tǒng)崩潰,最終導(dǎo)致數(shù)據(jù)的破壞。計(jì)算機(jī)病毒主要在DOS、Windows、WindowsNT、UNIX等操作系統(tǒng)下通過文件拷貝的方式傳播,早期的計(jì)算機(jī)病毒主要破壞DOS引導(dǎo)區(qū)、文件分配表、可執(zhí)行文件,后期出現(xiàn)了專門針對(duì)Windows、文本文件、數(shù)據(jù)庫(kù)文件的病毒;再次,由于操作系統(tǒng)自身存在的安全漏洞和后門,也會(huì)帶來安全隱患。例如,輸入輸出的非法訪問,即在某些操作系統(tǒng)中一旦I/O操作檢查通過后,該操作系統(tǒng)將繼續(xù)執(zhí)行而不再檢查,從而造成后續(xù)操作的非法訪問。還有某些操作系統(tǒng)使用公共的系統(tǒng)緩沖區(qū),任何用戶都可以使用該緩沖區(qū),如果缺乏嚴(yán)格的安全措施,那么其中的信息(如用戶的認(rèn)證數(shù)據(jù)、口令等)就有可能泄露。
由此,如果設(shè)計(jì)操作系統(tǒng)時(shí)不能處理好開放和隔離兩者之間的矛盾,就會(huì)蘊(yùn)藏巨大的安全隱患,計(jì)算機(jī)安全問題必然造成訪問控制的混亂。為減少安全問題,以“預(yù)防、消除和減少計(jì)算機(jī)系統(tǒng)用戶的非授權(quán)行為”為核心的計(jì)算機(jī)安全的概念逐漸開始流行。計(jì)算機(jī)安全是對(duì)數(shù)據(jù)處理系統(tǒng)采取的技術(shù)及管理方面的安全保護(hù),保護(hù)計(jì)算機(jī)硬件、軟件、數(shù)據(jù)不因偶然的或惡意的原因而遭到破壞和更改,其核心是防止非授權(quán)的用戶通過提升自己的權(quán)限來獲取計(jì)算機(jī)系統(tǒng)中的信息。
2.3.2單一化漏洞挖掘
為減少操作系統(tǒng)漏洞以降低計(jì)算機(jī)安全隱患,以手工分析為主的漏洞分析技術(shù)開始出現(xiàn),但早期漏洞分析技術(shù)比較單一。例如,1973年Kildall提出了數(shù)據(jù)流分析方法,指出這種方法可用于分析程序在不同點(diǎn)計(jì)算的信息,可被編譯器用于程序優(yōu)化。80年代,Jones和Shivers開始使用控制流分析技術(shù)對(duì)程序代碼進(jìn)行靜態(tài)分析。1980年,美國(guó)密歇根大學(xué)的:Hebbard小組使用“滲透分析”(Penetration Analysis)方法分析了某虛擬內(nèi)存系統(tǒng)中的部分漏洞口。1990年,美國(guó)伊利諾斯大學(xué)的Marick發(fā)表系統(tǒng)漏洞調(diào)查報(bào)告,對(duì)系統(tǒng)漏洞的形成特點(diǎn)做出了統(tǒng)計(jì)分析。90年代中期,Mudge和Aleph以x86為平臺(tái),對(duì)計(jì)算機(jī)系統(tǒng)中的棧結(jié)構(gòu)及系統(tǒng)棧中的緩沖區(qū)溢出漏洞做了詳細(xì)描述,利用反匯編和下斷點(diǎn)等程序調(diào)試技術(shù)進(jìn)行了分析與演示,最后編寫了相關(guān)實(shí)例和針對(duì)這些實(shí)例的攻擊代碼,這使得原本神秘莫測(cè)的漏洞分析變得淺顯易懂,而這正是此階段進(jìn)行漏洞分析所普遍使用的方法;诖,更多的分析人員也漸漸掌握了緩沖區(qū)溢出漏洞的分析方法。在手工分析時(shí),主要使用程序逆向分析工具輔助進(jìn)行,主要包括商業(yè)化的反匯編器、調(diào)試器等,常見的如IDA、OllyDbg和C32Asm等,它們可以幫助分析人員理解二進(jìn)制代碼的整體結(jié)構(gòu)和模塊,并在可知的執(zhí)行路徑上進(jìn)行相應(yīng)的實(shí)際跟蹤,因此更便于程序漏洞的發(fā)現(xiàn)。
……