Grype 作为预编译的二进制文件以deb、rpm、Linux 源代码和 Mac 格式分发。
您可以从 GitHub获取最新版本并使用系统的包管理器安装它,或者将二进制文件复制到您路径中的某个位置。
或者,使用安装脚本来自动化该过程:
一键安装
curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin
Grype 命令
通过运行 grype 命令检查二进制文件的工作。将显示有关可用命令的文档。
在最简单的形式中,Grype 使用一个参数来指定要扫描的容器镜像或文件系统路径。要扫描镜像,请提供有效的注册表标记。
Grype 将使用可用的 Docker 凭据从 Docker Hub 和私有注册表中提取镜像。
grype alpine:latest
您还可以扫描从 Docker 导出的镜像存档
grype saved-image.tar
漏洞数据库
Grype 将在第一次运行时下载其漏洞数据库。目前它的重量约为 110MB。一旦数据库可用,Grype 将拉取 Docker 镜像,对其中的软件进行编目,并解析数据库中存在的已知漏洞。
结果
手动更新
grype db update
Grype 可以扫描您机器上的文件系统路径。这使您可以在构建镜像之前发现源代码存储库中的漏洞。要使用此功能,请使用dir:方案指定目录路径:
grype dir:/example-dir
Grype 将查找嵌套在给定目录根下的兼容文件。每个找到的文件都将被索引并扫描漏洞。
相同类型的漏洞
文件系统扫描与容器镜像扫描具有相同类型的漏洞。如果您使用的是大型目录树,则扫描可能需要几分钟才能完成。
支持两个过滤标志以将报告范围限定为您感兴趣的漏洞或解决方案选项:– only-fixed – 仅显示已在受影响软件包的后续版本中修补的漏洞。– fail-on high–high发现 - 级漏洞时立即退出并显示错误代码。您可以用任何支持的错误级别(严重、高、中或低)代替high.
可以忽略漏洞以隐藏误报或您决定不解决的问题,这可能是因为它们与您对包的使用无关。
要忽略漏洞,您需要创建一个 YAML 格式的自定义 Grype 配置文件。在顶级ignore字段下添加漏洞的CVE :
ignore字段
ignore: - vulnerability: CVE-2021-12345
也支持其他字段,例如此变体忽略源自 NPM 包的所有问题
ignore: - package: type: npm
配置
将您的配置文件保存到.grype.yaml或.grype/config.yaml在您的工作目录中。下次运行 Grype 扫描时会自动使用它。~/.grype.yaml还支持全局配置文件。工作目录中的文件将在运行时与全局文件合并。
如果忽略这些漏洞,它们将不会影响 Grype 的退出代码。JSON 报告会将它们移动到单独的ignoredMatches字段,而终端表报告将它们完全排除。如果您忽略某个漏洞,请记住记录它被接受的原因,以便每个贡献者都了解风险。
Grype 可以使用 Syft 生成的 SBOM,这是 Anchore 的另一个项目。Syft 为您的容器镜像编制索引以生成它们包含的依赖项列表。
使用 Syft 以 JSON 格式为您的镜像创建 SBOM:
syft alpine:latest -o json > alpine-sbom.json
然后使用 SBOM 运行 Grype 扫描
grype sbom:/alpine-sbom.json
结合使用
Grype 将检查参考镜像是否存在由其材料清单引起的新漏洞。继续将 Grype 与您的 SBOM 结合使用,以监控您已经审核和索引的镜像依赖项中的新问题。
Grype 提供四种不同的输出格式化程序,您可以使用-oCLI 标志在它们之间切换:
该template格式接受将被用来呈现报表输出转到模板。要使用此格式化程序,请不要按名称指定它——而是将路径传递到包含 Go 模板的文件
grype alpine:latest -o output-template.tmpl
Grype 输出结构
该模板应使用 Go 模板语法来引用 Grype 提供的变量。您可以构建所需的任何类型的文件格式,例如 HTML 页面、Markdown 文件或自定义 JSON 结构。
Grype 文档包括从可用变量生成 CSV 文件的示例。
Github 项目地址:
https://github.com/anchore/grype
HummerRisk 是开源的云原生安全平台,以非侵入的方式解决云原生的安全和治理问题,核心能力包括混合云的安全治理和K8S容器云安全检测。
Github 地址:https://github.com/HummerRisk/HummerRisk
Gitee 地址:https://gitee.com/hummercloud/HummerRisk