持續集成和持續交付 (CI/CD) 管道負責將應用程序從源代碼提交到生產系統上的部署。CI/CD 安全嘗試在 CI/CD 管道的所有階段檢測和修復應用程序安全的潛在風險。通過將安全性左移,CI/CD 安全性降低了軟件缺陷和漏洞的成本和影響。
為什么 CI/CD 安全性至關重要
CI/CD 管道是 DevOps 設計方法成功的核心。代碼開發完成并提交到存儲庫后,管道會自動構建代碼、對其進行測試,并為部署到生產環境做好準備。
部署到生產環境的代碼的安全性取決于 CI/CD 管道的安全性。如果測試用例不正確、不完整或被修改,則漏洞可能會被漏掉而未被發現。在 CI/CD 過程中,惡意代碼或易受攻擊的代碼也可能通過第三方依賴項注入到應用程序中。CI/CD 安全有助于減輕整個 CI/CD 管道中的這些和其他安全風險。
CI/CD 安全風險
企業 CI/CD 管道、應用程序和 DevOps 流程面臨眾多安全風險,包括:
- 不安全的編碼: CI/CD 管道的主要功能之一是在部署到生產環境之前測試代碼。這包括安全測試,旨在在代碼中的漏洞暴露給潛在的利用之前識別它們。
- 訪問控制不足: CI/CD 管道中的代碼必須能夠訪問某些數據和資源,以構建用于測試的功能圖像。管道訪問控制限制管道只能訪問其角色所需的內容,從而最大限度地減少在管道內執行惡意代碼時的潛在影響。
- 安全配置錯誤: CI/CD 管道是由各種系統組成的復雜環境。如果這些系統配置不當,可能會破壞管道的安全性。
- 泄露秘密:應用程序可能需要訪問各種類型的機密信息,例如密碼和 API 密鑰。因此,這些秘密必須可以在 CI/CD 管道中訪問以進行測試。如果這些秘密暴露在 CI/CD 管道或 DevOps 環境中,那么它們可能允許攻擊者竊取數據、訪問公司系統或向應用程序添加惡意功能。
- 易受攻擊的第三方庫:幾乎所有應用程序都依賴第三方代碼來實現各種功能。如果這些第三方庫包含漏洞或后門,則可能會打開使用這些庫的應用程序以供攻擊者利用。
- 供應鏈攻擊:在供應鏈攻擊中,攻擊者以應用程序所依賴的開源和第三方依賴項為目標。這可能包括向應用程序添加漏洞、后門或其他惡意功能。
保護 CI/CD 管道
CI/CD 管道及其使用的應用程序面臨著各種潛在的安全風險??梢约傻?CI/CD 管道中以提高應用程序安全性 (AppSec)的一些解決方案包括:
- 源組合分析 (SCA):SCA 解決方案可識別應用程序使用的第三方依賴項及其包含的潛在漏洞。這可以防止易受攻擊的第三方代碼和供應鏈攻擊。
- 源代碼掃描:靜態應用程序安全測試 (SAST) 檢查應用程序的源代碼是否存在潛在漏洞。代碼掃描解決方案使 DevOps 團隊能夠在修復成本較低的軟件開發生命周期 (SDLC) 的早期識別和糾正漏洞。
- 安全測試:在 SDLC 的測試階段,動態應用程序安全測試(DAST) 解決方案可以識別功能應用程序中的漏洞。這些測試稍后在 SDLC 中進行,但可以識別 SAST 解決方案無法檢測到的問題。
- 運行時安全性:漏洞可能在測試期間被忽略或在應用程序投入生產后被發現。運行時應用程序自我保護(RASP)等運行時安全解決方案可以在應用程序部署到生產環境后為其提供持續監控和保護。