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