瞭解 DevSecOps
隨著組織尋求支援業務生產力、實現遠端工作和有效擴展營運,雲端採用持續加速。 然而,如果沒有足夠的安全基礎設施,這種快速採用可能會無意中損害資料並使組織面臨重大風險。
雲端應用程式中的安全漏洞
即使雲端採用率不斷增長,安全性差距仍然存在。 移至雲端平台的組織並不總是實作適當的安全性控制:
加密差距: 許多雲端應用程式無法正確保護資料:
- 靜態資料: 當儲存媒體被存取、被盜或處置不當時,未加密的資料庫、儲存體帳戶和檔案系統會使資料容易受到攻擊。
- 傳輸中的資料: 透過未加密連線傳輸資料的應用程式會將資訊暴露給攔截。 甚至內部網路流量也應該加密。
- 常見差距: 很大一部分 SaaS 應用程式沒有充分加密資料。 儲存應用程式通常缺乏靜態和傳輸中的加密。 協作應用程式經常在沒有適當保護的情況下傳輸敏感資訊。
會話保護缺陷: 弱會話管理會產生漏洞:
- 缺少 HTTP 安全標頭: 未實作 HSTS(HTTP 嚴格傳輸安全性)、CSP(內容安全性原則)和安全 Cookie 屬性等安全性標頭的應用程式會使會話容易受到劫持。
- 代幣敞口: 不安全傳輸的會話令牌可能會被攻擊者攔截並重複使用,以冒充合法使用者。
- 有限採用: 很少有 SaaS 應用程式實現全面的 HTTP 標頭會話保護,使用戶容易受到基於會話的攻擊。
什麼是安全 DevOps (DevSecOps)
速度與安全性之間的緊張關係: DevOps 強調透過自動化、持續整合和快速部署來加快工作速度。 傳統上,安全性強調徹底性、仔細審查和全面測試。 這些目標似乎是矛盾的。
傳統安全方法問題: 當安全問題僅在開發週期結束時解決時,就會出現幾個問題:
- 當團隊面臨釋放壓力時,計劃外的工作常常在部署的前一刻出現。
- 延遲發現的安全性問題需要對已完成的功能進行昂貴的重新作業。
- 安全性成為減慢或阻止發布的瓶頸。
- 團隊將安全性視為障礙,而不是推動因素。
- 嚴重安全漏洞可能會因為發布壓力而降低優先順序。
安全 DevOps 解決方案: 安全 DevOps 將安全性與 DevOps 實務整合到一組有凝聚力的活動中,旨在滿足 DevOps 速度和安全有效性的目標。 安全性從一開始就成為開發過程的一部分,而不是最後的大門。
整合的好處: 安全 DevOps 管道可讓開發團隊快速工作,而不會因引入不必要的安全漏洞而中斷專案。 安全性和速度成為互補而不是對立的目標。
注意
安全 DevOps 有時也稱為 DevSecOps。 您可能會遇到這兩個詞彙,但每個詞彙都參考相同的概念。 術語差異純粹是風格上的。 實踐和原則保持不變。
安全 DevOps 中的安全性如何變更
傳統安全方法: 從歷史上看,安全性的運作週期較慢,主要集中在:
- 存取控制: 透過身份驗證和授權機制管理誰可以存取系統和資料。
- 環境硬化: 設定系統以移除不必要的服務、套用安全性修補程式,以及強制執行安全設定。
- 周界保護: 使用防火牆、入侵偵測系統和網路分段來保護網路邊界。
擴展的安全範圍: 安全 DevOps 包括這些傳統的安全方法,但將安全問題擴展到整個軟體開發生命週期。 安全 DevOps 的安全性重在保護管道本身及其所有流經的內容。
管線安全性焦點: 安全的 DevOps 包括決定在何處為插入您的組建與發行管線的元素新增保護:
- 原始程式碼儲存庫。
- 建置伺服器和代理程式。
- 工件儲存和註冊表。
- 部署工具和程序。
- 基礎結構即程式碼範本。
- 配置管理系統。
- 秘密管理解決方案。
綜合方法: 安全 DevOps 向您展示如何以及在何處為自動化實踐、生產環境和其他管線元素添加安全性,同時保持 DevOps 的速度優勢。 安全控制是自動化和集成的,而不是手動和獨立的。
Secure DevOps 解決的關鍵問題
Secure DevOps 可協助組織回答關鍵的安全問題:
第三方元件安全性:
- 我的管線是否使用第三方元件,而且是否安全?
- 這些組件是否來自可信任來源?
- 元件簽章是否經過驗證?
- 許可證與我們的使用情況相容嗎?
漏洞管理:
- 我們在任何第三方軟體內是否有已知的弱點?
- 我們如何追蹤相依性的漏洞弱點?
- 我們更新易受攻擊元件的流程是怎樣的?
- 我們是否有所有依賴項的清單,包括可傳遞的依賴項?
檢測速度(檢測時間):
- 我能多快偵測到漏洞?
- 安全掃描是否在流程中自動化?
- 我們有運行時安全問題監控嗎?
- 安全警報到達正確人員的速度有多快?
補救速度(補救時間):
- 我可以多快修復已識別的漏洞?
- 我們可以透過相同的自動化管道部署修正程式嗎?
- 緊急安全性修補程式的流程是怎樣的?
- 我們如何驗證補救措施是否有效?
安全即代碼
自動化安全實踐: 偵測潛在安全異常的安全實務必須與 DevOps 管線的其他部分一樣強大且快速。 這包括:
基礎設施安全自動化:
- 基礎設施即代碼模板的自動安全掃描。
- 雲端資源組態的原則即程式碼強制執行。
- 基礎設施部署前的合規性檢查。
- 持續監控基礎設施安全態勢。
應用程式安全自動化:
- 建置期間的靜態應用程式安全性測試 (SAST)。
- 暫置環境中的動態應用程式安全測試 (DAST)。
- 依賴性弱點的軟體組合分析。
- 部署前的容器映像掃描。
- 生產環境中的執行階段應用程式自我保護 (RASP)。
持續安全: 安全 DevOps 中的安全性不是單一檢查點。 它在整個開發、部署和操作過程中進行持續驗證。 管道的每個階段都包含適當的安全控制,這些控制會自動執行,而不會減慢交付速度。