你需要知道的 DevSecOps 流程及工具
DevSecOps 對 DevOps 進行了改進,以確保安全性仍然是該過程的一個重要部分。
到目前為止,DevOps 在 IT 世界中已廣為人知,但其並非完美無缺。試想一下,你在一個專案的現代應用程式交付中實施了所有 DevOps 工程實踐。你已經到達開發流程的末尾,但是滲透測試團隊(內部或外部)檢測到安全漏洞並提出了報告。現在,你必須重新啟動所有流程,並要求開發人員修復該漏洞。
在基於 DevOps 的軟體開發生命週期(SDLC)系統中,這並不繁瑣,但它確實會浪費時間並影響交付進度。如果從 SDLC 初期就已經整合了安全性,那麼你可能已經跟蹤到了該故障,並在開發流程中就消除了它。但是,如上述情形那樣,將安全性推到開發流程的最後將導致更長的開發生命週期。
這就是引入 DevSecOps 的原因,它以自動化的方式鞏固了整個軟體交付週期。
在現代 DevOps 方法中,組織廣泛使用容器託管應用程式,我們看到 Kubernetes 和 Istio 使用的較多。但是,這些工具都有其自身的漏洞。例如,雲原生計算基金會(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 流程將需要隨著時間的推移而改進,而不是僅僅依靠同時實施所有安全更改即可。這將消除回溯或應用交付失敗的可能性。
via: https://opensource.com/article/19/10/devsecops-pipeline-and-tools
作者:Sagar Nangare 選題:lujun9972 譯者:lnrCoder 校對:wxy
訂閱“Linux 中國”官方小程式來檢視
相關文章
- DevSecOps 需要知道的十大 K8s 安全風險及建議devK8S
- 2018年你需要知道的13個JavaScript工具庫JavaScript
- 你需要知道的kafkaKafka
- 你需要知道的SymbolsSymbol
- Node.js專案的DevSecOps流程Node.jsdev
- 你需要知道的HTTP常識HTTP
- 你需要知道的http協議HTTP協議
- 關於跨域你需要知道的跨域
- Flutter 你需要知道的那些事 01Flutter
- Vue.js 你需要知道的 scopedSlotsVue.js
- 你需要知道的Android View的佈局AndroidView
- 你需要知道的js中的函式JS函式
- 【譯】10 個你不知道你需要的 HTML 元素HTML
- 用於預防勒索軟體的 DevSecOps 流程dev
- 那些你需要知道的CSS-總結CSS
- [譯] 你需要知道的所有 Flexbox 排列方式Flex
- 你需要知道的小程式開發技巧
- 關於CSS Transition,你需要知道的事CSS
- [譯]GraphQL:你需要知道的一切
- 你可能需要知道的API介面文件神器API
- DevSecOps 流程中常見名詞縮寫dev
- js--你需要知道的字串使用方法(含es6及之後)JS字串
- Web直播,你需要先知道這些Web
- Apple WWDC 2024你需要知道的一切APP
- 關於Android模組化你需要知道的Android
- 學習swoole之前,你需要知道的幾件事
- GitHub Copilot:你需要知道的一切 - RawatGithub
- DevSecOps五個需要關注的編碼問題dev
- [譯] 你需要知道的 CSS 中所有 hyphenation 的使用CSS
- Java你需要知道的知識-簡明闡述雙親委派機制及作用Java
- 效能測試工具你知道多少?
- 你需要知道的幾類npm依賴包管理NPM
- [譯] 關於 Angular 動態元件你需要知道的Angular元件
- 你需要知道的那些 Java 位元組碼知識Java
- Vue.js 你需要知道的 v-slot (譯)Vue.js
- 寄Android開發Gradle你需要知道的知識AndroidGradle
- V8 —— 你需要知道的垃圾回收機制
- 關於webpack優化,你需要知道的事(上篇)Web優化