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


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

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

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

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

    使用 Trivy 扫描 Docker 镜像

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

    ​

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

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

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

    trivy image 

    例如,工作站中有一个名为 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

    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

    1. timeout: 10m
    2. format: json
    3. dependency-tree: true
    4. list-all-pkgs: true
    5. exit-code: 1
    6. output: result.json
    7. severity:
    8. - HIGH
    9. - CRITICAL
    10. scan:
    11. skip-dirs:
    12. - /lib64
    13. - /lib
    14. - /usr/lib
    15. - /usr/include
    16. security-checks:
    17. - vuln
    18. - secret
    19. vulnerability:
    20. type:
    21. - os
    22. - library
    23. ignore-unfixed: true
    24. db:
    25. 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 的环境中保持强大的安全性。

  • 相关阅读:
    Python基础入门篇【43】--python中文件的创建与读写
    新建云仓库
    青岛大学数据结构与算法——第3章
    Web渗透:XXE-XML外部实体漏洞
    EVE-NG桥接虚拟网卡实现与虚拟机通讯
    41_ue4进阶末日生存游戏开发[判断左右键点击]
    前端培训丁鹿学堂:vue基础之v-model使用详情
    图扑软件 3D 组态编辑器,低代码零代码构建数字孪生工厂
    医院电子病历编辑器,EMRE(EMR Editor)源码
    WebGPU助力客户端Crypto/ZK
  • 原文地址:https://blog.csdn.net/yugongpeng/article/details/138206870