如何友好地將安全性集成到 CI/CD 中?
譯文【51CTO.com快譯】將漏洞掃描自動化到開發流程中可以降低成功攻擊的可能性,并有助于保護容器化工作負載。實現這一目標的領先工具之一是 Aqua Security 的 Trivy,這是一種易于使用的開源漏洞掃描器,可幫助團隊“左移”將安全性納入構建管道。
自誕生以來,Trivy 因其簡單的方法和跨操作系統包和特定于語言的依賴項的全面漏洞跟蹤而廣受歡迎和支持。云本地計算基金會的終端用戶社區選擇Trivy作為2021年CNCF終端用戶技術雷達的頂級開發secops工具。Trivy已經被許多領先的云原生平臺和軟件供應商采用,包括Litmus、Kyverno、Istio和ExternalDNS;它是Harbor、GitLab和Artifact Hub的默認掃描器;微軟Azure Defender的CI/CD掃描也是由Trivy支持的。
Trivy 自創建以來已經發展了很多,我們對簡單性和有效性的關注使其成為任何開發人員工具包中的關鍵工具。在本文中,我將向大家介紹 Trivy 如何將安全性集成到構建過程中,分享一些最近的進展,并解釋 Trivy 如何融入更廣泛的 Aqua Security 開源生態系統,以保護云原生應用程序的整個生命周期.
Trivy 的工作原理
云原生安全之旅始于對代碼中存在的漏洞的可見性。在開發階段識別和緩解問題可減少攻擊面并消除風險。對于云原生應用程序,這涉及在構建圖像和功能時掃描它們,以及早發現問題并允許快速修復,以及持續掃描注冊表以解決新發現的漏洞。
Trivy 使 DevOps 團隊能夠根據開發需要盡快設置和開始掃描。部署和集成到 CI/CD 管道就像下載和安裝二進制文件一樣簡單。Trivy 可以集成到 CI 工具中,例如 Travis CI、CircleCI 和 GitLab CI。如果發現漏洞,Trivy 可以設置為使作業運行失敗。Trivy 也可作為 GitHub Action 使用,它可以與 GitHub 代碼掃描輕松集成。開發人員可以將容器鏡像掃描構建到他們的 GitHub Actions 工作流程中,以在漏洞投入生產之前發現并消除漏洞。
???
???
與其他開源掃描器不同,Trivy 提供跨操作系統包和編程語言包的全面可見性。它比其他工具更快地獲取漏洞數據,因此掃描只需幾秒鐘,并且可以直接在命令行中過濾關鍵 CVE。
???
Trivy 具有緊湊的數據庫,具有不需要外部中間件或數據庫依賴項的自動更新功能。Trivy 將通過從 GitHub 下載最新的預構建版本來自動使數據庫保持最新。這使得該工具非常快速和高效。該工具提供已修復和未修復漏洞的結果,以及對 Alpine Linux 等操作系統的低誤報。
最近的 Trivy 進展
Trivy 的開發非常強調可用性、性能和功效,過去幾年取得的進步支持了這些基本原則。我們添加了有助于 DevOps 團隊及其流程的功能,同時確保該工具保持高效且易于使用。
除了容器鏡像掃描之外,Trivy 現在還支持掃描文件系統和 Git 存儲庫。這些功能有助于加強容器安全最佳實踐,例如維護一組維護良好且安全的基礎鏡像。例如,Aqua Security 最近使用 Docker Hub API 提取了官方 Docker 鏡像的樣本,然后掃描這些鏡像中的漏洞。我們發現許多鏡像運行不受支持的操作系統,包括舊版本的 Debian 或 Alpine,并且在某些情況下,不再支持官方鏡像。
???
我們還發現了具有大量未修補漏洞但沒有正式棄用信息的圖像。這包括 Nuxeo (186)、Backdrop (173)、Kaazing Gateway (95) 和 CentOS (86)。最后一個 CentOS 在 2021 年 7 月 29 日至 8 月 10 日期間的下載量已超過 700 萬次。 擁有像 Trivy 這樣有效的掃描器可以確保開發團隊使用維護良好且安全的基礎鏡像,從而降低被利用的風險.
Trivy 現在還可以用作客戶端和服務器。這些功能易于設置和開始使用。提供了官方的 Helm chart,可以將 Trivy 服務器安裝在 Kubernetes 集群中,并且支持 Redis 作為緩存后端以進行擴展。
我們最近添加的功能是[掃描基礎設施即代碼 (IaC) 工具(例如 Kubernetes、Docker 和 Terraform )的配置文件,以檢測錯誤配置。Trivy 可以解析常用的云原生格式,然后應用一組對良好安全實踐進行編碼的規則。這允許快速識別可能的安全問題和強化應用程序工件的機會,例如 Dockerfiles 和 Kubernetes 清單。
Terraform 掃描利用了 Tfsec 項目的優秀規則集,該項目最近加入了 Aqua 開源軟件生態系統。有幾組檢查涵蓋了三個主要的云提供商,并且可以在多個位置使用 Tfsec 規則庫,幫助確保在整個開發過程中一致的策略應用。
未來的 Trivy 增強功能將為 Ansible、CloudFormation 和 Helm 添加 IaC 掃描支持。其他更新將為最近發布的 AlmaLinux、Rocky Linux 和其他新操作系統添加 Trivy 支持,并擴展對編程語言的支持并引入對軟件物料清單 (SBOM) 的支持。
用于云原生安全的開源生態系統
Trivy 是 Aqua 開源云原生安全項目組合的一部分。我們將開源視為實現安全民主化的一種方式,并通過可訪問的工具對工程、安全和開發團隊進行教育,縮小技能差距,并在應用程序投入生產之前將安全控制自動化到云原生管道中。我們的其他開源項目包括:
- Tracee:使用 eBPF 跟蹤和研究驅動的行為簽名在運行時檢測可疑行為。
- Tfsec:通過隨處運行的設計提供 Terraform 掃描,確保在部署之前識別漏洞,無論復雜性如何。
- Starboard:Kubernetes 原生安全工具包,用于掃描 Kubernetes 集群中工作負載使用的圖像。
- Kube-bench:作為 2018 年 InfoWorld Bossie 獎的獲得者,Kube-bench 會根據 CIS Kubernetes 基準測試中的建議自動確定是否配置了 Kubernetes。
- Kube-hunter:一種滲透測試工具,用于搜索 Kubernetes 集群中的弱點,因此管理員、操作員和安全團隊可以在攻擊者利用它們之前識別并解決任何問題。
- CloudSploit:提供云安全狀態管理 (CSPM),根據安全最佳實踐評估云帳戶和服務配置。
- Appshield:用于檢測配置文件和基礎架構即代碼定義中的錯誤配置(特別是安全問題)的策略集合。
這些項目與 Aqua 的云原生應用程序保護平臺以及許多常用的 DevOps 生態系統工具集成,以幫助推動更快地采用云原生技術和流程,同時保持安全性。它們由 Aqua 的開源團隊提供支持,該團隊與商業工程分開運作。我們相信,這使我們能夠繼續致力于提供長期支持、使用高質量代碼創建按需功能,并不斷為開源社區中的其他項目做出貢獻。
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】