DevSecOps與SecDevOps

zktq2021發表於2022-03-04

DevSecOps是一種在敏捷環境中進行持續軟體開發過程的相對較新的方法。它是包括安全自動化的DevOps(開發+運營)的擴充套件。但是,DevSecOps名稱中順序可能會導致不正確的應用程式安全操作方法。這也是為什麼有些人認為稱SecDevOps或許是一個更好的術語。

傳統的DevOps流程不包括安全性。這也就意味著許多實踐DevOps文化的軟體開發企業最初不存在安全團隊,甚至在開發期間並沒有關注到安全問題。多數情況下,安全是在部署應用程式後對其進行測試,因此可以稱之為DevOpsSec。但這種方法可能導致開發出現重大延遲,並且不適合包含安全性的敏捷DevOps實踐。

低效的DevSecOps方法

在常見的持續開發過程中,業務部門有一個獨立的安全團隊負責進行安全測試,而不是作為開發的以部門。在這種情況下,開發團隊使用CI/CD(持續整合/持續交付)解決方案構建應用程式。使用這種解決方案自動編譯新程式碼,然後進行測試(但不包括安全性測試)。當程式碼準備好後,應用程式就被部署到一個臨時環境中,這時安全團隊就開始對其進行工作(手動或使用自動化工具)。

這種方法的問題在於,安全問題往往是在流程的後期才被發現。當安全團隊發現安全問題時,就需要更正應用程式,並重新執行整個過程。這種方式並不敏捷,而且還給安全團隊造成了瓶頸。在最壞的情況下,由於最終上線時間的到來而無法返回重新構建,沒有時間來修復安全缺陷,那很可能在存在安全問題的情況下發布了應用程式。

SecDevOps - 安全最佳實踐

將網路安全納入開發工作流程的正確方法是將安全視為第一優先事項,也就是說在構建軟體開發初期就將安全問題考慮進來。安全實踐應該包含在應用程式開發的每個階段。安全團隊可能更專注於安全策略,監督持續的部署,並執行高階手動滲透測試。DevOps管道中的其他團隊應該儘可能多地執行安全任務。

SecDevOps方法從教育開始。安全團隊應提供關於安全編碼和安全開發實踐的培訓。例如,應該教導開發人員不要輕易相信使用者輸入,並在原始碼中使用引數化查詢或儲存過程,以避免SQL隱碼攻擊漏洞。測試開發人員和QA團隊學會如何使用 靜態應用安全測試及動態應用安全測試工具,以及如何為開發週期建立安全測試。教導運營團隊如何定期進行安全漏洞檢測。

構建安全軟體的秘訣

無論是DevSecOps還是SecDevOps,重要的是意識到安全不應該是開發和部署過程中的一個孤島,而是軟體開發生命週期中每個活動的組成部分。構建安全的產品需要廣泛的安全策略,並遵循網路安全框架。而這些與選擇何種工具、有多少安全專業人員無關,而是如何確保團隊的每個成員在工作中考慮到潛在的安全挑戰。

關鍵詞標籤:軟體安全 DevSecOps 敏捷開發 程式碼安全 靜態程式碼檢測


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2864541/,如需轉載,請註明出處,否則將追究法律責任。

相關文章