你需要知道的 DevSecOps 流程及工具

2019-10-23 00:21:00

DevSecOps 對 DevOps 進行了改進,以確保安全性仍然是該過程的一個重要部分。

到目前為止,DevOps 在 IT 世界中已廣為人知,但其並非完美無缺。試想一下,你在一個專案的現代應用程式交付中實施了所有 DevOps 工程實踐。你已經到達開發流程的末尾,但是滲透測試團隊(內部或外部)檢測到安全漏洞並提出了報告。現在,你必須重新啟動所有流程,並要求開發人員修復該漏洞。

在基於 DevOps 的軟體開發生命週期(SDLC)系統中,這並不繁瑣,但它確實會浪費時間並影響交付進度。如果從 SDLC 初期就已經整合了安全性,那麼你可能已經跟蹤到了該故障,並在開發流程中就消除了它。但是,如上述情形那樣,將安全性推到開發流程的最後將導致更長的開發生命週期。

這就是引入 DevSecOps 的原因,它以自動化的方式鞏固了整個軟體交付週期。

在現代 DevOps 方法中,組織廣泛使用容器託管應用程式,我們看到 KubernetesIstio 使用的較多。但是,這些工具都有其自身的漏洞。例如,雲原生計算基金會(CNCF)最近完成了一項 kubernetes 安全審計,發現了幾個問題。DevOps 開發流程中使用的所有工具在流程執行時都需要進行安全檢查,DevSecOps 會推動管理員去監視工具的儲存庫以獲取升級和修補程式。

什麼是 DevSecOps?

與 DevOps 一樣,DevSecOps 是開發人員和 IT 運營團隊在開發和部署軟體應用程式時所遵循的一種思維方式或文化。它將主動和自動化的安全審計以及滲透測試整合到敏捷應用程式開發中。

要使用 DevSecOps,你需要:

  • 從 SDLC 開始就引入安全性概念,以最大程度地減少軟體程式碼中的漏洞。
  • 確保每個人(包括開發人員和 IT 運營團隊)共同承擔在其任務中遵循安全實踐的責任。
  • 在 DevOps 工作流程開始時整合安全控制元件、工具和流程。這些將在軟體交付的每個階段啟用自動安全檢查。

DevOps 一直致力於在開發和發布過程中包括安全性以及品質保證(QA)、資料庫管理和其他所有方面。然而,DevSecOps 是該過程的一個演進,以確保安全永遠不會被遺忘,成為該過程的一個重要部分。

了解 DevSecOps 流程

典型的 DevOps 流程有不同的階段;典型的 SDLC 流程包括計劃、編碼、構建、測試、發布和部署等階段。在 DevSecOps 中,每個階段都會應用特定的安全檢查。

  • 計劃:執行安全性分析並建立測試計劃,以確定在何處、如何以及何時進行測試的方案。
  • 編碼:部署整理工具和 Git 控制元件以保護密碼和 API 金鑰。
  • 構建:在構建執行程式碼時,請結合使用靜態應用程式安全測試(SAST)工具來跟蹤程式碼中的缺陷,然後再部署到生產環境中。這些工具針對特定的程式語言。
  • 測試:在執行時使用動態應用程式安全測試(DAST)工具來測試您的應用程式。 這些工具可以檢測與使用者身份驗證,授權,SQL 注入以及與 API 相關的端點相關的錯誤。
  • 發布:在發布應用程式之前,請使用安全分析工具來進行全面的滲透測試和漏洞掃描。
  • 部署:在執行時完成上述測試後,將安全的版本傳送到生產中以進行最終部署。

DevSecOps 工具

SDLC 的每個階段都有可用的工具。有些是商業產品,但大多數是開源的。在我的下一篇文章中,我將更多地討論在流程的不同階段使用的工具。

隨著基於現代 IT 基礎設施的企業安全威脅的複雜性增加,DevSecOps 將發揮更加關鍵的作用。然而,DevSecOps 流程將需要隨著時間的推移而改進,而不是僅僅依靠同時實施所有安全更改即可。這將消除回溯或應用交付失敗的可能性。