介紹

已完成

DevOps 實務可讓開發小組更快、更頻繁地部署應用程式。 然而,沒有安全性的速度會產生風險。 快速轉向安全漏洞對您的業務沒有幫助。 挑戰在於保持速度,同時確保應用程式在其整個生命週期中保持安全。

現代發展中的安全挑戰

DevOps 團隊可以存取前所未有的基礎設施,並透過雲端平台進行擴展。 這種可訪問性帶來了機會,但也使組織面臨複雜的安全威脅。 每個應用程式部署都可能面臨業務安全、客戶資料和組織聲譽的風險。

傳統的安全方法在現代環境中失敗: 使用防火牆和網路控制保護資料中心的基於邊界的安全模型不會轉化為分散式雲端環境。 應用程式跨越多個服務、區域和雲端供應商。 微服務、API 和外部整合之間的資料流動。 傳統的城堡和護城河方法不再提供足夠的保護。

現代安全需要多個防禦層: 組織必須在多個層級採用安全性,包括應用程式程式碼、基礎架構、網路、資料和身分識別。 安全性不能作為單一檢查點存在。 它必須嵌入整個堆疊中,並有多種機會來偵測和預防威脅。

DevSecOps 方法

您如何確保應用程式安全,並透過持續整合和持續交付保持安全? 如何在開發過程的早期發現並修復安全問題? 答案在於通常稱為 DevSecOps 的實踐。

安全是共同的責任: DevSecOps 將安全團隊及其功能納入您的 DevOps 實踐中,使安全成為團隊中每個人的責任,而不是單獨的職能。 開發人員、營運工程師和安全專家在整個開發生命週期中進行協作。

安全左移:安全性需要從開發結束時事後考慮的事項,轉變為每個流程步驟中的考量因素。 這種「左移」方法可以在安全性問題較容易且成本較低的情況下及早發現它們。 在程式碼審查期間發現的漏洞成本遠低於在生產環境中發現的漏洞。

安全是一個持續的過程

保護應用程式是一個持續的過程,涵蓋多個領域:

安全基礎設施: 建立在安全基礎上,包括強化的作業系統、正確配置的網路、加密儲存和安全的身分管理。

具有分層安全性的架構: 設計具有內建於架構中的安全性的應用程式。 使用多個安全層實施深度防禦,這樣如果一個控制失敗,其他控制仍然有效。

持續安全驗證: 在整個管道中自動化安全測試。 執行安全性掃描、弱點評估和合規性檢查,作為持續整合和部署的一部分。

監測與應對: 監控生產環境中的應用程式是否有安全威脅和異常行為。 偵測到問題時,盡可能迅速透過自動化修復作出回應。

由四部分組成的圓圖,顯示基礎架構、應用程式架構、監控和持續驗證作為互連的安全元件。

整體安全方法: 安全性是每個人的責任,必須在從初始設計到生產操作和最終退役的整個應用程式生命週期中全面解決。

本單元涵蓋的內容

本課程模組介紹 DevSecOps 概念和實務,可在整個開發生命週期中整合安全性:

常見漏洞: 您將了解 SQL 注入攻擊,這是最普遍和最危險的安全漏洞之一。 瞭解這些攻擊的運作方式有助於您在應用程式中防止它們。

DevSecOps 原則: 您將瞭解 DevSecOps 與傳統安全方法有何不同,以及如何在不犧牲開發速度的情況下將安全實踐整合到現有的 DevOps 工作流程中。

管道安全性: 您將在 CI/CD 管道中發現應進行安全性檢查的關鍵驗證點。 了解如何實施自動化安全測試,在漏洞進入生產環境之前捕獲漏洞。

威脅建模: 您將學習識別、評估安全威脅並確定其優先順序的系統方法。 威脅建模可協助您將安全工作集中在應用程式和業務的最重大風險上。

自動化安全分析: 您將探索 GitHub CodeQL 等提供自動化安全性分析的工具。 這些工具會掃描程式碼中的漏洞和安全模式,使您能夠及早發現問題,而無需對每次程式碼變更進行手動安全審查。

加速安全團隊: 持續整合和部署管道實際上可以透過自動化重複性安全檢查和改善與軟體開發團隊的協作來加速安全團隊的工作。 安全團隊可以專注於複雜的威脅,而不是手動審查例行變更。

學習目標

完成本單元後,您將能夠:

  • 識別並了解 SQL 注入攻擊及其對應用程式安全性的影響。
  • 解釋 DevSecOps 原則以及如何在整個開發生命週期中整合安全性。
  • 在 DevOps 管線中的關鍵點實作安全性驗證。
  • 進行威脅建模以識別安全風險並確定其優先順序。
  • 使用 GitHub CodeQL 進行自動化安全性分析和弱點偵測。

先決條件

  • 了解 DevOps 概念和實踐。
  • 熟悉持續整合和持續部署管線。
  • 應用程式開發的基本知識和常見的安全概念。
  • 具有 Git 等版本控制系統的經驗。
  • 有在提供軟體的組織工作經驗是有益的。