DevSecOps 可讓使用者在軟體開發生命週期 (SDLC) 初期整合安全性測試, 這通常稱為「儘早執行安全性測試」(Shifting Security Left) 或「儘早測試」(Shift Left)。DevSecOps 讓使用者能夠在軟體開發週期中及早順暢地控管應用程式安全性,而不是等到後期發現需要防範的漏洞時才採取行動,屆時要執行補救措施不但困難,成本也極高。
DevSecOps 是從 DevOps 的概念延伸而來,有時又稱為「安全 DevOps」。 即使每個人或每個組織對 DevOps 的解讀方式不盡相同,但若想轉換到 DevOps,文化和技術方面就必須有所變革。 雖然沒有言明,不過「安全性」是成功推行 DevOps 不可或缺的要素。
如果要採用 DevSecOps,相關團隊從一開始就需要妥善規劃應用程式和基礎架構安全性。 正確的工具可以幫助團隊達到持續整合安全性的目標,而整個過程也包括做出適當的決策,像是選擇使用具備安全功能的整合式開發環境 (IDE) 等等。 團隊也需要使用能夠自動執行某些安全措施的工具和程序,方能避免降低 DevOps 工作流程效率。
DevSecOps 的優點
DevSecOps 可加強整個軟體交付管道的自動化程序,以便排除程式碼錯誤,乃至減少資安漏洞。
當團隊導入 DevSecOps 工具與程序後,即可將安全性功能整合至 DevOps 架構,加快安全性軟體的發行速度。 開發人員也可在撰寫程式碼的同時,測試該程式碼的安全性並偵測安全性漏洞。 團隊還應具備使用現有工具的能力,以便提升網路應用程式開發作業的安全性。
DevSecOps 實務的關鍵要素
若要採用 DevSecOps 方法,則可能需要將以下要素納入首要考量:
- 應用程式/API 清查
- 自動探查、分析及持續監控所有產品組合的程式碼, 其中可能包括資料中心、虛擬環境、私有雲端環境、公用雲端環境、容器、無伺服器系統等項目中的實際程式碼。 您可以搭配使用自動化探查與自行清查工具。 探查工具可幫助您辨識自己擁有的應用程式和 API, 而自行報告工具可讓應用程式主動進行清查作業,並將中繼資料回報至中央資料庫。
- 自訂程式碼安全性
- 在整個開發、測試及操作過程中持續監控軟體,以找出安全性弱點。 您可以經常提供程式碼,讓系統能在每次程式碼更新時迅速辨識資安弱點。
- 靜態應用程式安全測試 (SAST) 可掃描應用程式的原始程式檔,精準地找出安全問題的根本原因,並幫助修復其中暗藏的安全漏洞。
- 動態應用程式安全測試 (DAST) 會以可控管的方式對執行中的網路應用程式或服務模擬攻擊,找出執行中環境內可利用的弱點。
- 互動式應用程式安全性測試 (IAST) 會透過檢測使用代理程式和感應器的應用程式來進行深度掃描,以持續分析應用程式、其基礎結構、相依性、資料流程與程式碼。
- 開放原始碼安全性
- 開放原始碼軟體 (OSS) 通常暗藏安全性弱點,因此您使用的解決方案應可追蹤 OSS 程式庫並回報資安弱點及授權違規情形,安全防護才可面面俱到。
- 軟體構成分析 (SCA) 會自動深入分析開放原始碼軟體 (OSS),讓您對該軟體有更全面的掌握,藉以管理風險、保障安全性並遵循授權要求。
- 執行階段預防威脅功能
- 保護生產期間的應用程式免受新發現的漏洞威脅,或受到尚未開發的舊版應用程式影響。
- 記錄功能可讓您掌握攻擊媒介與受影響系統的類型; 威脅情報功能則會在進行威脅模型分析與安全性架構建立程序時通知您。
- 執行階段應用程式自我保護 (RASP) 會檢測應用程式,以直接評估內部的攻擊行為,並從內部保護應用程式免受入侵。
- 法規遵循監控
- 允許稽核 GDPR、CCPA、PCI 等法令的整備度與長期法規遵循狀態。
- 文化因素
- 找出主要的安全負責人、為開發人員制定安全培訓計畫等等。
實際採用 DevSecOps
步驟 1:在軟體需求中加入安全性功能
步驟 2:快速地儘早進行測試,且應經常執行
步驟 3:善用整合功能,讓應用程式安全性成為生命週期中不可或缺的一環
步驟 4:在開發和測試過程中自動管理安全性
步驟 5:在發行後持續監控並保護其安全
Fortify 有助於將安全性功能整合至 DevOps
- 便於開發人員使用
- 自動化 CI/CD 管道
- 使用 Fortify Static Code Analyzer 執行 SAST
- 使用 Fortify WebInspect 執行 DAST
- 使用 Fortify Application Defender 執行 RASP
- 使用 Sonatype 和 Fortify 執行軟體構成分析 (SCA) / 開放原始碼安全性 (OSS)
- 擴展應用程式安全性