第 2 章 Clair 概念
以下小节提供了 Clair 的工作原理的概念概述。
2.1. 实践中的 Clair 复制链接链接已复制到粘贴板!
Clair 分析被分为三个不同的部分:索引、匹配和通知。
2.1.1. 索引 复制链接链接已复制到粘贴板!
Clair 的 indexer 服务在了解容器镜像的组成方面扮演了关键角色。在 Clair 中,名为 "manifests" 的容器镜像表示。清单用于理解镜像层的内容。为简化此过程,Clair 利用了开放容器项目(OCI)清单和层的事实,旨在提供内容寻址,从而减少重复性任务。
在索引过程中,会提取一个代表容器镜像的清单,并划分成其基本组件。索引程序的作业是取消镜像包含的软件包、其原始分发及其所依赖的软件包存储库。然后,在 Clair 的数据库中记录并存储在这些宝贵的信息。索引期间收集的见解作为生成全面漏洞报告的基础。此报告可无缝传输到匹配节点以进一步分析和操作,帮助用户对其容器镜像的安全性做出明智的决策。
IndexReport 存储在 Clair 的数据库中。它可以是 匹配 节点来计算漏洞报告。
2.1.2. 匹配 复制链接链接已复制到粘贴板!
使用 Clair 时,匹配节点负责将漏洞与提供的索引报告匹配。
匹配者负责保持漏洞数据库最新。matchers 运行一组更新程序,它会定期探测到新内容的数据源。在发现新漏洞时,会将其存储在数据库中。
匹配器 API 设计为在查询时始终提供最新的漏洞报告。漏洞报告总结了清单的内容以及影响内容的任何漏洞。
在发现新漏洞时,会将其存储在数据库中。
匹配器 API 设计为经常使用。它设计为在查询时始终提供最新的 VulnerabilityReport。VulnerabilityReport 总结了清单的内容以及影响内容的任何漏洞。
2.1.3. 通知程序服务 复制链接链接已复制到粘贴板!
Clair 使用一个通知程序服务来跟踪新的安全数据库更新,并通知用户是否有新的或移除的漏洞会影响索引的清单。
当通知程序了解影响之前索引清单的新漏洞时,它使用 config.yaml 文件中配置的方法来发出有关新更改的通知。返回的通知会表达因为更改而发现的最严重漏洞。这可避免为同一安全数据库更新创建过量通知。
当用户收到通知时,它会针对匹配者发出一个新请求,以接收最新的漏洞报告。
您可以通过以下机制订阅通知:
- Webhook 提供
- AMQP 传输
- STOMP delivery
配置通知程序通过 Clair YAML 配置文件完成。