【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】