買這商品的人也買了...
-
$1,390$1,362 -
$420$332 -
$407灰帽黑客-正義黑客的道德規範滲透測試攻擊方法和漏洞分析技術, 3/e(Gray Hat Hacking The Ethical Hackers Handbook, 3/e)
-
$352高度安全環境下的高級滲透測試 (Advanced Penetration Testing for Highly-Secured Environments: The Ultimate Security Guide)
-
$1,068$1,015 -
$480$408 -
$286數據挖掘:R 語言實戰-大數據時代的 R 語言
-
$350$298 -
$360$284 -
$450$383 -
$400$316 -
$662逆向工程核心原理
-
$380$323 -
$590$502 -
$690$538 -
$454IDA Pro 權威指南, 2/e (The IDA Pro Book : The Unofficial Guide to the World's Most Popular Disassembler, 2/e)
-
$281C++黑客編程揭秘與防範(第2版)
-
$403Android安全攻防實戰/安全技術大系
-
$449Unity 3D/2D遊戲開發從0到1(附光盤)
-
$380$323 -
$234$222 -
$490$382 -
$199軟件開發本質論:追求簡約、體現價值、逐步構建 (The Nature of Software Development: Keep It Simple, Make It Valuable, Build It Piece by Piece)
-
$534$507 -
$580$493
商品描述
<內容簡介>
維格、麥格勞編著的《安全軟件開發之道(構築軟件安全的本質方法)》被譽為安全技術領域的「黃帝內經」,由安全技術大師親力打造,暢銷全球,數碼安全技術專家聯袂推薦。綜合論述如何在軟件開發整個生命周期內建立安全屏障,對於設計安全的軟件給出了高屋建瓴的指南,全面翔實,深入淺出。對於任何關註安全軟件開發的人來說,都是一本必備之書。
《安全軟件開發之道(構築軟件安全的本質方法)》分為兩大部分。第一部分介紹在編寫代碼之前應該瞭解的軟件安全知識,講解如何在軟件工程的實踐中引入安全性,任何涉及軟件開發的人都應該閱讀。主要內容包括:軟件安全概論、軟件安全風險管理、技術的選擇、開放源代碼和封閉源代碼、軟件安全的指導原則、軟件審計。第二部分涉及軟件開發實現的細節,介紹如何在編程中避免一些常見的安全問題,適合編程一線的技術人員參考。主要內容包括:緩衝區溢出、訪問控制、競爭條件、隨機性和確定性、密碼學的應用、信任管理和輸入驗證、口令認證、數據庫安全、客戶端安全、穿越防火牆等。
<目錄>
第1章 軟件安全概論 1
1.1 都是軟件惹的禍 1
1.2 對安全問題的處理 4
1.2.1 Bugtraq 5
1.2.2 CERT 公告 5
1.2.3 RISKS文摘 6
1.3 影響軟件安全的技術趨勢 6
1.4 非功能性需求 9
1.4.1 什麼是安全 10
1.4.2 難道只是可靠性 10
1.5 「滲透-修補」是個壞方法 11
1.6 藝術和工程 12
1.7 安全目標 12
1.7.1 預防 13
1.7.2 跟蹤與審計 13
1.7.3 監控 13
1.7.4 隱私和保密 14
1.7.5 多級安全 14
1.7.6 匿名 14
1.7.7 認證 15
1.7.8 完整性 16
1.8 常見軟件安全缺陷 16
1.9 軟件項目目標 17
1.10 結論 18
第2章 軟件安全風險管理 19
2.1 軟件安全風險管理概述 19
2.2 安全人員的任務 21
2.3 軟件生命周期中的軟件安全人員 22
2.3.1 獲取需求 22
2.3.2 風險評估 23
2.3.3 安全設計 24
2.3.4 實現 25
2.3.5 安全測試 25
2.4 現實的權衡 26
2.5 讓人們去思考安全性 26
2.6 軟件風險管理實踐 26
2.6.1 當開發走向歧途 27
2.6.2 當安全分析走向歧途 27
2.7 通用準則 28
2.8 結論 30
第3章 技術的選擇 31
3.1 語言的選擇 31
3.2 分佈式對象平臺的選擇 34
3.2.1 COBRA 34
3.2.2 DCOM 35
3.2.3 EJB和RMI 37
3.3 操作系統的選擇 37
3.4 認證技術 38
3.4.1 基於主機的認證 39
3.4.2 物理令牌 40
3.4.3 生物認證 40
3.4.4 密碼認證 41
3.4.5 深度防禦與認證 41
3.5 結論 42
第4章 開放源代碼和封閉源代碼 43
4.1 通過隱藏實現安全 43
4.1.1 逆向工程 45
4.1.2 代碼混淆 46
4.1.3 緊包軟件的安全 47
4.1.4 通過隱藏實現安全並非萬能 47
4.2 開源軟件 47
4.3 「多眼球現象」是真的嗎 47
4.3.1 漏洞檢測是困難的 49
4.3.2 其他的憂慮 50
4.4 關於發布加密演算法 51
4.5 另外兩個關於開源的謬論 51
4.5.1 微軟謬論 51
4.5.2 Java謬論 52
4.6 例子:GNU Mailman的安全 52
4.7 證據:特洛伊木馬 53
4.8 開放源碼還是不開放源碼 54
4.9 另一個來自於緩衝區溢出的安全教訓 54
4.10 忠告 55
4.11 結論 55
第5章 軟件安全的指導原則 56
5.1 確保最薄弱環節的安全 57
5.2 深度防禦 59
5.3 失效安全 60
5.4 最小特權 62
5.5 分割 63
5.6 盡可能簡單 64
5.7 提升隱私權 66
5.8 記住隱藏信息很困難 68
5.9 不要輕信 69
5.10 使用社會資源 70
5.11 結論 70
第6章 軟件審計 71
6.1 架構的安全性分析 73
6.1.1 攻擊樹 74
6.1.2 報告分析結果 78
6.2 實現安全性分析 79
6.2.1 審計源代碼 79
6.2.2 源碼級的安全審計工具 80
6.2.3 在分析中使用RATS 81
6.2.4 安全掃描軟件的有效性 82
6.3 結論 83
第7章 緩衝區溢出 84
7.1 什麼是緩衝區溢出 86
7.2 為什麼緩衝溢出是安全問題 87
7.3 緩衝區溢出的防禦 89
7.4 主要的陷阱 89
7.5 內部緩衝區溢出 93
7.6 更多的輸入溢出 93
7.7 其他風險 94
7.8 幫助工具 94
7.9 堆破壞和棧破壞 96
7.10 堆溢出 98
7.11 棧溢出 101
7.11.1 破譯堆棧 101
7.11.2 陷入無限循環……並更糟 105
7.12 代碼攻擊 113
7.12.1 UNIX漏洞利用 114
7.12.2 關於Windows 119
7.13 結論 119
第8章 訪問控制 120
8.1 UNIX訪問控制模型 120
8.1.1 UNIX權限工作原理 121
8.1.2 修改文件屬性 122
8.1.3 修改文件的所有權 124
8.1.4 umask命令 125
8.1.5 編程接口 125
8.1.6 Setuid編程 127
8.2 Windows NT的訪問控制 130
8.3 分割 132
8.4 細粒度權限 134
8.5 結論 134
第9章 競爭條件 135
9.1 什麼是競爭條件 135
9.2 檢查時間與使用時間 138
9.2.1 攻破passwd 139
9.2.2 避免 TOCTOU 問題 142
9.3 安全的文件訪問 143
9.4 臨時文件 146
9.5 文件鎖定 146
9.6 其他競爭條件 147
9.7 結論 148
第10章 隨機性和確定性 149
10.1 偽隨機數發生器 149
10.1.1 偽隨機數發生器實例 151
10.1.2 Blum-Blum-ShubPRNG 152
10.1.3 Tiny PRNG 153
10.1.4 對PRNG的攻擊 153
10.1.5 在網絡賭博遊戲中作弊 153
10.1.6 PRNG的統計測試 155
10.2 熵的收集和估計 155
10.2.1 硬件解決方案 156
10.2.2 軟件解決方案 158
10.2.3 糟糕的熵收集示例 163
10.3 處理熵 164
10.4 實用的隨機數據來源 166
10.4.1 Tiny 166
10.4.2 Windows的隨機數據 167
10.4.3 Linux的隨機數 167
10.4.4 Java中的隨機數 169
10.5 結論 171
第11章 密碼學的應用 172
11.1 一般性建議 172
11.1.1 開發者並不是密碼專家 173
11.1.2 數據完整性 174
11.1.3 密碼出口的有關法律 174
11.2 常用密碼庫 175
11.2.1 Cryptlib 175
11.2.2 OpenSSL 176
11.2.3 Crypto++ 177
11.2.4 BSAFE 178
11.2.5 Cryptix 179
11.3 利用密碼學編程 180
11.3.1 加密 180
11.3.2 散列演算法 184
11.3.3 公共密鑰加密 185
11.3.4 多線程 189
11.3.5 cookie加密 189
11.4 加密散列更多的應用 191
11.5 SSL和TLS 192
11.6 Stunnel 194
11.7 一次一密 195
11.8 結論 198
第12章 信任管理和輸入驗證 199
12.1 關於信任 200
12.2 不恰當信任的例子 201
12.2.1 信任是傳遞的 201
12.2.2 預防惡意的調用者 204
12.2.3 安全地調用其他程序 208
12.2.4 源自Web的問題 210
12.2.5 客戶端安全 212
12.2.6 Perl問題 214
12.2.7 格式字符串攻擊 215
12.3 自動檢測輸入問題 216
12.4結論 219
第13章 口令認證 220
13.1 口令存儲 220
13.2 向口令數據庫中添加用戶 222
13.3 口令認證的方式 231
13.4 口令選擇 235
13.4.1 更多的建議 236
13.4.2 擲骰子 237
13.4.3 口令短語 240
13.4.4 應用程序選擇的口令 241
13.5 一次性口令 242
13.6 結論 252
第14章 數據庫安全 253
14.1 基礎知識 253
14.2 訪問控制 254
14.3 在訪問控制中使用視圖 256
14.4 字段保護 257
14.5 針對統計攻擊的安全防衛 260
14.6 結論 263
第15章 客戶端安全 264
15.1 版權保護方案 266
15.1.1 許可證文件 273
15.1.2 防範偶然性盜版 274
15.1.3 其他的許可證特性 275
15.1.4 其他的版權保護方案 275
15.1.5 對不可信客戶端的身份認證 276
15.2 防篡改 277
15.2.1 反調試措施 277
15.2.2 校驗和 279
15.2.3 應對濫用 279
15.2.4 誘餌 280
15.3 代碼混淆 280
15.3.1 基本的代碼混淆技術 281
15.3.2 加密部分程序 282
15.4 結論 284
第16章 穿越防火牆 285
16.1 基本策略 285
16.2 客戶端代理 287
16.3 服務器代理 288
16.4 SOCKS 289
16.5 對等網絡 290
16.6 結論 292
附錄A 密碼學基礎 293
參考文獻 31