13.2. 扫描镜像
对于版本 4.4,RHACS 提供两个扫描程序: StackRox Scanner 和 Scanner V4。这两个扫描程序都可以检查网络中连接的安全集群中的镜像。在使用 Operator 部署的 Red Hat OpenShift 环境中,或使用委托扫描时,会默认启用安全集群扫描。如需更多信息,请参阅"访问委派的镜像扫描"。
即使启用了 Scanner V4,仍必须启用 StackRox Scanner 来扫描 RHCOS 节点和平台漏洞,如 Red Hat OpenShift、Kubernetes 和 Istio。以后的发行版本中计划在 Scanner V4 中支持该功能。不要禁用 StackRox Scanner。
使用 StackRox Scanner 时,RHACS 会执行以下操作:
- Central 将镜像扫描请求提交到 StackRox Scanner。
- 在收到这些请求时,StackRox Scanner 从相关 registry 拉取镜像层,检查镜像,并识别每个层中安装的软件包。然后,它会将识别的软件包和特定于编程语言的依赖项与漏洞列表进行比较,并将信息发回到 Central
StackRox Scanner 识别以下区域中的漏洞:
- 基础镜像操作系统
- 软件包管理器安装的软件包
- 特定于编程语言的依赖项
- 编程运行时和框架
使用 Scanner V4 时,RHACS 执行以下操作:
- Central 请求 Scanner V4 Indexer 下载和索引(analyze)给定镜像。
- 扫描程序 V4 Indexer 从 registry 中拉取镜像元数据,以确定镜像的层,并下载之前未索引的层。
- 扫描程序 V4 索引器从 Central 请求映射文件,以帮助索引过程。扫描程序 V4 Indexer 在索引报告中生成。
- Scanner V4 Matcher 与已知漏洞匹配的中央请求。此过程会导致最终的扫描结果:漏洞报告。扫描程序 V4 匹配程序从 Central 请求最新的漏洞。
- scanner V4 Matcher 从 Scanner V4 Indexer 请求镜像索引(索引报告)的结果。然后,它使用报告来确定相关漏洞。只有在 Central 集群中索引镜像时,才会进行此交互。当 Scanner V4 与安全集群中索引的镜像匹配的漏洞时,不会发生此交互。
- Indexer 将数据存储在与索引结果相关的 Scanner V4 DB 中,以确保镜像层仅下载并索引一次。这可以防止不必要的网络流量和其他资源利用率。
- 启用安全集群扫描后,Sensor 将 Scanner V4 请求到索引镜像。扫描程序 V4 索引程序从 Sensor 请求映射文件,以帮助索引过程,除非 Central 存在于同一命名空间中。在这种情况下,会联系 Central。
13.2.1. 了解并解决常见的扫描程序警告信息
当使用 Red Hat Advanced Cluster Security for Kubernetes (RHACS)扫描镜像时,您可能会看到 CVE DATA MAY BE INACCURATE
警告信息。当扫描程序无法检索镜像中操作系统或其他软件包的完整信息时,它会显示此消息。
下表显示了一些常见的 Scanner 警告信息:
消息 | 描述 |
---|---|
| 表示 Scanner 不正式支持镜像的基本操作系统,因此无法检索操作系统级软件包的 CVE 数据。 |
| 表示镜像的基本操作系统已到期,这意味着漏洞数据已过时。例如,Debian 8 和 9。 有关识别镜像中组件所需的文件的更多信息,请参阅 检查漏洞的镜像。 |
| 表示 Scanner 扫描了镜像,但无法确定用于镜像的基本操作系统。 |
|
表示目标 registry 在网络上无法访问。原因可能是防火墙阻止 要分析根本原因,请为私有 registry 或存储库创建一个特殊的 registry 集成,以获取 RHACS Central 的 pod 日志。有关如何执行此操作的说明,请参阅 与镜像 registry 集成。 |
| 表示 Scanner 扫描了镜像,但镜像是旧的,它不属于红帽扫描器认证范围。如需更多信息,请参阅 红帽漏洞扫描程序认证合作伙伴指南。 重要 如果您使用红帽容器镜像,请考虑使用比 2020 年 6 月更新 的基础镜像。 |
13.2.2. 支持的操作系统
本节中列出的支持的平台是 Scanner 识别漏洞的发行版本,它与您可以在其上安装 Red Hat Advanced Cluster Security for Kubernetes 的支持的平台不同。
扫描程序标识镜像中包含以下 Linux 发行版的漏洞。有关使用的漏洞数据库的更多信息,请参阅"RHACS 架构"中的"漏洞源"。
分发 | 版本 |
---|---|
| |
| |
CentOS |
|
以下漏洞源不是由厂商更新: | |
| |
| |
| |
| |
以下漏洞源没有由 vendor |
- 仅在 StackRox Scanner 中支持。
- 仅在 Scanner V4 中支持。
- Scanner V4 不支持在 2020 年 6 月超过 2020 年 6 月的镜像。
扫描程序不支持 Fedora 操作系统,因为 Fedora 不维护漏洞数据库。但是,Scanner 仍然会在基于 Fedora 的镜像中检测特定于语言的漏洞。
13.2.3. 支持的软件包格式
扫描程序可以检查使用以下软件包格式的镜像中的漏洞:
软件包格式 | 软件包管理器 |
---|---|
apk | apk |
dpkg | apt, dpkg |
rpm | dnf, microdnf, rpm, yum |
13.2.4. 支持的编程语言
扫描程序可以检查以下编程语言的依赖关系中的漏洞:
编程语言 | 软件包格式 |
---|---|
Go[1] | 二进制文件:用于构建二进制文件的标准库版本会被分析。如果二进制文件使用模块支持(go.mod)构建,则也会分析依赖项。 |
Java | JAR, WAR, EAR, JPI, HPI |
JavaScript | package.json |
Python | egg、wheel |
Ruby | gem |
- 仅在 Scanner V4 中支持。
13.2.5. 支持的层压缩格式
容器镜像层是可能压缩或解压缩的 .tar
文件存档。stackrox Scanner 和 Scanner V4 支持不同的格式,如下表所示:
格式 | stackrox Scanner 支持 | 扫描程序 V4 支持 |
---|---|---|
没有压缩 | 是 | 是 |
bzip2 | 是 | 是 |
gzip | 是 | 是 |
xz | 是 | 否 |
zstd | 否 | 是 |
13.2.6. 支持的运行时和框架
从 Red Hat Advanced Cluster Security for Kubernetes 3.0.50 (Scanner 版本 2.5.0)开始,StackRox Scanner 会识别以下开发人员平台中的漏洞:
- .NET Core
- ASP.NET Core
Scanner V4 不支持它们。
13.2.7. 将镜像拉取从源 registry 重定向到已镜像的 registry
Red Hat Advanced Cluster Security for Kubernetes (RHACS)支持使用以下 OpenShift Container Platform 自定义资源(CR)之一从您配置的 registry 镜像扫描镜像:
-
ImageContentSourcePolicy
(ICSP) -
ImageDigestMirrorSet
(IDMS) -
ImageTagMirrorSet
(ITMS)
有关如何配置镜像 registry 存储库镜像的更多信息,请参阅"配置镜像 registry 存储库镜像"。
您可以使用委派的镜像扫描自动从 registry 镜像扫描镜像。
有关如何配置委托镜像扫描的更多信息,请参阅"使用安全集群扫描镜像"。