12.2. 扫描镜像
对于版本 4.4,RHACS 提供两个扫描程序: StackRox Scanner 和 Scanner V4。两个扫描程序都可以检查网络中连接的安全集群中的镜像。在使用 Operator 或使用委派扫描时,部署的 Red Hat OpenShift 环境中默认启用安全集群扫描。如需更多信息,请参阅"访问委派的镜像扫描"。
扫描程序 V4 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
使用 StackRox Scanner 时,RHACS 执行以下操作:
- Central 将镜像扫描请求提交到 StackRox Scanner。
- 在收到这些请求时,StackRox Scanner 从相关 registry 中拉取镜像层,检查镜像,并识别每个层中安装的软件包。然后,它会将确定的软件包和特定于编程语言的依赖项与漏洞列表进行比较,并将信息发回到 Central
StackRox Scanner 标识以下区域中的漏洞:
- 基础镜像操作系统
- 软件包管理器安装的软件包
- 特定于编程语言的依赖项
- 编程运行时和框架
使用 Scanner V4 时,RHACS 执行以下操作:
- Central 请求 Scanner V4 Indexer 下载和索引(analyze)给定镜像。
- 扫描程序 V4 Indexer 从 registry 中拉取镜像元数据,以确定镜像的层,并下载之前未索引的层。
- 扫描程序 V4 Indexer 从 Central 请求映射文件,以帮助索引过程。扫描程序 V4 Indexer 在索引报告中生成。
- Central 请求 Scanner V4 Matcher 与给定镜像匹配到已知漏洞。这个过程会产生最终扫描结果:漏洞报告。扫描程序 V4 Matcher 从 Central 请求最新的漏洞。
- 扫描程序 V4 Matcher 从 Scanner V4 Indexer 请求镜像索引(索引报告)的结果。然后,它会使用报告来确定相关的漏洞。只有在 Central 集群中索引镜像时,才会发生此交互。当 Scanner V4 与安全集群中索引的镜像的漏洞匹配时,不会发生此交互。
- Indexer 在与索引结果相关的 Scanner V4 DB 中存储数据,以确保镜像层仅下载并索引一次。这可以防止不必要的网络流量和其他资源利用率。
- 启用安全集群扫描后,Sensor 会请求 Scanner V4 来索引镜像。扫描程序 V4 Indexer 从 Sensor 请求映射文件,以帮助索引过程,除非在同一命名空间中存在 Central。在这种情况下,会联系 Central。
12.2.1. 了解并解决常见的 Scanner 警告信息
当使用 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 扫描了镜像,但镜像旧且没有在 Red Hat Scanner 认证范围内。如需更多信息,请参阅 红帽漏洞扫描程序认证合作伙伴指南。 重要 如果您使用红帽容器镜像,请考虑使用比 2020 年 6 月更新 的基础镜像。 |
12.2.2. 支持的软件包格式
扫描程序可以检查镜像中使用以下软件包格式的漏洞:
- apt
- apk
- dpkg
- rpm
12.2.3. 支持的编程语言
扫描程序可以检查依赖项中的漏洞,以了解以下编程语言:
Go (仅扫描 V4)
- 二进制文件:用于构建二进制文件的标准库版本已被分析。如果使用模块支持(go.mod)构建二进制文件,则也会分析依赖项。
Java
- JAR
- WAR
- EAR
JavaScript
- Node.js
- npm package.json
Python
- egg 和 wheel 格式
Ruby
- gem
12.2.4. 支持的运行时和框架
从 Red Hat Advanced Cluster Security for Kubernetes 3.0.50 (Scanner 版本 2.5.0)开始,StackRox Scanner 识别以下开发人员平台中的漏洞:
- .NET Core
- ASP.NET Core
Scanner V4 不支持它们。
12.2.5. 支持的操作系统
本节中列出的支持的平台是 Scanner 识别漏洞的发行版本,它与您可以安装 Red Hat Advanced Cluster Security for Kubernetes 的支持的平台不同。
扫描程序识别包含以下 Linux 发行版本的镜像中的漏洞。有关使用的漏洞数据库的更多信息,请参阅"RHACS 架构"中的"Vulnerability sources"。
分发 | 版本 |
---|---|
| |
| |
CentOS |
|
| |
版本 5-9[2] | |
1.0[2], 2.0[2], 3.0 [2] | |
| |
SLES 11, 12, 15[2]; openSUSE Leap 42.3, 15.0, 15.1[2]; SUSE Linux[2] | |
供应商不会更新以下漏洞源: |
- 仅在 StackRox Scanner 中支持。
- 仅在扫描器 V4 中支持。
- Scanner V4 不支持比 2020 年 6 月旧的镜像。
- 扫描程序不支持 Fedora 操作系统,因为 Fedora 不维护漏洞数据库。但是,Scanner 仍然检测基于 Fedora 的镜像中的特定语言漏洞。