第 7 章 Clair 安全扫描
Clair 是可与 Red Hat Quay 搭配使用的一组微服务,可用于对与一组 Linux 操作系统关联的容器镜像进行漏洞扫描。Clair 的微服务设计使得它适合在高度可扩展的配置中运行,其中组件可以根据企业环境单独扩展。
Clair 使用以下漏洞数据库来扫描您的镜像中的问题:
- alpine SecDB 数据库
- AWS UpdateInfo
- Debian Oval 数据库
- Oracle Oval 数据库
- RHEL Oval 数据库
- SUSE Oval 数据库
- Ubuntu Oval 数据库
- Pyup.io (python)数据库
如需有关 Clair 如何使用不同数据库进行安全映射的信息,请参阅 ClairCore Severity Mapping。
随着 Red Hat Quay 3.4 的发布,新的 Clair V4 (镜像 registry.redhat.io/quay/clair-rhel8)完全替换了之前的 Clair V2 (image quay.io/redhat/clair-jwt)。有关如何在 V4 更新时以只读模式运行 V2 的信息。
7.1. 在 Red Hat Quay OpenShift 部署上设置 Clair 复制链接链接已复制到粘贴板!
7.1.1. 部署 Via 的 Quay Operator 复制链接链接已复制到粘贴板!
要在 OpenShift 上的新 Red Hat Quay 部署上设置 Clair V4,强烈建议您使用 Quay Operator。默认情况下,Quay Operator 将安装或升级 Clair 部署以及 Red Hat Quay 部署,并自动配置 Clair 安全扫描。
7.1.2. 手动部署 Clair 复制链接链接已复制到粘贴板!
要在运行 Clair V2 的现有 Red Hat Quay OpenShift 部署中配置 Clair V4,首先确保 Red Hat Quay 已升级到至少 3.4.0 版本。然后,使用以下步骤手动设置 Clair V4 和 Clair V2。
将当前项目设置为运行 Red Hat Quay 的项目的名称。例如:
oc project quay-enterprise
$ oc project quay-enterprise
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 Clair v4 创建 Postgres 部署文件(例如,cl
airv4-postgres.yaml
),如下所示:clairv4-postgres.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 部署 postgres 数据库,如下所示:
oc create -f ./clairv4-postgres.yaml
$ oc create -f ./clairv4-postgres.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 Clair
config.yaml
文件,用于 Clair v4。例如:config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 要生成 Clair 预共享密钥(PSK),请在用户界面的安全扫描器部分中启用
扫描
,然后点Generate PSK
。
有关 Clair 配置格式的更多信息,请参阅上游 Clair 文档。
从 Clair
config.yaml
创建 secret:oc create secret generic clairv4-config-secret --from-file=./config.yaml
$ oc create secret generic clairv4-config-secret --from-file=./config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 Clair v4 部署文件(例如,
clair-combo.yaml
),并根据需要进行修改:clair-combo.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将镜像更改为最新的 clair 镜像名称和版本。
- 2
- 将 Service 设置为 clairv4 时,Clair v4 的扫描程序端点稍后会在
SECURITY_SCANNER_SCANNER_V4_ENDPOINT
中的 Red Hat Quay config.yaml 中输入为http://clairv4
。
创建 Clair v4 部署,如下所示:
oc create -f ./clair-combo.yaml
$ oc create -f ./clair-combo.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 修改 Red Hat Quay 部署的
config.yaml
文件,以在末尾添加以下条目:FEATURE_SECURITY_SCANNER: true SECURITY_SCANNER_V4_ENDPOINT: http://clairv4
FEATURE_SECURITY_SCANNER: true SECURITY_SCANNER_V4_ENDPOINT: http://clairv4
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 识别 Clair v4 服务端点
将修改后的
config.yaml
重新部署到包含该文件的 secret (如quay-enterprise-config-secret
:oc delete secret quay-enterprise-config-secret oc create secret generic quay-enterprise-config-secret --from-file=./config.yaml
$ oc delete secret quay-enterprise-config-secret $ oc create secret generic quay-enterprise-config-secret --from-file=./config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
要使新的
config.yaml
生效,您需要重启 Red Hat Quay pod。只需删除quay-app
pod 会导致部署具有更新的配置的 pod。
此时,在命名空间白名单中标识的任何机构中的镜像将被 Clair v4 扫描。