譯者序:威脅建模——網絡安全的“銀彈”
前言
鳴謝
第一部分 入門指南
第1章 潛心開始威脅建模 3
1.1 學習威脅建模 4
1.1.1 你正在構建什麼 4
1.1.2 哪些地方可能會齣錯 6
1.1.3 解決每個威脅 9
1.1.4 檢查你的工作 17
1.2 獨立威脅建模 19
1.3 潛心開始威脅建模的檢查列錶 19
1.4 小結 20
第2章 威脅建模策略 21
2.1 “你的威脅模型是什麼樣?” 21
2.2 集體研討 22
2.2.1 集體研討的變種方法 23
2.2.2 文獻檢索 24
2.2.3 集體研討方法的觀點 25
2.3 係統的威脅建模方法 25
2.3.1 關注資産 27
2.3.2 關注攻擊者 29
2.3.3 關注軟件 30
2.4 軟件模型 31
2.4.1 圖錶類型 32
2.4.2 數據流圖 32
2.4.3 信任邊界 36
2.4.4 圖錶中包含的內容 37
2.4.5 復雜圖 38
2.4.6 圖的標簽 38
2.4.7 圖中的顔色 39
2.4.8 入口點 39
2.4.9 錶驗證 39
2.5 小結 41
第二部分 發現威脅
第3章 STRIDE方法 45
3.1 理解STRIDE方法及其為何有用 45
3.2 假冒威脅 47
3.2.1 在同一颱機器上假冒一個進程或文件 48
3.2.2 假冒一颱機器 48
3.2.3 人員假冒 48
3.3 篡改威脅 49
3.3.1 篡改文件 49
3.3.2 篡改內存 49
3.3.3 篡改網絡 50
3.4 否認威脅 50
3.4.1 攻擊日誌 50
3.4.2 否認一種行為 51
3.5 信息泄露威脅 51
3.5.1 進程信息泄露 52
3.5.2 數據存儲信息泄露 52
3.5.3 數據流中的信息泄露 52
3.6 拒絕服務威脅 53
3.7 權限提升威脅 53
3.7.1 通過崩潰進程提升權限 53
3.7.2 通過授權失效提升權限 54
3.8 擴展示例:針對Acme-DB的STRIDE威脅 54
3.9 STRIDE變種 56
3.9.1 STRIDE-per-Element 56
3.9.2 STRIDE-per-Interaction 58
3.9.3 DESIST方法 61
3.10 準齣條件 61
3.11 小結 62
第4章 攻擊樹 63
4.1 使用攻擊樹 63
4.1.1 利用攻擊樹尋找威脅 64
4.1.2 創建新的攻擊樹 64
4.2 展現一個攻擊樹 66
4.2.1 人類可識彆的錶現形式 66
4.2.2 結構化的錶示法 70
4.3 攻擊樹示例 70
4.4 真實的攻擊樹 71
4.4.1 詐騙攻擊樹 71
4.4.2 選舉操作評估威脅樹 73
4.4.3 思維導圖 73
4.5 有關攻擊樹的觀點 75
4.6 小結 75
第5章 攻擊庫 76
5.1 攻擊庫屬性 76
5.1.1 攻擊庫及檢查列錶 77
5.1.2 攻擊庫與文檔檢查 78
5.2 CAPEC 78
5.2.1 準齣條件 80
5.2.2 有關CAPEC的觀點 81
5.3 OWASP前十名 81
5.4 小結 82
第6章 隱私工具 83
6.1 Solove的隱私分類 84
6.2 互聯網協議的隱私考慮 85
6.3 隱私影響評估 86
6.4 Nymity Slider和隱私棘輪 86
6.5 語境完整性 88
6.5.1 語境完整性啓發式決策 88
6.5.2 擴大的語境完整性啓發法 89
6.5.3 有關語境完整性的觀點 89
6.6 LINDDUN助記符 90
6.7 小結 91
第三部分 管理和解決威脅
第7章 處理和管理威脅 95
7.1 開始威脅建模項目 95
7.1.1 何時開始威脅建模 95
7.1.2 從哪裏開始和(計劃)在哪結束 97
7.1.3 從哪裏入手 97
7.2 深入分析減緩方法 99
7.2.1 減緩順序 99
7.2.2 下棋 100
7.2.3 目標優選 100
7.2.4 逃避熊的襲擊 100
7.3 利用錶格和列錶跟蹤 101
7.3.1 追蹤威脅 101
7.3.2 建立假設 103
7.3.3 外部安全注解 103
7.4 威脅建模的特定場景元素 105
7.4.1 客戶/供應商信任邊界 105
7.4.2 新技術 105
7.4.3 對API威脅建模 107
7.5 小結 108
第8章 防禦策略及技術 109
8.1 減緩威脅的策略及技術 109
8.1.1 認證:減緩欺騙威脅 110
8.1.2 完整性:減緩篡改威脅 111
8.1.3 不可否認性:減緩否認威脅 113
8.1.4 機密性:減緩信息暴露威脅 115
8.1.5 可用性:減緩拒絕服務威脅 117
8.1.6 授權:減緩權限提升威脅 118
8.1.7 策略和技術陷阱 119
8.2 利用模式解決威脅 120
8.2.1 標準部署 120
8.2.2 解決CAPEC威脅 120
8.3 減緩隱私威脅 120
8.3.1 最小化 120
8.3.2 加密 121
8.3.3 遵從性和政策 123
8.4 小結 123
第9章 解決威脅時的權衡 125
9.1 風險管理的經典策略 125
9.1.1 迴避風險 126
9.1.2 解決風險 126
9.1.3 接受風險 126
9.1.4 轉移風險 126
9.1.5 忽略風險 127
9.2 為風險管理選擇減緩措施 127
9.2.1 改變設計 127
9.2.2 應用標準減緩技術 130
9.2.3 設計定製的減緩措施 132
9.2.4 模糊編碼不是減緩威脅措施 132
9.3 針對特定威脅的優先級方法 133
9.3.1 簡單方法 133
9.3.2 利用錯誤欄威脅排序 134
9.3.3 成本估算方法 135
9.4 通過接受風險來減緩威脅 138
9.5 減緩策略中的軍備競賽 139
9.6 小結 139
第10章 驗證威脅是否已解決 141
10.1 測試威脅減緩 142
10.1.1 測試過程完整性 142
10.1.2 如何測試減緩 142
10.1.3 滲透測試 143
10.2 檢查你獲取的代碼 143
10.2.1 構建軟件模型 144
10.2.2 利用軟件模型 145
10.3 問答式威脅建模 145
10.3.1 模型/現實一緻性 146
10.3.2 任務和過程的完成 146
10.3.3 漏洞檢查 146
10.4 解決威脅的過程各方麵 147
10.4.1 威脅建模授權測試;測試授權威脅建模 147
10.4.2 驗證/轉換 147
10.4.3 操作過程中記錄假設 148
10.5 錶格與列錶 148
10.6 小結 150
第11章 威脅建模工具 151
11.1 通用工具 151
11.1.1 白闆 151
11.1.2 辦公套件 152
11.1.3 漏洞跟蹤係統 152
11.2 開放源代碼工具 153
11.2.1 TRIKE 153
11.2.2 SeaMonster 153
11.2.3 權限提升紙牌遊戲 153
11.3 商業工具 154
11.3.1 Threat Modeler 155
11.3.2 Corporate Threat Modeller 155
11.3.3 SecurITree 155
11.3.4 Little-JIL 155
11.3.5 微軟的SDL威脅建模工具 155
11.4 尚不存在的工具 158
11.5 小結 159
第四部分 科技和棘手
領域的威脅建模
第12章 需求手冊 163
12.1 為何需要“手冊” 163
12.2 需求、威脅、減緩威脅之間相互作用 164
12.3 商業需求 165
12.3.1 優於競爭 165
12.3.2 産業需求 165
12.3.3 場景驅動的需求 166
12.4 防禦/檢測/響應需求框架 166
12.4.1 防禦 166
12.4.2 檢測 168
12.4.3 響應 169
12.5 人員/過程/技術作為需求的框架 170
12.5.1 人員 170
12.5.2 過程 170
12.5.3 技術 170
12.6 開發需求與采購需求 171
12.7 閤規性驅動的需求 171
12.7.1 雲服務安全聯盟 171
12.7.2 NISTPublication200 172
12.7.3 支付卡行業數據安全標準 173
12.8 隱私需求 173
12.8.1 公平信息處理條例 173
12.8.2 從設計著手保護隱私 174
12.8.3 身份識彆七法則 174
12.8.4 微軟開發隱私標準 175
12.9 STRIDE需求 175
12.9.1 認證 176
12.9.2 完整性 177
12.9.3 不可否認性 178
12.9.4 機密性 178
12.9.5 可用性 178
12.9.6 授權 178
12.10 非需求 179
12.10.1 操作非需求 180
12.10.2 警告和提示 180
12.10.3 微軟的“十個不變法則” 180
12.11 小結 181
第13章 網絡與雲威脅 182
13.1 網絡威脅 182
13.1.1 網站威脅 182
13.1.2 網絡瀏覽器和插件威脅 183
13.2 雲租戶威脅 184
13.2.1 內部威脅 184
13.2.2 閤租威脅 185
13.2.3 閤規性威脅 185
13.2.4 法律威脅 185
13.2.5 電子取證響應威脅 186
13.2.6 各種各樣的威脅 186
13.3 雲供應者威脅 186
13.3.1 直接來自租戶的威脅 186
13.3.2 租戶行為導緻的威脅 187
13.4 移動威脅 187
13.5 小結 188
第14章 賬戶與身份識彆 189
14.1 賬戶生命周期 190
14.1.1 創建賬戶 190
14.1.2 賬戶維護 192
14.1.3 賬戶終止 192
14.1.4 賬戶生命周期檢查列錶 193
14.2 認證 193
14.2.1 登錄 194
14.2.2 登錄失敗 195
14.2.3 對於“你所擁有的”威脅 197
14.2.4 對“你是誰”的威脅 197
14.2.5 對“你所知道的”威脅 199
14.2.6 認證檢查列錶 202
14.3 賬戶恢復 202
14.3.1 時間和賬戶恢復 203
14.3.2 賬戶恢復郵件 204
14.3.3 基於知識的認證 204
14.3.4 社會認證 207
14.3.5 賬戶恢復的攻擊者驅動分析 208
14.3.6 多渠道認證 209
14.3.7 賬戶恢復檢查列錶 209
14.4 姓名、ID和SSN 210
14.4.1 姓名 210
14.4.2 身份證明文件 212
14.4.3 社保號及其他國傢身份識彆號 213
14.4.4 身份盜用 215
14.4.5 姓名、ID及SSN檢查列錶 215
14.5 小結 216
第15章 人類因素與可用性 217
15.1 人的模型 218
15.1.1 應用人的行為模型 218
15.1.2 人的模型認知科學 220
15.1.3 人的啓發式模型 223
15.2 軟件情景模型 225
15.2.1 對軟件進行建模 225
15.2.2 軟件模型的圖錶 227
15.2.3 對電子社會工程攻擊的建模 229
15.3 威脅引齣技術 229
15.3.1 集體研討 230
15.3.2 威脅建模的儀式方法 230
15.3.3 儀式分析啓發式 230
15.3.4 將可用性融於四步框架 233
15.4 解決人類因素的工具和技術 233
15.4.1 抑製人類因素作用的謬見 233
15.4.2 良好的設計決策模型 234
15.4.3 良好學習環境的設計模型 236
15.5 用戶界麵工具和技術 237
15.5.1 配置 237
15.5.2 顯式警示 238
15.5.3 吸引注意力的模型 239
15.6 測試人類因素 240
15.6.1 良好和惡劣的情景 240
15.6.2 生態有效性 241
15.7 有關可用性與儀式的觀點 242
15.8 小結 243
第16章 密碼係統威脅 244
16.1 密碼原語 245
16.1.1 基本原語 245
16.1.2 隱私原語 248
16.1.3 現代加密原語 248
16.2 典型威脅角色 250
16.3 針對密碼係統的攻擊 251
16.4 用密碼創建 253
16.4.1 做決定 253
16.4.2 準備升級 254
16.4.3 密鑰管理 254
16.4.4 解密之前驗證 255
16.5 關於密碼需要記住的事情 255
16.5.1 使用專業人士設計的密碼係統 255
16.5.2 用專業人士創建或測試的密碼代碼 255
16.5.3 密碼不是安全魔塵 256
16.5.4 假設都會公開 256
16.5.5 你仍需要管理密鑰 256
16.6 加密係統:Kerckhoffs及其原則 256
16.7 小結 257
第五部分 更上一層樓
第17章 將威脅建模帶到你的組織機構中 261
17.1 如何引入威脅建模 262
17.1.1 說服個體貢獻者 263
17.1.2 說服管理層 263
17.2 誰做什麼 264
17.2.1 威脅建模與項目管理 264
17.2.2 先決條件 265
17.2.3 可交付物 265
17.2.4 個體角色及責任 266
17.2.5 小組交互 267
17.2.6 威脅建模團隊的多樣化 270
17.3 在開發生命周期中的威脅建模 270
17.3.1 開發過程問題 270
17.3.2 組織問題 275
17.3.3 為你的組織機構定製一個過程 278
17.4 剋服對威脅建模的反對聲音 279
17.4.1 對資源的反對聲音 279
17.4.2 價值反對聲音 280
17.4.3 對計劃的反對聲音 281
17.5 小結 281
第18章 試驗方法 283
18.1 查看縫隙 283
18.2 操作威脅模型 285
18.2.1 FlipIT 285
18.2.2 殺戮鏈 285
18.3 “寬街”分類法 288
18.4 博弈機器學習 293
18.5 對一傢企業進行威脅建模 293
18.6 針對威脅建模方法的威脅 294
18.6.1 危險可交付物 294
18.6.2 危險方法 295
18.7 如何實驗 297
18.7.1 明確問題 297
18.7.2 尋找要衡量的方麵,進行衡量 297
18.7.3 研究你的結果 298
18.8 小結 298
第19章 成功的設計 299
19.1 理解流程 299
19.1.1 流程與威脅建模 300
19.1.2 妨礙人們 302
19.1.3 注意認知負荷 302
19.1.4 避免創造者失明 302
19.1.5 資産與攻擊者 303
19.2 瞭解參與者 303
19.3 邊界對象 304
19.4 “最好”是“好”的敵人 305
19.5 展望未來 306
19.5.1 “威脅模型改變瞭” 306
19.5.2 有關藝術性 307
19.6 小結 308
附錄A 有用的工具 309
附錄B 威脅樹 315
附錄C 攻擊者列錶 349
附錄D 權限提升紙牌遊戲 365
附錄E 案例研究 372
術語錶 388
· · · · · · (
收起)