# 云原生容器镜像漏洞扫描工具Trivy集成

作者:Odboy (opens new window)

本站地址:https://blog.odboy.cn (opens new window)

# 概述

Trivy是一个简单而全面的扫描器,用于检测容器镜像、文件系统和Git存储库中的漏洞以及配置问题。Trivy检测操作系统包(Alpine、RHEL、CentOS 等)和特定编程语言包(Bundler、Composer、npm、yarn 等)的漏洞。 此外,Trivy扫描基础设施即代码 (IaC) 文件,例如 Terraform、Dockerfile 和Kubernetes,从中发现部署中面临攻击风险和潜在配置问题的等。

Trivy易于使用。基于Golang语言开发,只需下载对应平台的二进制文件,就可以进行扫描了。

# 官方网站

# 可选参数

--cache-dir ,指定漏洞数据库的本地缓存目录,默认在是 ~/.cache/trivy 下
--skip-db-update, 扫描启动的时候,会检查本地漏洞库。如果超过 12 小时为更新,会自动下载更新漏洞库。由于官方漏洞库放在 github,下载比较慢,可以使用--skip-db-update 跳过这一过程。
--skip-java-db-update 同样java 的漏洞库,每周四凌晨自动更新,也是存在github上,以使用--skip-java-db-update 跳过这一过程。
--severity CRITICAL , 指定扫描的严重程度,分为,CRITICAL[紧急],HIGH[高的],MEDIUM[中等],LOW[低的]
--vuln-type , 指定想要扫描的漏洞种类 , os仅扫描目标(比如容器镜像或文件系统)中操作系统包含的已知漏洞; library 应用程序库的漏洞扫描; 
--vuln-type os,library 同时包含操作系统包和应用程序库的漏洞扫描 -f ,指定输出的格式,默认的输出格式是 table, 以表格的形式显示扫描结果
-f json 以json 格式输出结果, 配合 -o 输出文件 ,如 trivy -f json -o nginx.1.22.1.json
--ignore-unfixed , 会忽略那些当前没有可用修复的已知漏洞,这个选项对于聚焦于立即可行的修复措施特别有用。在一些场景下,特别是在资源有限或时间紧迫的情况下,您可能更希望先关注那些已经有解决方案的漏洞,而将那些暂时无法解决的漏洞留待以后处理。
--scanners vuln 其中 --scanners vuln 选项表示仅使用漏洞扫描。具体来说,trivy 支持多种扫描器,--scanners vuln 告诉 trivy 只执行漏洞(vulnerabilities)扫描,而不进行其他类型的扫描,比如配置问题(misconfigurations)或许可证检查等
1
2
3
4
5
6
7
8
9

# 集成脚本(mac版)

其他平台的集成方法。我相信,懂的都懂

cd ~
mkdir envs
cd envs

# 安装trivy
curl -o trivy_0.58.0_macOS-ARM64.tar.gz https://gh.api.99988866.xyz/https://github.com/aquasecurity/trivy/releases/download/v0.58.0/trivy_0.58.0_macOS-ARM64.tar.gz
tar -xzvf trivy_0.58.0_macOS-ARM64.tar.gz
chmod +x trivy_0.58.0_macOS-ARM64/trivy
ln -s /usr/bin/trivy ~/envs/trivy_0.58.0_macOS-ARM64/trivy

# 安装oras
curl -o oras_1.2.1_darwin_arm64.tar.gz https://gh.api.99988866.xyz/https://github.com/oras-project/oras/releases/download/v1.2.1/oras_1.2.1_darwin_arm64.tar.gz
tar -xzvf oras_1.2.1_darwin_arm64.tar.gz
mv oras_1.2.1_darwin_arm64/oras ./
rm -rf oras_1.2.1_darwin_arm64
chmod +x oras

# 配置trivy离线库
./oras pull ghcr.nju.edu.cn/aquasecurity/trivy-db:2
./oras pull ghcr.nju.edu.cn/aquasecurity/trivy-java-db:1
mkdir -p /Users/tianjun/trivy-db/{db,java-db}
cp db.tar.gz javadb.tar.gz /Users/tianjun/trivy-db
cd /Users/tianjun/trivy-db
tar -xzvf db.tar.gz -C db
tar -xzvf javadb.tar.gz -C java-db
rm -rf db.tar.gz javadb.tar.gz
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

# 如何使用(这是一个例子)

trivy --cache-dir /Users/tianjun/trivy-db --skip-db-update --skip-java-db-update --severity HIGH -f table image registry.cn-shanghai.aliyuncs.com/odboy/runtime:dragonwell-jdk11
1

# 最终效果

最近更新: 2024-12-19
云原生容器镜像漏洞扫描工具Trivy集成

2017 - 武林秘籍   |