第 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
命令行界面工具,该工具使用开放主机从互联网获取更新器数据。
1.1.1.1. 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
updaters: config: rhel: ignore_unpatched: false
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要禁用此功能,您可以将
ignore_unpatched
设置为true
。
1.1.1.2. Clair 4.7 复制链接链接已复制到粘贴板!
Clair 4.7 作为 Red Hat Quay 3.9 的一部分发布,包括对以下功能的支持:
- 对容器镜像中的 Golang 模块和 RubeGems 进行原生支持。
更改为 OSV.dev 作为任何编程语言软件包管理器的漏洞数据库源。
- 这包括 GitHub 安全公告或 PyPA 等流行源。
- 这允许离线功能。
- 将 pyup.io 用于 Python,CRDA 用于 Java 已被暂停。
- Clair 现在支持 Java、Golang、Python 和 Ruby 依赖项。
1.1.2. Clair 漏洞数据库 复制链接链接已复制到粘贴板!
Clair 使用以下漏洞数据库报告镜像中的问题:
- Ubuntu Oval 数据库
- Debian 安全跟踪器
- Red Hat Enterprise Linux (RHEL) Oval database
- SUSE 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 Ecosystem Catalog 可以找到与 Red Hat Quay 捆绑的官方下游 Clair 容器。
官方上游容器在 Quay.io/projectquay/clair 中打包并作为容器发布。latest 标签跟踪 Git 开发分支。版本标签从对应的版本构建。