你需要知道的DevSecOps流程及工具
DevSecOps 對 DevOps 進行了改進,以確保安全性仍然是該過程的一個重要部分。
到目前為止,DevOps 在 IT 世界中已廣為人知,但其并非完美無缺。試想一下,你在一個項目的現(xiàn)代應用程序交付中實施了所有 DevOps 工程實踐。你已經(jīng)到達開發(fā)流程的末尾,但是滲透測試團隊(內(nèi)部或外部)檢測到安全漏洞并提出了報告?,F(xiàn)在,你必須重新啟動所有流程,并要求開發(fā)人員修復該漏洞。
在基于 DevOps 的軟件開發(fā)生命周期(SDLC)系統(tǒng)中,這并不繁瑣,但它確實會浪費時間并影響交付進度。如果從 SDLC 初期就已經(jīng)集成了安全性,那么你可能已經(jīng)跟蹤到了該故障,并在開發(fā)流程中就消除了它。但是,如上述情形那樣,將安全性推到開發(fā)流程的最后將導致更長的開發(fā)生命周期。
這就是引入 DevSecOps 的原因,它以自動化的方式鞏固了整個軟件交付周期。
在現(xiàn)代 DevOps 方法中,組織廣泛使用容器托管應用程序,我們看到 Kubernetes 和 Istio 使用的較多。但是,這些工具都有其自身的漏洞。例如,云原生計算基金會(CNCF)最近完成了一項 kubernetes 安全審計,發(fā)現(xiàn)了幾個問題。DevOps 開發(fā)流程中使用的所有工具在流程運行時都需要進行安全檢查,DevSecOps 會推動管理員去監(jiān)視工具的存儲庫以獲取升級和補丁。
什么是 DevSecOps?
與 DevOps 一樣,DevSecOps 是開發(fā)人員和 IT 運營團隊在開發(fā)和部署軟件應用程序時所遵循的一種思維方式或文化。它將主動和自動化的安全審計以及滲透測試集成到敏捷應用程序開發(fā)中。
要使用 DevSecOps,你需要:
- 從 SDLC 開始就引入安全性概念,以最大程度地減少軟件代碼中的漏洞。
- 確保每個人(包括開發(fā)人員和 IT 運營團隊)共同承擔在其任務中遵循安全實踐的責任。
- 在 DevOps 工作流程開始時集成安全控件、工具和流程。這些將在軟件交付的每個階段啟用自動安全檢查。
DevOps 一直致力于在開發(fā)和發(fā)布過程中包括安全性以及質(zhì)量保證(QA)、數(shù)據(jù)庫管理和其他所有方面。然而,DevSecOps 是該過程的一個演進,以確保安全永遠不會被遺忘,成為該過程的一個重要部分。
了解 DevSecOps 流程
典型的 DevOps 流程有不同的階段;典型的 SDLC 流程包括計劃、編碼、構建、測試、發(fā)布和部署等階段。在 DevSecOps 中,每個階段都會應用特定的安全檢查。
- 計劃:執(zhí)行安全性分析并創(chuàng)建測試計劃,以確定在何處、如何以及何時進行測試的方案。
- 編碼:部署整理工具和 Git 控件以保護密碼和 API 密鑰。
- 構建:在構建執(zhí)行代碼時,請結合使用靜態(tài)應用程序安全測試(SAST)工具來跟蹤代碼中的缺陷,然后再部署到生產(chǎn)環(huán)境中。這些工具針對特定的編程語言。
- 測試:在運行時使用動態(tài)應用程序安全測試(DAST)工具來測試您的應用程序。 這些工具可以檢測與用戶身份驗證,授權,SQL 注入以及與 API 相關的端點相關的錯誤。
- 發(fā)布:在發(fā)布應用程序之前,請使用安全分析工具來進行全面的滲透測試和漏洞掃描。
- 部署:在運行時完成上述測試后,將安全的版本發(fā)送到生產(chǎn)中以進行最終部署。
DevSecOps 工具
SDLC 的每個階段都有可用的工具。有些是商業(yè)產(chǎn)品,但大多數(shù)是開源的。在我的下一篇文章中,我將更多地討論在流程的不同階段使用的工具。
隨著基于現(xiàn)代 IT 基礎設施的企業(yè)安全威脅的復雜性增加,DevSecOps 將發(fā)揮更加關鍵的作用。然而,DevSecOps 流程將需要隨著時間的推移而改進,而不是僅僅依靠同時實施所有安全更改即可。這將消除回溯或應用交付失敗的可能性。