《雲原生安全與DevOps保障》是電子工業出版社於2020年4月出版圖書,介紹了通過充分可信的案例分析,展示了如何將安全性內建到自動化測試、持續交付及其他核心DevOps流程之中。
基本介紹
- 書名:雲原生安全與DevOps保障
- 作者:(美)Julien Vehent
- 譯者:覃宇
- 出版社:電子工業出版社
- 出版時間:2020年4月
- 頁數:388 頁
- 定價:108 元
- 開本:16 開
- ISBN:9787121384486
內容簡介,圖書目錄,作者簡介,
內容簡介
《雲原生安全與DevOps保障》主要介紹了 DevOps 實踐中最容易被忽視的一環——安全,並且對雲原生服務的安全保障也做了全面的闡述。書中詳細介紹了 Web 攻擊防範、許可權驗證、日誌監控、入侵檢測、網路安全協定等老生常談的話題在雲原生基礎設施上的變化。書中還提出了適應 DevOps 文化的持續安全、測試驅動安全、基礎設施與流水線保證、輕量風險評估等頗具新意的觀點和實踐。本書通過一個 Web 套用示例展示了ZAP、pineapple、Hindsight、GRR、MIG、osquery 和 Suricata 等工具的使用方法。本書最後總結了一份實施持續安全的三年路線圖,指導組織全面提升安全實踐和安全意識。本書適合 DevOps 實踐者閱讀,包括參與其中的安全工程師、軟體開發人員、基礎設施運維人員及項目管理人員等。
圖書目錄
1DevOps 保障 1
1.1 DevOps 方法 2
1.1.1 持續集成 3
1.1.2 持續交付 4
1.1.3 基礎設施即服務 5
1.1.4 文化和信任 6
1.2 DevOps 中的安全 7
1.3 持續安全 8
1.3.1 測試驅動安全 10
1.3.2 攻擊監控與應對 12
1.3.3 評估風險並完善安全性 16
1.4 本章小結 17
第1 部分 案例研究:在簡易的 DevOps 流水線上套用多層安全性
2建立簡易的 DevOps 流水線 21
2.1 實現線路圖 22
2.2 代碼倉庫 :GitHub24
2.3 CI 平台 :CircleCI 24
2.4 容器鏡像庫 :Docker Hub 28
2.5 生產環境基礎設施 :Amazon Web Services30
2.5.1 三層架構 31
2.5.2 配置訪問 AWS32
2.5.3 虛擬私有雲 34
2.5.4 創建資料庫層 35
2.5.5 EB 創建前兩層 37
2.5.6 將容器部署到系統中 41
2.6 快速安全審計 44
2.7 本章小結 45
3第一層安全性 :保護 Web 套用 47
3.1 保護並測試 Web 套用 48
3.2 網站攻擊和內容安全 52
3.2.1 跨站腳本攻擊和內容安全策略 52
3.2.2 跨站請求偽造 59
3.2.3 點擊劫持和 IFrame 保護 64
3.3 用戶身份驗證的方法 65
3.3.1 HTTP 基本身份驗證 66
3.3.2 密碼管理 68
3.3.3 身份提供商 69
3.3.4 會話和 Cookie 的安全性 75
3.3.5 測試身份驗證 75
3.4 依賴管理 76
3.4.1 Golang vendoring 76
3.4.2 Node.js 的包管理 78
3.4.3 Python requirements 79
3.5 本章小結 80
4第二層安全性 :保護雲基礎設施81
4.1 保護並測試雲基礎設施 :部署器82
4.1.1 設定部署器 83
4.1.2 配置 Docker Hub 和部署器之間的通知 84
4.1.3 對基礎設施執行測試 85
4.1.4 更新發票套用的環境 85
4.2 限制網路訪問 86
4.2.1 測試安全組 87
4.2.2 開放安全組之間的訪問許可權 90
4.3 搭建安全入口 91
4.3.1 生成 SSH 密鑰 93
4.3.2 在 EC2 中創建堡壘機 94
4.3.3 啟用 SSH 雙因子驗證 96
4.3.4 被訪問時傳送通知 101
4.3.5 一般安全注意事項 103
4.3.6 開放安全組之間的訪問許可權 109
4.4 控制對資料庫的訪問 111
4.4.1 分析資料庫結構 112
4.4.2 PostgreSQL 的角色和許可權 114
4.4.3 為發票套用定義細粒度的許可權 115
4.4.4 在部署器中斷言許可權 120
4.5 本章小結 122
5第三層安全性 :保護通信 123
5.1 安全通信意味著什麼 124
5.1.1 早期的對稱加密 125
5.1.2 Diffie-Hellman 與 RSA 126
5.1.3 公鑰基礎設施 129
5.1.4 SSL 和 TLS 130
5.2 理解 SSL/TLS 131
5.2.1 證書鏈 132
5.2.2 TLS 握手 132
5.3 讓套用使用 HTTPS136
5.3.1 從 AWS 獲取證書 136
5.3.2 從 Let’s Encrypt 獲取證書 137
5.3.3 在 AWS ELB 上啟用 HTTPS 139
5.4 現代化 HTTPS142
5.4.1 測試 TLS 143
5.4.2 實施 Mozilla 現代指南 146
5.4.3 HSTS :嚴格傳輸安全 147
5.4.4 HPKP :公鑰固定 149
5.5 本章小結 152
6第四層安全性 :保護交付流水線153
6.1 代碼管理基礎設施的訪問控制 155
6.1.1 管理 GitHub 組織中的許可權 156
6.1.2 管理 GitHub 和 CircleCI 之間的許可權 158
6.1.3 用 Git 對提交和 tag 簽名 161
6.2 容器存儲的訪問控制 165
6.2.1 管理 Docker Hub 與 CircleCI 之間的許可權 165
6.2.2 用 Docker 內容信任機制對容器簽名 168
6.3 基礎設施管理的訪問控制 169
6.3.1 使用 AWS 角色和策略管理許可權 169
6.3.2 將密碼分發到生產環境系統中 173
6.4 本章小結 179
第 2 部分監控異常,保護服務免受攻擊
7 收集並保存日誌 183
7.1 從系統和套用中收集日誌 185
7.1.1 從系統中收集日誌 187
7.1.2 收集套用日誌 191
7.1.3 基礎設施日誌 194
7.1.4 收集 GitHub 日誌 197
7.2 通過訊息代理串流日誌事件 199
7.3 在日誌消費者中處理事件 201
7.4 保存並歸檔日誌 204
7.5 訪問日誌 206
7.6 本章小結 209
8分析日誌找到欺詐和攻擊 211
8.1 日誌分析層的架構 212
8.2 使用字元串特徵檢測攻擊 219
8.3 欺詐檢測的統計模型 223
8.3.1 滑動視窗與循環緩衝 223
8.3.2 移動平均值 226
8.4 利用地理信息數據來發現濫用 229
8.4.1 記錄用戶的地理信息 230
8.4.2 計算距離 231
8.4.3 找到用戶的正常連線區域 232
8.5 檢測已知模式的異常 234
8.5.1 user-agent 特徵234
8.5.2 異常的瀏覽器 234
8.5.3 互動模式 234
8.6 向運維人員和最終用戶發出告警 235
8.6.1 向運維人員升級安全事件 236
8.6.2 何時以何種方式通知最終用戶 239
8.7 本章小結 240
9入侵檢測 243
9.1 入侵七部曲 :殺傷鏈 244
9.2 什麼是攻擊指示符 246
9.3 掃描終端節點尋找 IOC 254
9.4 使用 Suricata 檢查網路流量 265
9.4.1 設定 Suricata 267
9.4.2 監控網路 268
9.4.3 編寫規則 269
9.4.4 使用預定義規則集 270
9.5 在系統調用審計日誌中尋找入侵 271
9.5.1 執行的漏洞 272
9.5.2 捕捉欺詐命令的執行 273
9.5.3 監控檔案系統 275
9.5.4 監控不可能發生的事情 276
9.6 信任人們發現異常的能力 277
9.7 本章小結 278
10 安全事件回響案例分析 :加勒比海“癱”279
10.1 加勒比海“癱” 281
10.2 識別 281
10.3 隔離 285
10.4 殺滅 287
10.4.1在 AWS 中捕獲數字取證製品 289
10.4.2出站 IDS 過濾 290
10.4.3使用 MIG 追蹤 IOC 295
10.5 恢復 298
10.6 總結經驗和充分準備的優勢 300
10.7 本章小結 303
第 3 部分DevOps 安全性走向成熟
11 風險評估 307
11.4 風險管理是什麼 308
11.5 CIA 三要素 310
11.2.1機密性 311
11.2.2完整性 312
11.2.3可用性 313
11.6 確定組織面臨的最大威脅 314
11.7 量化風險產生的影響 316
11.4.1財務 317
11.4.2聲譽 317
11.4.3生產力 318
11.8 識別威脅並度量脆弱程度 318
11.8.1STRIDE 威脅建模框架 319
11.8.2DREAD 威脅建模框架 320
11.9 快速風險評估 322
11.9.1收集信息 323
11.9.2建立數據字典 325
11.9.3識別並度量風險 326
11.9.4給出建議 328
11.10 記錄並跟蹤風險 329
11.10.1 承擔、拒絕或轉移風險 331
11.10.2 定期回顧風險 331
11.11 本章小結 332
12 測試安全性 333
12.4 維護安全可見性 334
12.5 審計內部套用和服務 335
12.5.1Web 套用掃描器 336
12.5.2模糊測試 339
12.5.3靜態代碼掃描 342
12.5.4審計雲基礎設施 345
12.6 紅軍和外部滲透測試 349
12.7 Bug 賞金計畫 353
12.8 本章小結 356
13 持續安全 357
13.4 實踐並反覆練習 :10000 小時安全性358
13.5 第一年 :將安全整合到 DevOps 中 359
13.5.1不要過早下結論 360
13.5.2全面測試並建立儀錶盤 360
13.6 第二年 :居安思危362
13.6.1避免重複的基礎設施建設 362
13.6.2自建或採購 363
13.6.3承受攻擊 364
13.7 第三年 :推動變革364
13.7.1重新審視安全優先權 365
13.7.2疊代前進 365
作者簡介
Jullen Vehent是安全架構師, 也是DevOps的倡導者。他在Moz la領導Firefox運維安全團隊,負責Firefox的大流量雲服務和公共網站的安全。數百萬名 Firefox 用戶每天與之互動的 Web 服務的安全性由他負責定義、實現和運維。Julien 從 2000 年開始一直致力於保護網路服務,最開始是一名 Linux 系統管理員,2007 年獲得了信息安全專業碩士學位。
覃宇,ThoughtWorks 高級諮詢師,10餘年移動套用開發經驗,Android 技術專家;譯有《Kotlin實戰》《Severless:無服務架構與AWS Lambda》《領域驅動設計精粹》等書。