出版者的話
序
前言
作者簡介
第1章 引論 1
1.1 軟件安全的重要性和相關性 1
1.2 軟件安全和軟件開發(fā)生命周期 4
1.3 代碼的質量與安全 6
1.4 SDL三個最重要的安全目標 6
1.5 威脅建模和攻擊面驗證 7
1.6 本章小結:期望從本書中學到什么 8
參考文獻 8
第2章 安全開發(fā)生命周期 11
2.1 克服軟件安全中的挑戰(zhàn) 11
2.2 軟件安全成熟度模型 12
2.3 ISO/IEC 27034:信息技術、安全技術、應用安全 13
2.4 其他SDL最佳實踐的資源 14
2.4.1 SAFECode 14
2.4.2 美國國土安全軟件保障計劃 14
2.4.3 美國國家標準與技術研究院 15
2.4.4 MITRE公司公共計算機漏洞和暴露 16
2.4.5 SANS研究所高級網絡安全風險 17
2.4.6 美國國防部網絡安全與信息系統(tǒng)信息分析中心 17
2.4.7 CERT、Bugtraq和SecurityFocus 17
2.5 關鍵工具和人才 17
2.5.1 工具 18
2.5.2 人才 19
2.6 最小特權原則 21
2.7 隱私 22
2.8 度量標準的重要性 22
2.9 把SDL映射到軟件開發(fā)生命周期 24
2.10 軟件開發(fā)方法 28
2.10.1 瀑布開發(fā) 28
2.10.2 敏捷開發(fā) 29
2.11 本章小結 31
參考文獻 31
第3章 安全評估(A1):SDL活動與最佳實踐 35
3.1 軟件安全團隊提早參與項目 35
3.2 軟件安全團隊主持發(fā)現會議 37
3.3 軟件安全團隊創(chuàng)建SDL項目計劃 37
3.4 隱私影響評估計劃啟動 38
3.5 安全評估(A1)成功的關鍵因素和度量標準 41
3.5.1 成功的關鍵因素 41
3.5.2 可交付成果 43
3.5.3 度量標準 44
3.6 本章小結 44
參考文獻 44
第4章 架構(A2):SDL活動與最佳實踐 46
4.1 A2策略一致性分析 46
4.2 SDL策略評估和范圍界定 48
4.3 威脅建模/架構安全性分析 48
4.3.1 威脅建模 48
4.3.2 數據流圖 50
4.3.3 架構威脅分析和威脅評級 53
4.3.4 風險緩解 65
4.4 開源選擇 68
4.5 隱私信息收集和分析 69
4.6 成功的關鍵因素和度量標準 69
4.6.1 成功的關鍵因素 69
4.6.2 可交付成果 70
4.6.3 度量標準 70
4.7 本章小結 71
參考文獻 71
第5章 設計和開發(fā)(A3):SDL活動與最佳實踐 74
5.1 A3策略一致性分析 74
5.2 安全測試計劃構成 74
5.3 威脅模型更新 81
5.4 設計安全性分析和檢查 81
5.5 隱私實現評估 83
5.6 成功的關鍵因素和度量標準 85
5.6.1 成功的關鍵因素 85
5.6.2 可交付成果 86
5.6.3 度量標準 87
5.7 本章小結 88
參考文獻 88
第6章 設計和開發(fā)(A4):SDL活動與最佳實踐 90
6.1 A4策略一致性分析 90
6.2 安全測試用例執(zhí)行 92
6.3 SDLC/SDL過程中的代碼審查 94
6.4 安全分析工具 97
6.4.1 靜態(tài)分析 99
6.4.2 動態(tài)分析 101
6.4.3 模糊測試 103
6.4.4 人工代碼審查 104
6.5 成功的關鍵因素 106
6.6 可交付成果 107
6.7 度量標準 107
6.8 本章小結 108
參考文獻 108
第7章 發(fā)布(A5):SDL活動與最佳實踐 111
7.1 A5策略一致性分析 111
7.2 漏洞掃描 113
7.3 滲透測試 114
7.4 開源許可審查 116
7.5 最終安全性審查 117
7.6 最終隱私性審查 119
7.7 成功的關鍵因素 120
7.8 可交付成果 121
7.9 度量標準 122
7.10 本章小結 122
參考文獻 124
第8章 發(fā)布后支持(PRSA1~5) 125
8.1 合理調整軟件安全組 125
8.1.1 正確的組織定位 125
8.1.2 正確的人 127
8.1.3 正確的過程 127
8.2 PRSA1:外部漏洞披露響應 130
8.2.1 發(fā)布后的PSIRT響應 130
8.2.2 發(fā)布后的隱私響應 133
8.2.3 優(yōu)化發(fā)布后的第三方響應 133
8.3 PRSA2:第三方審查 134
8.4 PRSA3:發(fā)布后認證 135
8.5 PRSA4:新產品組合或云部署的內部審查 135
8.6 PRSA5:安全架構審查和基于工具評估當前、遺留以及并購的產品和解決方案 136
8.6.1 遺留代碼 136
8.6.2 兼并和收購 137
8.7 成功的關鍵因素 138
8.8 可交付成果 139
8.9 度量標準 140
8.10 本章小結 140
參考文獻 140
第9章 將SDL框架應用到現實世界中 142
9.1 引言 142
9.2 安全地構建軟件 145
9.2.1 編寫安全的代碼 146
9.2.2 人工代碼審查 149
9.2.3 靜態(tài)分析 150
9.3 確定每個項目的正確行為 153
9.4 架構和設計 161
9.5 測試 167
9.5.1 功能測試 168
9.5.2 動態(tài)測試 168
9.5.3 攻擊和滲透測試 171
9.5.4 獨立測試 172
9.6 敏捷:沖刺 172
9.7 成功的關鍵因素和度量標準 175
9.7.1 安全編碼培訓計劃 175
9.7.2 安全編碼框架(API) 175
9.7.3 人工代碼審查 176
9.7.4 獨立代碼審查和測試(專家或第三方) 176
9.7.5 靜態(tài)分析 176
9.7.6 風險評估法 176
9.7.7 SDL和SDLC的集成 176
9.7.8 架構人才的發(fā)展 176
9.8 度量標準 177
9.9 本章小結 177
參考文獻 178
第10章 集成:應用SDL防止現實的威脅 180
10.1 戰(zhàn)略、戰(zhàn)術和特定于用戶的軟件攻擊 180
10.1.1 戰(zhàn)略攻擊 181
10.1.2 戰(zhàn)術攻擊 182
10.1.3 特定于用戶的攻擊 182
10.2 應用適當設計、管理和集中的SDL克服組織與業(yè)務挑戰(zhàn) 182
10.3 軟件安全組織的現狀和影響力 183
10.4 通過合理的政府管理克服SDL審計和法規(guī)挑戰(zhàn) 183
10.5 軟件安全的未來預測 184
10.5.1 壞消息 184
10.5.2 好消息 185
10.6 總結 185
參考文獻 186
附錄 關鍵的成功因素、可交付成果、SDL模型每個階段的指標 189