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