基本信息
圖書詳細信息
ISBN:9787302138044
定價:38元
印次:1-1
裝幀:平裝
印刷日期:2006-11-3
圖書簡介
該書採用理論和實踐相結合的方式,對於每個漏洞都給出了詳細的描述、產生的原理、查找的方法、彌補的措施等內容,同時,對於每個漏洞,作者還精選了系統中實際出現的例子加以說明,使其更直觀,令讀者印象更為深刻。另外,在彌補措施中,作者結合多種不同的語言給出具體的代碼彌補方案,從而更增強了實用性。
目錄
第1章 緩衝區溢出 1
1.1 漏洞概述 1
1.2 受影響的程式語言 2
1.3 漏洞詳細解釋 2
1.3.1 受漏洞影響的C/C++ 5
1.3.2 相關漏洞 8
1.4 查找漏洞模式 8
1.5 在代碼審查中查找該漏洞 8
1.6 發現該漏洞的測試技巧 9
1.7 漏洞示例 10
1.7.1 CVE-1999-0042 10
1.7.2 CVE-2000-0389
— CVE-2000-0392 10
1.7.3 CVE-2002-0842、
CVE-2003-0095、
CAN-2003-0096 11
1.7.4 CAN-2003-0352 11
1.8 彌補措施 12
1.8.1 替換危險的字元串
處理函式 12
1.8.2 審計分配操作 12
1.8.3 檢查循環和數組訪問 12
1.8.4 使用C++字元串來替
換C字元串緩衝區 12
1.8.5 使用STL容器替代靜
態數組 13
1.8.6 使用分析工具 13
1.9 其他防禦措施 13
1.9.1 棧保護 14
1.9.2 不可執行的棧和堆 14
1.10 其他資源 14
1.11 本章總結 16
第2章 格式化字元串問題 17
2.1 漏洞概述 17
2.2 受影響的程式語言 18
2.3 漏洞詳細解釋 18
2.3.1 受漏洞影響的C/C++ 20
2.3.2 相關漏洞 20
2.4 查找漏洞模式 21
2.5 在代碼審查中查找該漏洞 21
2.6 發現該漏洞的測試技巧 21
2.7 漏洞示例 22
2.7.1 CVE-2000-0573 22
2.7.2 CVE-2000-0844 22
2.8 彌補措施 23
2.9 其他防禦措施 23
2.10 其他資源 23
2.11 本章總結 24
第3章 整數溢出 25
3.1 漏洞概述 25
3.2 受影響的程式語言 25
3.3 漏洞詳細解釋 26
3.3.1 受漏洞影響的C和C++ 26
3.3.2 受漏洞影響的C# 31
3.3.3 受漏洞影響的Visual Basic和Visual Basic.net 32
3.3.4 受漏洞影響的Java 33
3.3.5 受漏洞影響的Perl 34
3.4 查找漏洞模式 35
3.5 在代碼審查中查找漏洞 35
3.5.1 C/C++ 35
3.5.2 C# 37
3.5.3 Java 37
3.5.4 Visual Basic和Visual
Basic.NET 38
3.5.5 Perl 38
3.6 發現該漏洞的測試技巧 38
3.7 漏洞示例 38
3.7.1 在Windows腳本引擎中
存在的漏洞可以導致
任意代碼執行 38
3.7.2 在SOAPParameter的對象
構造函式中存在整數溢出 39
3.7.3 在HTR塊編碼中存在的
堆溢出可以導致Web
伺服器遭到入侵 39
3.8 彌補措施 39
3.9 其他防禦措施 41
3.10 其他資源 41
3.11 本章總結 42
第4章 SQL注入 43
4.1 漏洞概述 43
4.2 受影響的程式語言 44
4.3 漏洞詳細解釋 44
4.3.1 受漏洞影響的C# 44
4.3.2 受漏洞影響的PHP 45
4.3.3 受漏洞影響的Perl/CGI 46
4.3.4 受漏洞影響的Java
和JDBC 46
4.3.5 受漏洞影響的SQL 47
4.3.6 相關漏洞 48
4.4 查找漏洞模式 49
4.5 在代碼審查中查找該漏洞 49
4.6 發現該漏洞的測試技巧 50
4.7 漏洞示例 52
4.7.1 CAN-2004-348 52
4.7.2 CAN-2002-0554 52
4.8 彌補措施 52
4.8.1 驗證所有的輸入 52
4.8.2 不要使用字元串連線來
構造SQL語句 53
4.9 其他防禦措施 56
4.10 其他資源 56
4.11 本章總結 57
第5章 命令注入 59
5.1 漏洞概述 59
5.2 受影響的程式語言 59
5.3 漏洞詳細解釋 59
5.4 查找漏洞模式 61
5.5 在代碼審查中查找該漏洞 61
5.6 發現該漏洞的測試技巧 63
5.7 漏洞示例 64
5.7.1 CAN-2001-1187 64
5.7.2 CAN-2002-0652 64
5.8 彌補措施 65
5.8.1 數據驗證 65
5.8.2 當檢查失敗時 67
5.9 其他防禦措施 67
5.10 其他資源 68
5.11 本章總結 68
第6章 未能處理錯誤信息 69
6.1 漏洞概述 69
6.2 受影響的程式語言 69
6.3 漏洞詳細解釋 69
6.3.1 產生太多的信息 70
6.3.2 忽略了錯誤信息 70
6.3.3 曲解了錯誤信息 71
6.3.4 使用了無用的錯誤值 71
6.3.5 處理了錯誤的異常 71
6.3.6 處理所有的異常 71
6.3.7 受漏洞影響的C/C++ 72
6.3.8 Windows上受漏洞
影響的C/C++ 72
6.3.9 受漏洞影響的C++ 73
6.3.10 受漏洞影響的
C#、VB.NET及Java 73
6.3.11 相關漏洞 74
6.4 查找漏洞模式 74
6.5 在代碼審查中查找該漏洞 74
6.6 發現該漏洞的測試技巧 75
6.7 漏洞示例 75
6.8 彌補措施 76
6.8.1 C/C++彌補措施 76
6.8.2 C#、VB.NET和Java
彌補措施 76
6.9 其他資源 77
6.10 本章總結 77
第7章 跨站腳本 79
7.1 漏洞概述 79
7.2 受影響的程式語言 79
7.3 漏洞詳細解釋 79
7.3.1 受漏洞影響的
C/C++ ISAPI應用程式
或者過濾程式 80
7.3.2 受漏洞影響的ASP 81
7.3.3 受漏洞影響的
ASP.NET表單 81
7.3.4 受漏洞影響的JSP 81
7.3.5 受漏洞影響的PHP 81
7.3.6 受漏洞影響的使用
Perl的CGI程式 82
7.3.7 受漏洞影響的mod_perl 82
7.4 查找漏洞模式 82
7.5 在代碼審查中查找該漏洞 83
7.6 發現該漏洞的測試技巧 84
7.7 漏洞示例 85
7.7.1 IBM Lotus Domino跨站
腳本和HTML注入漏洞 85
7.7.2 Oracle HTTP伺服器的
“isqlplus”輸入驗證漏洞
允許遠程用戶實施跨站
腳本攻擊 85
7.7.3 CVE-2002-0840 85
7.8 彌補措施 85
7.8.1 ISAPI C/C++彌補措施 86
7.8.2 ASP彌補措施 86
7.8.3 ASP.NET表單彌補措施 87
7.8.4 JSP彌補措施 87
7.8.5 PHP彌補措施 89
7.8.6 CGI彌補措施 89
7.8.7 mod_perl彌補措施 90
7.8.8 關於HTML編碼的
注意事項 90
7.9 其他防禦措施 91
7.10 其他資源 91
7.11 本章總結 92
第8章 未能保護好網路流量 93
8.1 漏洞概述 93
8.2 受影響的程式語言 94
8.3 漏洞詳細解釋 94
8.4 查找漏洞模式 96
8.5 在代碼審查中查找漏洞 96
8.6 發現該漏洞的測試技巧 99
8.7 漏洞示例 99
8.7.1 TCP/IP 100
8.7.2 電子郵件協定 100
8.7.3 電子商務 100
8.8 彌補措施 101
8.9 其他防禦措施 104
8.10 其他資源 104
8.11 本章總結 104
第9章 使用Magic URL及隱藏
表單欄位 105
9.1 漏洞概述 105
9.2 受影響的程式語言 105
9.3 漏洞詳細解釋 105
9.3.1 Magic URL 106
9.3.2 隱藏表單欄位 106
9.3.3 相關漏洞 106
9.4 查找漏洞模式 107
9.5 在代碼審查中查找該漏洞 107
9.6 發現該漏洞的測試技巧 108
9.7 漏洞示例 109
9.7.1 CAN-2000-1001 109
9.7.2 MaxWebProtal隱藏表單
欄位修改 109
9.8 彌補措施 109
9.8.1 攻擊者瀏覽數據 110
9.8.2 攻擊者重放數據 110
9.8.3 攻擊者預測數據 112
9.8.4 攻擊者更改數據 113
9.9 其他防禦措施 114
9.10 其他資源 114
9.11 本章總結 114
第10章 未能正確使用SSL和TLS 115
10.1 漏洞概述 115
10.2 受影響的程式語言 115
10.3 漏洞詳細解釋 116
10.4 查找漏洞模式 118
10.5 在代碼審查查找該漏洞 119
10.6 發現該漏洞的測試技巧 120
10.7 漏洞示例 121
10.7.1 電子郵件客戶端 121
10.7.2 Safari Web瀏覽器 121
10.7.3 Stunnel SSL代理 122
10.8 彌補措施 122
10.8.1 選擇協定版本 123
10.8.2 選擇加密套件 124
10.8.3 確保證書的有效性 124
10.8.4 驗證主機名 126
10.8.5 檢查證書撤銷 126
10.9 其他防禦措施 128
10.10 其他資源 129
10.11 本章總結 129
第11章 使用基於弱口令的系統 131
11.1 漏洞概述 131
11.2 受影響的程式語言 131
11.3 漏洞詳細解釋 131
11.4 查找漏洞模式 133
11.5 在代碼審查中查找該漏洞 134
11.5.1 口令內容策略 134
11.5.2 口令修改和重置 134
11.5.3 口令協定 135
11.5.4 口令處理和存儲 135
11.6 發現該漏洞的測試技巧 136
11.7 漏洞示例 136
11.7.1 CVE-2005-1505 136
11.7.2 CVE-2005-0432 137
11.7.3 TENEX漏洞 137
11.7.4 Paris Hilton劫持 138
11.8 彌補措施 138
11.8.1 多方式認證 138
11.8.2 存儲以及檢查口令 139
11.8.3 選擇協定的原則 142
11.8.4 口令重置的原則 142
11.8.5 口令選擇的原則 143
11.8.6 其他原則 144
11.9 其他防禦措施 144
11.10 其他資源 145
11.11 本章總結 145
第12章 未能安全地存儲和保護數據 147
12.1 漏洞概述 147
12.2 受影響的程式語言 147
12.3 漏洞詳細解釋 147
12.3.1 採用脆弱的訪問控制機
制“保護”秘密數據 148
12.3.2 受漏洞影響的訪問控制 149
12.3.3 代碼中內嵌秘密數據 151
12.3.4 相關漏洞 151
12.4 查找漏洞模式 151
12.5 在代碼審查中查找漏洞 152
12.6 發現該漏洞的測試技巧 153
12.7 漏洞示例 155
12.7.1 CVE-2000-0100 155
12.7.2 CAN-2002-1590 155
12.7.3 CVE-1999-0886 155
12.7.4 CAN-2004-0311 156
12.7.5 CAN-2004-0391 156
12.8 彌補措施 156
12.8.1 使用作業系統的
安全技術 157
12.8.2 C/C++ Windows 2000以
及更新版本的彌補措施 157
12.8.3 ASP.NET 1.1以及更新
版本的彌補措施 159
12.8.4 C# .NET Framework 2.0
彌補措施 159
12.8.5 C/C++ Mac OS X 10.2
以及更新版本的
彌補措施 159
12.8.6 無需作業系統支持的
彌補措施(不在代碼
中保存秘密數據) 160
12.8.7 Java和Java KeyStore
的注意事項 162
12.9 其他防禦措施 163
12.10 其他資源 164
12.11 本章總結 165
第13章 信息泄漏 167
13.1 漏洞概述 167
13.2 受影響的程式語言 167
13.3 漏洞詳細解釋 168
13.3.1 旁路 168
13.3.2 TMI:太多的信息! 169
13.3.3 信息流安全模型 171
13.3.4 受漏洞影響的C#(以
及其他的程式語言) 173
13.3.5 相關漏洞 173
13.4 查找漏洞模式 173
13.5 在代碼審查中查找該漏洞 173
13.6 發現該漏洞的測試技巧 175
13.7 漏洞示例 175
13.7.1 Dan Bernstein的
AES定時攻擊 175
13.7.2 CAN-2005-1411 176
13.7.3 CAN-2005-1133 176
13.8 彌補措施 177
13.8.1 C#(以及其他程式語言)
彌補措施 177
13.8.2 本地網路的彌補措施 178
13.9 其他防禦措施 178
13.10 其他資源 178
13.11 本章總結 179
第14章 不恰當的檔案訪問 181
14.1 漏洞概述 181
14.2 受影響的程式語言 182
14.3 漏洞詳細解釋 182
14.3.1 在Windows上受
漏洞影響的C/C++ 182
14.3.2 受漏洞影響的C/C++ 183
14.3.3 受漏洞影響的Perl 183
14.3.4 受漏洞影響的Python 183
14.3.5 相關漏洞 184
14.4 查找漏洞模式 184
14.5 在代碼審查中查找該漏洞 184
14.6 發現該漏洞的測試技巧 185
14.7 漏洞示例 186
14.7.1 CAN-2005-0004 186
14.7.2 CAN-2005-0799 186
14.7.3 CAN-2004-0452和
CAN-2004-0448 186
14.7.4 CVE-2004-0115
Microsoft的Mac
版Virtual PC 186
14.8 彌補措施 187
14.8.1 Perl彌補措施 187
14.8.2 *nix上C/C++的
彌補措施 187
14.8.3 Windows上C/C++的
彌補措施 188
14.8.4 獲取用戶臨時檔案
的目錄 188
14.8.5 .NET代碼彌補措施 188
14.9 其他防禦措施 189
14.10 其他資源 189
14.11 本章總結 189
第15章 輕信網路域名解析 191
15.1 漏洞概述 191
15.2 受影響的程式語言 191
15.3 漏洞詳細解釋 192
15.3.1 受漏洞影響的應用程式 194
15.3.2 相關漏洞 194
15.4 查找漏洞模式 195
15.5 在代碼審查中查找該漏洞 195
15.6 發現該漏洞的測試技巧 195
15.7 漏洞示例 196
15.7.1 CVE-2002-0676 196
15.7.2 CVE-1999-0024 196
15.8 彌補措施 197
15.9 其他資源 198
15.10 本章總結 198
第16章 競爭條件 199
16.1 漏洞概述 199
16.2 受影響的程式語言 199
16.3 漏洞詳細解釋 199
16.3.1 受漏洞影響的代碼 201
16.3.2 相關漏洞 201
16.4 查找漏洞模式 202
16.5 在代碼審查中查找該漏洞 202
16.6 發現該漏洞的測試技巧 203
16.7 漏洞示例 204
16.7.1 CVE-2001-1349 204
16.7.2 CAN-2003-1073 204
16.7.3 CVE-2000-0849 204
16.8 彌補措施 205
16.9 其他防禦措施 206
16.10 其他資源 206
16.11 本章總結 207
第17章 未認證的密鑰交換 209
17.1 漏洞概述 209
17.2 受影響的語言 209
17.3 漏洞詳細解釋 209
17.4 查找漏洞模式 211
17.5 在代碼審查中查找該漏洞 211
17.6 發現該漏洞的測試技巧 212
17.7 漏洞示例 212
17.7.1 Novell Netware MITM
攻擊 212
17.7.2 CAN-2004-0155 212
17.8 彌補措施 213
17.9 其他防禦措施 213
17.10 其他資源 213
17.11 本章總結 214
第18章 密碼學強度隨機數 215
18.1 漏洞概述 215
18.2 受影響的程式語言 215
18.3 漏洞詳細解釋 215
18.3.1 受漏洞影響的非
密碼學生成器 216
18.3.2 受漏洞影響的
密碼字生成器 216
18.3.3 受漏洞影響的真
隨機數生成器 217
18.3.4 相關漏洞 218
18.4 查找漏洞模式 218
18.5 在代碼審查中查找該漏洞 218
18.5.1 什麼時候應該
使用隨機數 218
18.5.2 查找使用PRNG
的地方 218
18.5.3 判斷CRNG是否
正確地播種 219
18.6 發現該漏洞的測試技巧 220
18.7 漏洞示例 220
18.7.1 Netscape瀏覽器 220
18.7.2 OpenSSL問題 221
18.8 彌補措施 221
18.8.1 Windows 221
18.8.2 .NET代碼 222
18.8.3 UNIX 222
18.8.4 Java 223
18.8.5 重放數字流 223
18.9 其他防禦措施 224
18.10 其他資源 224
18.11 本章總結 224
第19章 不良可用性 225
19.1 漏洞概述 225
19.2 受影響的語言 225
19.3 漏洞詳細解釋 225
19.3.1 誰是您的用戶? 226
19.3.2 雷區:向您的用戶呈現安全相關的信息 227
19.3.3 相關漏洞 227
19.4 查找漏洞模式 227
19.5 在代碼審查中尋找該漏洞 227
19.6 發現該漏洞的測試技巧 228
19.7 漏洞示例 228
19.7.1 SSL/TLS證書認證 228
19.7.2 Internet Explorer 4.0
根證書安裝 229
19.8 彌補措施 230
19.8.1 簡化UI以便用戶參與 230
19.8.2 為用戶做出安全決策 230
19.8.3 使有選擇的鬆弛安全策
略變得簡單 231
19.8.4 明確指出後果 232
19.8.5 提供可操作性 235
19.8.6 提供集中管理 235
19.9 其他資源 235
19.10 本章總結 236