第 1 章 Clair 安全扫描程序
Clair v4 (Clair)是一个开源应用程序,它利用静态代码分析来解析镜像内容和报告影响内容的漏洞。Clair 与 Red Hat Quay 打包,并可用于独立和 Operator 部署。它可以在高度可扩展的配置中运行,其中组件可根据企业环境单独扩展。
1.1. 关于 Clair
Clair 使用国家漏洞数据库(NVD)中的常见漏洞评分系统(CVSS)数据功能丰富的漏洞数据,这是与安全相关的信息,包括各种软件组件和系统中的已知漏洞和安全问题。使用 NVD 中的分数为 Clair 提供以下优点:
- 数据同步.Clair 可以定期将其漏洞数据库与 NVD 同步。这样可确保它具有最新的漏洞数据。
- 匹配并增强.Clair 将容器镜像中发现的漏洞的元数据和标识符与 NVD 中的数据进行比较。这个过程涉及将唯一标识符(如常见漏洞和暴露(CVE) ID)与 NVD 中的条目匹配。找到匹配项时,Clair 可以通过来自 NVD 的额外详情来增强其漏洞信息,如严重性分数、描述和引用。
- 严重性分数.NVD 为漏洞分配严重性分数,如通用漏洞评分系统(CVSS)分数,以指示与每个漏洞相关的潜在影响和风险。通过整合 NVD 的严重性分数,Clair 可以根据它检测到的漏洞的严重程度提供更多上下文。
如果 Clair 从 NVD 找到漏洞,对容器镜像中检测到的漏洞的严重性和潜在影响的详细说明和潜在影响将报告给 UI 上的用户。CVSS 增强数据提供了以下优点:
- 漏洞优先级.通过使用 CVSS 分数,用户可以根据其严重性对漏洞进行优先级排序,帮助他们首先解决最重要的问题。
- 评估风险。CVSS 分数可帮助 Clair 用户了解对其容器化应用程序造成漏洞的潜在风险。
- 通讯严重性.CVSS 分数为 Clair 用户提供了一种标准化的方法,来跨团队和机构沟通漏洞的严重性。
- 通知修复策略.CVSS 增强数据可在开发适当的补救策略时指导 Quay.io 用户。
- 合规性和报告.将 CVSS 数据集成到 Clair 生成的报告中可帮助组织展示其在解决安全漏洞方面以及符合行业标准和法规的承诺。
1.1.1. Clair 发行版本
Clair 的新版本会定期发布。构建 Clair 所需的源代码打包为存档并附加到每个发行版本。Clair 发行版本可在 Clair 版本 中找到。
发行工件还包括 clairctl
命令行界面工具,该工具使用开放主机从互联网获取更新器数据。
Clair 4.7.2
Clair 4.7.2 在 2024-02-06 上发布。
Clair 4.7.1
Clair 4.7.1 已被作为 Red Hat Quay 3.9.1 的一部分发布。进行了以下更改:
在这个版本中,您可以查看 Red Hat Enterprise Linux (RHEL)源中的未修补的漏洞。如果要查看未修补的漏洞,您可以将
ignore_unpatched
参数设置为false
。例如:updaters: config: rhel: ignore_unpatched: false
要禁用此功能,您可以将
ignore_unpatched
设置为true
。
Clair 4.7
Clair 4.7 作为 Red Hat Quay 3.9 的一部分发布,包括对以下功能的支持:
- 对容器镜像中的 Golang 模块和 RubeGems 进行原生支持。
更改到 OSV.dev,作为任何编程语言软件包管理器的漏洞数据库来源。
- 这包括 GitHub 安全公告或 PyPA 等流行源。
- 这允许离线功能。
- 将 pyup.io 用于 Python,而 CRDA 用于 Java 被暂停。
- Clair 现在支持 Java、Node Golang、Python 和 Ruby 依赖项。
1.1.2. Clair 安全漏洞数据库
Clair 使用以下漏洞数据库来报告您的镜像中的问题:
- Ubuntu Oval 数据库
- Debian 安全跟踪器
- Red Hat Enterprise Linux (RHEL) Oval 数据库
- Dan Oval 数据库
- Oracle Oval 数据库
- alpine SecDB 数据库
- VMware Photon OS 数据库
- Amazon Web Services (AWS) UpdateInfo
- 开源漏洞(OSV)数据库
1.1.3. Clair 支持的依赖项
Clair 支持识别和管理以下依赖项:
- Java
- Golang
- Python
- Ruby
这意味着,它可以分析和报告这些语言中项目依赖的第三方库和软件包。
当包含 Clair 不支持的语言的软件包的镜像被推送到您的存储库时,无法在这些软件包上执行漏洞扫描。用户不会收到不支持的依赖项或软件包的分析或安全报告。因此,应该考虑以下结果:
- 安全风险.没有扫描漏洞的依赖项或软件包可能会给您的组织带来安全风险。
合规问题.如果您的组织具有特定的安全性或合规要求、未扫描或部分扫描,容器镜像可能会导致与某些法规不兼容。
注意扫描的镜像会被索引,并创建了漏洞报告,但可能会忽略某些不支持的语言中的数据。例如,如果您的容器镜像包含 Lua 应用程序,则不会提供来自 Clair 的反馈,因为 Clair 不会检测到它。它可以检测容器镜像中使用的其他语言,并显示这些语言检测到的 CVE。因此,Clair 镜像 会根据 Clair 支持的内容进行完全扫描。
1.1.4. Clair 容器
Red Hat Quay 捆绑的官方下游 Clair 容器可在 Red Hat Ecosystem Catalog 中找到。
官方上游容器打包并作为容器发布,位于 Quay.io/projectquay/clair。latest 标签跟踪 Git 开发分支。版本标签从对应的发行版本中构建。