使用Trivy扫描Docker镜像漏洞详细指南

本文介绍了使用 Trivy 扫描程序保护 Docker 镜像免受潜在漏洞侵害的基本步骤。

Trivy 扫描程序是一个开源工具,可用于扫描 Docker 镜像的漏洞。

Docker 镜像是打包和部署应用程序的简单方法。但是,如果它们包含漏洞,也可能存在安全风险。它可能是库中的问题、应用程序依赖项中的漏洞、容器配置错误等。

Trivy 是一个有效的 Docker 漏洞扫描程序,支持多个漏洞数据库,包括常见漏洞和披露 (CVE) 数据库。Trivy 还可以扫描错误的配置和安全性。

使用 Trivy 扫描 Docker 镜像

下图显示了高级组件和容器扫描工作流。

首先,你需要在系统或要实现 Docker 镜像扫描的 CI 代理节点上安装 trivy。

可以在 Trivy 官网找到安装步骤。

使用 Trivy 扫描 Docker 镜像非常简单。只需要使用要扫描的镜像名称运行以下trivy命令。

trivy image <image-name>

例如,工作站中有一个名为 techiescamp/pet-clinic-app 的镜像。它是带有 java spring boot 应用程序的 docker 镜像。

可以使用以下命令扫描镜像。Trivy 会扫描镜像中的两个漏洞,就像镜像中的 java jar 一样。扫描结果将以人类可读的格式显示。

trivy image techiescamp/pet-clinic-app:1.0.0

扫描结果显示镜像中没有高或严重漏洞。

此外,它还显示了 Docker 镜像内 jar 的 2 个高漏洞

Trivy 可以以多种方式使用。以下是一些高级用法示例:

扫描严重级别

Trivy可以扫描特定严重级别的漏洞。为此,使用来指定需要扫描的漏洞严重级别。--severity <severity>

Docker 镜像构建 pipline 中的 Trivy

Trivy 在 CI/CD 管道中起着关键作用,用于 docker 镜像构建。使用 trivy 扫描 CI/CD 管道中的漏洞,以确保在生产环境中部署 seecure 镜像。

在 CI/CD piepline 中使用时,如果镜像中存在任何漏洞,pipline 作业应会失败。严重性取决于组织的安全合规性。例如,有些项目可能有严格的准则,使生成失败,因为严重性为 HIGH 和 CRITICAL。构建失败的最佳方法是使用退出代码。

可以在trivy命令中使用  和  标志,如下所示。如果发现给定严重性的任何漏洞,它将使用非零退出代码使Trivy退出。--severity--exit-code 1

trivy image --severity HIGH,CRITICAL  --exit-code 1 techiescamp/pet-clinic-app:1.0.0

此外,还可以将漏洞报告作为构建失败通知发送给开发人员和 DevOps 工程师。

推荐的方法是使用 Trivy 配置文件来设置扫描的默认值。您可以使用此文件来满足特定于项目需求的扫描要求。

下面是一个 文件示例:trivy.yaml

timeout: 10m
format: json
dependency-tree: true
list-all-pkgs: true
exit-code: 1
output: result.json
severity:
  - HIGH
  - CRITICAL
scan:
  skip-dirs:
    - /lib64
    - /lib
    - /usr/lib
    - /usr/include

  security-checks:
    - vuln
    - secret
vulnerability:
  type:
    - os
    - library
  ignore-unfixed: true
db:
  skip-update: false

指定配置文件扫描:

trivy image --config path/to/trivy.yaml your-image-name:tag

输出为 JSON

Trivy 也可以提供 JSON 格式的输出。要做到这一点,使用 --format json,它将以 json 格式显示扫描结果。

trivy image --ignore-unfixed java:0.1

扫描 Docker tar 镜像

在某些情况下,您可能具有 tar 格式的 Docker 镜像。在这种情况下,您可以使用trivy扫描tar格式的镜像。

例如:

trivy image --input petclinic-app.tar

Trivy 在 Docker 镜像中扫描什么

以下是 Trivy 扫描的 Docker 镜像中的关键元素。

  1. Trivy 可以扫描各种包管理器中的漏洞,包括 apt、yum、apk 和 npm。这意味着 Trivy 可以扫描使用各种不同软件依赖项的镜像中的漏洞。
  2. Trivy 可以扫描 Linux 和 Windows 镜像中的漏洞。这意味着您可以使用 Trivy 扫描将在 Linux 或 Windows 主机上运行的镜像。
  3. Trivy 可以扫描以各种不同格式存储的镜像中的漏洞,包括 Docker 镜像、tar 存档和文件系统。这意味着您可以使用 Trivy 扫描存储在各种不同位置的镜像。
  4. Trivy 可以扫描在各种环境中运行的 Docker 镜像中的漏洞,包括普通 Docker 容器和 Kubernetes Pod。这意味着您可以使用 Trivy 扫描在您使用的任何环境中运行的镜像。

使用 Trivy 扫描 Docker 镜像漏洞的好处

下图显示了 CVE 数据库中的漏洞总数。正如你所看到的,它每年都在增加。

考虑到漏洞的增加,使用 Trivy 扫描 Docker 镜像有很多好处。

一些好处包括:

  1. 识别漏洞:Trivy 可以识别 Docker 镜像中使用的包中的漏洞。这在基本镜像修补和应用程序镜像构建中特别有用。
  2. 改善安全状况:通过扫描镜像中的漏洞,可以改善组织的安全状况。
  3. 安全合规性:作为安全合规性的一部分,许多组织需要检查其 Docker 镜像是否存在漏洞。您可以在 Trivy 的帮助下达到这些标准。

结论

在开发过程中以及 CI/CD 过程中,必须扫描 Docker 镜像漏洞。这可确保您遵循良好的 DevSecOps 原则并实施最佳实践,以在基于 Docker 的环境中保持强大的安全性。

  • 23
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值