5.5. 安全策略参考


您可以使用策略类别管理您的策略。安全标准可用于构建自定义策略。根据策略生命周期阶段,有不同的标准。默认安全策略或系统中包含的策略列表会根据严重性进行提供和组织。

5.5.1. 策略类别

RHACS 使用策略类别来根据类型和功能对策略进行分组。您可以使用这些类别来组织和搜索策略。

RHACS 提供以下默认策略类别:

  • 同学活动
  • Cryptocurrency Mining
  • DevOps 最佳实践
  • 用于互联网安全的 Docker 中心(CIS)
  • Kubernetes
  • Kubernetes 事件
  • 网络工具
  • 软件包管理
  • 权限
  • 安全性最佳实践
  • 供应链安全性
  • 系统修改
  • 漏洞管理
  • zero Trust

您可以使用 Policy Management 窗口中的 Policy Categories 选项卡查看现有类别并在 RHACS 门户中创建自己的策略类别。

5.5.2. 策略标准

您可以在 RHACS 中设置规则,并配置要触发策略的数据。此数据也称为 策略条件或 策略 字段

您可以根据下表中列出的属性配置策略。

在这个表中:

  • Regular expressions, AND, OR, 和 NOT 列指示您可以使用正则表达式和其他逻辑运算符以及特定的属性。

    • ! 用于 Regex (正则表达式)表示您只能对列出的字段使用正则表达式。
    • ! 用于 AND,或表示您只能将上述逻辑运算符用于属性。
    • Regex / NOT / AND, OR 列中表示属性不支持其中任何一个(regex、negation、logical operators)。
  • RHACS version 列指示必须使用该属性的 Red Hat Advanced Cluster Security for Kubernetes 的版本。
  • 对于满足以下条件的属性,不能使用运算符 ANDOR 的组合:

    • 布尔值 truefalse
    • 最小值-值语义,例如:

      • 最低 RBAC 权限
      • 创建镜像后的天数
  • 您不能将 NOT 逻辑运算符用于具有以下内容的属性:

    • 布尔值 truefalse
    • 已使用进行比较(如 <, >, <=, >= 操作符)的数字值。
    • 可以具有多个值的复合条件,例如:

      • Dockerfile 行,其中包含指令和参数。
      • 环境变量,由 name 和 value 组成。
    • 其他含义,包括 添加功能Drop capabilities自镜像创建以来 的天,以及 自上次扫描镜像以来的几天

5.5.2.1. 镜像标准

镜像 registry
Expand
属性DescriptionJSON 属性允许的值regex,NOT,AND, OR阶段

镜像 registry

镜像 registry 的名称。

镜像 Registry

字符串

regex,
NOT,
AND, OR

构建,
部署 ,
运行时
(与运行时条件一起使用)

镜像名称

registry 中镜像的完整名称,如 library/nginx

镜像远程

字符串

regex,
NOT,
AND, OR

构建,
部署 ,
运行时
(与运行时条件一起使用)

镜像标签

镜像的标识符。

镜像标签

字符串

regex,
NOT,
AND, OR

构建,
部署 ,
运行时
(与运行时条件一起使用)

镜像签名

可用于验证镜像签名的签名集成列表。在没有签名或其签名的镜像上创建警报不会被至少一个提供的签名集成验证。

镜像签名验证人

已配置了镜像签名集成的有效 ID

!仅限 OR

构建,
部署 ,
运行时
(与运行时条件一起使用)

镜像内容
Expand
属性DescriptionJSON 属性允许的值regex,NOT,AND, OR阶段

镜像年龄

镜像创建日期的最小天数。

image Age

整数

构建,
部署 ,
运行时
(与运行时条件一起使用)

Image 用户

匹配 Dockerfile 中的 USER 指令。详情请查看 https://docs.docker.com/engine/reference/builder/#user

镜像用户

字符串

regex,
NOT,
AND, OR

构建,
部署 ,
运行时
(与运行时条件一起使用)

Dockerfile 行

Dockerfile 中的特定行,包括指令和参数。

Dockerfile 行

其中之一: LABEL, RUN, CMD, EXPOSE, ENV, ADD, COPY, ENTRYPOINT, VOLUME, USER, WORKDIR, ONBUILD

!仅针对值、
AND、OR 的正则表达式

构建,
部署 ,
运行时
(与运行时条件一起使用)

镜像组件

镜像中存在的特定软件组件的名称和版本号。

镜像组件

key=value

value 是可选的。

如果缺少值,则必须格式为 "key="。

regex,
AND, OR

构建,
部署 ,
运行时
(与运行时条件一起使用)

镜像操作系统

镜像基本操作系统的名称和版本号。例如,alpine:3.17.3

镜像操作系统

字符串

regex,
NOT,
AND, OR

构建,
部署 ,
运行时
(与运行时条件一起使用)

需要镜像标签

确保存在 Docker 镜像标签。如果部署中的任何镜像都没有指定标签,则策略会触发。您可以对 key 和 value 字段使用正则表达式来匹配标签。Require Image Label 策略标准仅在与 Docker registry 集成时才有效。有关 Docker 标签的详情,请查看 Docker 文档 https://docs.docker.com/config/labels-custom-metadata/

所需的镜像标签

key=value

value 是可选的。

如果缺少值,则必须格式为 "key="。

regex,
AND, OR

构建,
部署 ,
运行时
(与运行时条件一起使用)

disallow 镜像标签

确保不使用特定的 Docker 镜像标签。如果部署中的任何镜像具有指定标签,策略将触发。您可以对 key 和 value 字段使用正则表达式来匹配标签。只有在与 Docker registry 集成时,"Disallow Image Label policy"条件才可以正常工作。有关 Docker 标签的详情,请查看 Docker 文档 https://docs.docker.com/config/labels-custom-metadata/

禁止的镜像标签

key=value

value 是可选的。

如果缺少值,则必须格式为 "key="。

regex,
AND, OR

构建,
部署 ,
运行时
(与运行时条件一起使用)

镜像扫描
Expand
属性DescriptionJSON 属性允许的值regex,NOT,AND, OR阶段

镜像扫描年龄

自上次扫描镜像以来的最少天数。

镜像扫描期限

整数

构建,
部署 ,
运行时
(与运行时条件一起使用)

镜像扫描状态

检查镜像是否已扫描。

未扫描的镜像

布尔值

构建,
部署 ,
运行时
(与运行时条件一起使用)

通用漏洞评分系统(CVSS)

CVSS:使用它来匹配分数大于 >、小于 & lt; 或等于 = 指定的 CVSS 的漏洞的镜像。

CVSS

<, >, <=, >= or nothing (代表等于)
rhacm-wagonand swig-wagon
一个十进制(带有可选部分值的数字)。

示例:
>=5, or
9.5

AND, OR

构建,
部署 ,
运行时
(与运行时条件一起使用)

国家漏洞数据库(NVD) CVSS

需要 Scanner V4。NVD CVSS:使用它来匹配 NVD 报告的漏洞的镜像,其分数大于 >,小于 & lt;,或等于 = 指定的 CVSS。

CVSS

<, >, <=, >= or nothing (代表等于)
rhacm-wagonand swig-wagon
一个十进制(带有可选部分值的数字)。

示例:
>=5, or
9.5

AND, OR

构建,
部署 ,
运行时
(与运行时条件一起使用)

重要性

根据 CVSS 或供应商的安全漏洞的严重性。可以是 Low、Moderate、Important 或 Critical 之一。

重要性

<, >, HEKETI, >= or nothing (代表等于)
HEKETI-wagonand swig- swig
One of:
UNKNOWN
LOW
MODERATE
IMPORTANT
CRITICAL

示例:
>=IMPORTANT, 或
CRITICAL

AND, OR

构建,
部署 ,
运行时
(与运行时条件一起使用)

可修复

只有在您要评估的部署中的镜像具有可修复的 CVE 时,这个条件才会产生违反情况。

可修复

布尔值

构建,
部署 ,
运行时
(与运行时条件一起使用)

修复人

修复镜像中标记的漏洞的软件包版本字符串。除了识别漏洞的其他条件(例如使用 CVE 标准)外,还可使用此标准。

固定者

字符串

regex,
NOT,
AND, OR

构建,
部署 ,
运行时
(与运行时条件一起使用)

CVE

常见的漏洞和风险,将其与特定 CVE 编号一起使用。

CVE

字符串

regex,
NOT,
AND, OR

构建,
部署 ,
运行时
(与运行时条件一起使用)

从 CVE 发布以来的天数

此条件只有在 RHACS 首次发布后的指定天数时才会产生违反情况。

Since CVE Was First Published

整数

构建,
部署 ,
运行时
(与运行时条件一起使用)

由于 CVE 首次在镜像中发现的天数

只有当 RHACS 在特定镜像中发现 CVE 后的指定天数时,此条件才会产生违反情况。

Since CVE Was First Discovered in Image

整数

构建,
部署 ,
运行时
(与运行时条件一起使用)

由于 CVE 首次在系统中发现的天数

此条件只有在 RHACS 监视器的所有部署镜像间发现 CVE 超过指定天数时才会产生违反情况。

Since CVE Was First Discovered in System

整数

构建,
部署 ,
运行时
(与运行时条件一起使用)

5.5.2.2. 工作负载配置标准

容器配置
Expand
属性DescriptionJSON 属性允许的值regex,NOT,AND, OR阶段

环境变量

根据名称或值检查环境变量。当您创建包含环境变量属性的策略时,您可以选择策略应该匹配的环境变量类型。例如,您可以指定原始值,它们直接在部署 YAML 中提供,或者指定对配置映射、secret、字段或资源请求或限值的值的引用。对于直接在部署 YAML 中指定的 raw 值以外的任何类型,策略规则的对应 value 属性将被忽略。在这种情况下,策略匹配会根据指定的环境变量类型进行评估。另外,这个条件不允许为 raw 以外的类型使用非空值属性创建策略。

环境变量

RAW=key=value 与部署 YAML 中使用特定键和值直接指定的环境变量匹配。您可以省略 value 属性,仅匹配键。

如果配置 YAML 中没有定义环境变量,您可以使用格式 SOURCE=KEY,其中 SOURCE 是以下对象之一:

  • SECRET_KEY (SecretKeyRef)
  • CONFIG_MAP_KEY (ConfigMapRef)
  • FIELD (FieldRef)
  • RESOURCE_FIELD (ResourceFieldRef)

前面的列表首先提供 API 对象标签,然后以括号形式提供用户界面标签。

!仅限键和值正则表达式(如果使用 RAW)
AND, OR

部署,
运行时 (与运行时条件一起使用)

容器 CPU 请求

检查为给定资源保留的内核数。

容器 CPU 请求

<, >, HEKETI, >= or nothing (代表等于)
HEKETI-wagonand swig-wagon
一个十进制(带有可选部分值的数字)

示例:
>=5, or
9.5

AND, OR

部署,
运行时 (与运行时条件一起使用)

容器 CPU 限制

检查资源允许使用的最大内核数。

容器 CPU 限制

(与容器 CPU 请求相同)

AND, OR

部署,
运行时 (与运行时条件一起使用)

容器内存请求

编号,包括请求的几分(以 MB 为单位)。

容器内存请求

(与容器 CPU 请求相同)

AND, OR

部署,
运行时 (与运行时条件一起使用)

容器内存限制

检查资源允许使用的最大内存量。

容器内存限制

(与容器 CPU 请求相同)

AND, OR

部署,
运行时 (与运行时条件一起使用)

特权容器

检查部署是否以 privileged 模式配置。此条件仅检查对应 Pod 安全上下文 中的 privileged 字段的值

特权容器

boolean: true,当相应 PodSecurityContext 中的 privileged 字段的值被设置为 true

部署,
运行时 (与运行时条件一起使用)

root 文件系统可写入性

检查是否在 readOnlyFilesystem 模式中配置了部署。

只读 Root 文件系统

boolean: true,当相应 PodSecurityContext 中的 readOnlyRootFilesystem 字段的值被设置为 true

部署,
运行时 (与运行时条件一起使用)

seccomp 配置集类型

为部署定义的 seccomp 配置集类型。如果 pod 和容器级别上都提供了 seccomp 选项,则容器选项将覆盖 pod 选项。请参阅 安全上下文

seccomp 配置集类型

其中之一:

UNCONFINED
RUNTIME_DEFAULT
LOCALHOST

部署,
运行时 (与运行时条件一起使用)

权限升级

当部署允许容器进程获得比其父进程更多的特权时,提供警报。

允许权限升级

布尔值

部署,
运行时 (与运行时条件一起使用)

drop Capabilities

必须从容器中丢弃的 Linux 功能。当指定的功能没有丢弃时,提供警报。例如,如果配置了 SYS_ADMINSYS_BOOT,且部署只丢掉了这两个能力中的一个没有丢掉,警告会发生。

drop Capabilities

其中之一:

ALL
AUDIT_CONTROL
AUDIT_READ
AUDIT_WRITE
BLOCK_SUSPEND
CHOWN
DAC_OVERRIDE
DAC_READ_SEARCH
FOWNER
FSETID
IPC_LOCK
IPC_OWNER
KILL
LINUX_IMMUTABLE
MAC_ADMINMTC MAC_OVERRIDETAGS MKNOD LIBPMEM NET_ADMINVOLGROUP NET_BIND_SERVICE SWIG NET_BROADCAST SWIG NET_RAW ORIGINALLY SETGID SETFCAPCAP SETPCAP SWIG SETUID SWIG SYS_ADMIN SWIG SYS_BOOT SWIG SYS_CHROOTWAGON SYS_MODULE SYS_MODULE SYS_PACCT SWIG SYS_PTRACE SWIG SYS_RAWIORHACM SYS_RESOURCE SYS_TIMEMTC SYS_TTY_CONFIG SYSLOG SYSLOG SWIG WAKE_ALARM

部署,
运行时 (与运行时条件一起使用)

添加功能

不能添加到容器的 Linux 功能,例如发送原始数据包或覆盖文件权限的能力。添加指定功能时提供警报。例如,如果使用 NET_ADMINNET_RAW 配置,并且部署清单 YAML 文件至少包含这两个功能之一,则会发生警报。

添加功能

AUDIT_CONTROL
AUDIT_READ
AUDIT_WRITE
BLOCK_SUSPEND
CHOWN
DAC_OVERRIDE
DAC_READ_SEARCH
FOWNER
FSETID
IPC_LOCK
IPC_OWNER
KILL
LEASE
LINUX_IMMUTABLE
MAC_ADMIN
MAC_OVERRIDE (2) MKNOD LIBPMEM NET_ADMINVOLGROUP NET_BIND_SERVICE SWIG NET_BROADCAST SWIG NET_RAW ORIGINALLY SETGID SETFCAPCAP SETPCAP SWIG SETUID SWIG SYS_ADMIN SWIG SYS_BOOT SWIG SYS_CHROOT SWIG SYS_MODULE SYS_PACCT SWIG SYS_PTRACE SWIG SYS_RAWIOWAGON SYS_RESOURCE SYS_TIME SWIG SYS_TTY_CONFIG SYSLOG SWIG WAKE_ALARM

或者

部署,
运行时 (与运行时条件一起使用)

容器名称

容器的名称。

容器名称

字符串

regex,
NOT,
AND, OR

部署,
运行时 (与运行时条件一起使用)

AppArmor Profile

容器中使用的应用程序 Armor ("AppArmor")配置集。

AppArmor Profile

字符串

regex,
NOT,
AND, OR

部署,
运行时 (与运行时条件一起使用)

存活度(Liveness)探测

容器是否定义了存活度探测。

存活度(Liveness)探测

布尔值

部署,
运行时 (与运行时条件一起使用)

就绪度(Readiness)探测

容器是否定义了就绪度探测。

就绪度(Readiness)探测

布尔值

部署,
运行时 (与运行时条件一起使用)

部署元数据
Expand
属性DescriptionJSON 属性允许的值regex,NOT,AND, OR阶段

禁止注解

不允许在指定环境中的 Kubernetes 资源上存在的注解。

不允许注解

key=value

value 是可选的。

如果缺少值,则必须格式为 "key="。

regex,
AND, OR

部署,
运行时 (与运行时条件一起使用)

所需标签

检查 Kubernetes 中是否存在所需的标签。

所需的标签

key=value

value 是可选的。

如果缺少值,则必须格式为 "key="。

regex,
AND, OR

部署,
运行时 (与运行时条件一起使用)

所需的注解

检查 Kubernetes 中是否存在所需的注解。

所需的注解

key=value

value 是可选的。

如果缺少值,则必须格式为 "key="。

regex,
AND, OR

部署,
运行时 (与运行时条件一起使用)

运行时类

部署的 RuntimeClass

运行时类

字符串

regex,
NOT,
AND, OR

部署,
运行时 (与运行时条件一起使用)

主机网络

检查 HostNetwork 是否已启用,这意味着容器没有放置到单独的网络堆栈中(例如,容器的网络没有被容器化)。这意味着容器对主机的网络接口具有完全访问权限。

主机网络

布尔值

部署,
运行时 (与运行时条件一起使用)

主机 PID

检查进程 ID (PID)命名空间是否在容器和主机间隔离。这允许不同 PID 命名空间中的进程具有相同的 PID。

主机 PID

布尔值

部署,
运行时 (与运行时条件一起使用)

主机 IPC

检查主机上的 IPC (POSIX/SysV IPC)命名空间(提供命名共享内存片段、信号和消息队列)是否与容器共享。

主机 IPC

布尔值

部署,
运行时 (与运行时条件一起使用)

命名空间

部署所属命名空间的名称。

命名空间

字符串

regex,
NOT,
AND, OR

部署,
运行时 (与运行时条件一起使用)

Replicas

部署副本数量。如果使用 oc scale 将部署副本从 0 扩展到一个数字,则准入控制器会在部署违反策略时阻断此操作。

Replicas

<, >, HEKETI, >= or nothing (代表等于)
HEKETI-wagonand swig-wagon
一个十进制(带有可选部分值的数字)。

示例:
>=5, or
9.5

NOT,
AND, OR

部署,
运行时 (与运行时条件一起使用)

Storage
Expand
属性DescriptionJSON 属性允许的值regex,NOT,AND, OR阶段

卷名称

存储的名称。

卷名称

字符串

regex,
NOT,
AND, OR

部署,
运行时 (与运行时条件一起使用)

卷源路径

主机上卷的路径。

卷源

字符串

regex,
NOT,
AND, OR

部署,
运行时 (与运行时条件一起使用)

卷目的地路径

挂载卷的路径。

卷目的地

字符串

regex,
NOT,
AND, OR

部署,
运行时 (与运行时条件一起使用)

卷类型

指明置备卷的表单。例如: persistentVolumeClaimhostPath

卷类型

字符串

regex,
NOT,
AND, OR

部署,
运行时 (与运行时条件一起使用)

挂载卷可重用性

挂载为可写的卷。

可写挂载卷

布尔值

部署,
运行时 (与运行时条件一起使用)

挂载传播

检查容器是否以 双向Host to ContainerNone 模式挂载卷。

挂载传播

其中之一:

NONE
HOSTTOCONTAINER
BIDIRECTIONAL

NOT,
AND, OR

部署,
运行时 (与运行时条件一起使用)

主机挂载 writability

资源已在具有写入权限的主机上挂载了路径。

可写主机挂载

布尔值

部署,
运行时 (与运行时条件一起使用)

部分:网络

公开的端口协议

协议(如 TCP 或 UDP)供公开端口使用。

公开的端口协议

字符串

regex,
NOT,
AND, OR

部署,
运行时 (与运行时条件一起使用)

公开的节点端口

部署外部公开的端口号。

公开的节点端口

(与开放端口相同)

NOT,
AND, OR

部署,
运行时 (与运行时条件一起使用)

公开端口

部署公开的端口号。

公开的端口

<, >, HEKETI, >= or nothing (代表等于)
HEKETI-wagonand swig-wagon
一个整数。

示例:
>=1024, 或
22

NOT,
AND, OR

部署,
运行时 (与运行时条件一起使用)

端口公开方法

公开该服务的方法,如负载均衡器或节点端口。

端口公开方法

其中之一:

route
LoadBalancer
NodePort
HostPort
Exposure type not set

NOT,
AND, OR

部署,
运行时 (与运行时条件一起使用)

Ingress 网络策略

检查入口 Kubernetes 网络策略是否存在。

具有 Ingress Network 策略

布尔值

regex,
AND, OR

部署,
运行时 (与运行时条件一起使用)

Egress 网络策略

检查出口 Kubernetes 网络策略是否存在。

具有 Egress Network 策略

布尔值

regex,
AND, OR

部署,
运行时 (与运行时条件一起使用)

Access control
Expand
属性DescriptionJSON 属性允许的值regex,NOT,AND, OR阶段

服务帐户

服务帐户的名称。

服务帐户

字符串

regex,
NOT,
AND, OR

部署,
运行时 (与运行时条件一起使用)

自动挂载服务帐户令牌

检查部署配置是否自动挂载服务帐户令牌。

自动挂载服务帐户令牌

布尔值

部署,
运行时 (与运行时条件一起使用)

最低 RBAC 权限

如果部署的 Kubernetes 服务帐户等于 = 或高于>指定的级别,则匹配。

最低 RBAC 权限

其中之一:

DEFAULT
ELEVATED_IN_NAMESPACE
ELEVATED_CLUSTER_WIDE
CLUSTER_ADMIN

部署,
运行时 (与运行时条件一起使用)

5.5.2.3. 工作负载活动标准

进程活动
Expand
属性DescriptionJSON 属性允许的值regex,NOT,AND, OR阶段

进程名称

部署中执行的进程的名称。

进程名称

字符串

regex,
NOT,
AND, OR

运行时 - 进程

进程祖先

部署中执行的进程的任何父进程的名称。

Process Ancestor

字符串

regex,
NOT,
AND, OR

运行时 - 进程

process 参数

在部署中执行的进程的命令参数。

进程参数

字符串

regex,
NOT,
AND, OR

运行时 - 进程

进程 UID

部署中执行进程的 UNIX 用户 ID。

进程 UID

整数

NOT,
AND, OR

运行时 - 进程

基准偏差
Expand
属性DescriptionJSON 属性允许的值regex,NOT,AND, OR阶段

检测到意外的网络流

检查检测到的网络流量是部署的网络基准的一部分。

意外的网络流

布尔值

运行时 - 网络

意外进程执行

检查在部署锁定的进程基准中未列出进程执行的部署。

意外进程执行

布尔值

运行时 - 进程

用户发出容器命令
Expand
属性DescriptionJSON 属性允许的值regex,NOT,AND, OR阶段

Kubernetes 操作

Kubernetes 操作的名称,如 Pod Exec

Kubernetes 资源

其中之一:

PODS_EXEC
PODS_PORTFORWARD

!仅限 OR

运行时 - Kubernetes 事件

Kubernetes API 动词

不要使用;对于运行时策略无效。

Kubernetes API Verb

N/A

不适用

N/A

Kubernetes 用户名

访问资源的用户的名称。

Kubernetes 用户名

只使用连字符(-)和冒号(:)的字母数字。

regex,
NOT,
!仅限 OR

运行时 - Kubernetes 事件

Kubernetes 用户组

访问资源的用户所属组名称。

Kubernetes 用户组

只使用连字符(-)和冒号(:)的字母数字。

regex,
NOT,
!仅限 OR

运行时 - Kubernetes 事件

5.5.2.4. 审计日志:Kubernetes 资源操作

资源操作(必需)
Expand
属性DescriptionJSON 属性允许的值regex,NOT,AND, OR阶段

Kubernetes API 动词

用于访问资源的 Kubernetes API 动词,如 GETPOST

Kubernetes API Verb

其中之一:

CREATE
DELETE
GET
PATCH
UPDATE

!仅限 OR

运行时 - 审计日志

Kubernetes 资源类型

访问的 Kubernetes 资源的类型。

Kubernetes 资源

其中之一:

CONFIGMAPS
SECRETS
CLUSTERROLES
CLUSTERROLEBINDINGS
NETWORKPOLICIES
SECURITYCONTEXTCONSTRAINTS
EGRESSFIREWALLS

!仅限 OR

运行时 - 审计日志

资源属性
Expand
属性DescriptionJSON 属性允许的值regex,NOT,AND, OR阶段

Kubernetes 资源名称

访问的 Kubernetes 资源的名称。

Kubernetes 资源名称

只使用连字符(-)和冒号(:)的字母数字。

regex,
NOT,
!仅限 OR

运行时 - 审计日志

Kubernetes 用户名

访问资源的用户的名称。

Kubernetes 用户名

只使用连字符(-)和冒号(:)的字母数字。

regex,
NOT,
!仅限 OR

运行时 - Kubernetes 事件

Kubernetes 用户组

访问资源的用户所属组名称。

Kubernetes 用户组

只使用连字符(-)和冒号(:)的字母数字。

regex,
NOT,
!仅限 OR

运行时 - Kubernetes 事件

用户代理

用于访问资源的用户代理。例如 oc,或 kubectl

用户代理

字符串

regex,
NOT,
!仅限 OR

运行时 - 审计日志

源 IP 地址

用户访问资源的 IP 地址。

源 IP 地址

IPV4 或 IPV6 地址

regex,
NOT,
!仅限 OR

运行时 - 审计日志

被模拟的用户

检查请求是否由服务帐户或其它帐户模拟的用户进行。

is Impersonated User

布尔值

运行时 - 审计日志

5.5.3. 默认安全策略

Red Hat Advanced Cluster Security for Kubernetes 中的默认安全策略提供了广泛的覆盖范围,以识别安全问题,并确保环境中安全性的最佳实践。通过配置这些策略,您可以自动防止环境中的高风险服务部署并对运行时安全事件做出响应。

注意

Red Hat Advanced Cluster Security for Kubernetes 中的策略严重性级别与红帽产品安全团队分配的严重性级别不同。

Red Hat Advanced Cluster Security for Kubernetes 策略严重性级别为 Critical、High、Medium 和 Low。红帽产品安全团队将漏洞严重性评级为 Critical, Important, Moderate, 和 Low。

虽然策略的严重性级别和红帽产品安全团队的严重性级别可以相互交互,但务必要区分它们。有关红帽产品安全严重性等级的更多信息,请参阅 严重性等级

5.5.3.1. 关键严重性安全策略

下表列出了 Red Hat Advanced Cluster Security for Kubernetes 中有关键严重性的默认安全策略。策略按生命周期阶段进行组织。

Expand
表 5.1. 关键严重性安全策略
生命周期阶段名称Description状态

构建或部署

Apache Struts: CVE-2017-5638

当部署有包含 CVE-2017-5638 Apache Struts 漏洞的镜像时发出警报。

Enabled

构建或部署

Log4Shell: log4j Remote Code Execution vulnerability

当部署包含 CVE-2021-44228 和 CVE-2021-45046 Log4Shell 漏洞的镜像时,警报。Apache Log4j Java 日志记录库中存在漏洞,版本 2.0-beta9 - 2.15.0,不包括 2.12.2 版本。

Enabled

构建或部署

Spring4Shell (Spring Framework Remote Code Execution)和 Spring Cloud Function 漏洞

当部署包含 CVE-2022-22965 漏洞的镜像时(这会影响 Spring MVC),以及 CVE-2022-22963 漏洞会影响 Spring Cloud。在版本 3.16、3.2.2 和旧的不受支持的版本中,Spring Cloud 包含漏洞。Spring Framework 版本为 5.3.0 - 5.3.17、版本 5.2.0 - 5.2.19 以及较旧不受支持的版本存在漏洞。

Enabled

Runtime

Privileged Container 中执行的 iptables

特权 Pod 运行 iptables 时的警报。

Enabled

5.5.3.2. 高严重性安全策略

下表列出了 Red Hat Advanced Cluster Security for Kubernetes 中具有高严重性的默认安全策略。策略按生命周期阶段进行组织。

Expand
表 5.2. 高严重性安全策略
生命周期阶段名称Description状态

构建或部署

可修复的通用漏洞评分系统(CVSS)>= 7

当部署具有可修复的、CVSS 最少为 7 的安全漏洞时发出警报。但是,红帽建议您使用通用漏洞和暴露(CVE)严重性而不是 CVSS 分数创建策略。

Disabled

构建或部署

可修复的严重性至少重要

当部署具有可修复漏洞的部署至少有重要等级时发出警报。

Enabled

构建或部署

快速重置:HTTP/2 协议中拒绝服务漏洞

在带有镜像(包含与 HTTP/2 服务器的 Denial Service (DoS)漏洞相关的组件)的部署中的警报。这个问题解决了在 HTTP/2 中处理多路流的缺陷。客户端可以快速创建请求并立即重置请求,从而为服务器创建额外的工作,同时避免达到任何服务器端的限制,从而导致拒绝服务攻击。要使用此策略,请考虑克隆策略并在启用前添加可修复的策略标准。

Disabled

构建或部署

镜像中公开的安全 Shell (ssh)端口

当部署公开端口 22 时发出警报,该端口通常为 SSH 访问保留。

Enabled

构建或部署

红帽镜像必须由红帽发布密钥签名

当红帽镜像没有由官方红帽 产品签名密钥"Release Key 3"签名时 发出警报。这些警报适用于以下 registry 和远程中的镜像:

  • registry.redhat.io
  • registry.access.redhat.com
  • quay.io/openshift-release-dev/ocp-release
  • quay.io/openshift-release-dev/ocp-v4.0-art-dev

Disabled

部署

紧急部署注解

当部署使用 emergency 注解时,比如 "admission.stackrox.io/break-glass":"ticket-1234" to rcumvent StackRox Admission 控制器检查。

Enabled

部署

环境变量包含 Secret

当部署具有包含 'SECRET' 的环境变量时发出警报。

Enabled

部署

可修复 CVSS >= 6 和 Privileged

当部署以特权模式运行且至少为 6 的 CVSS 漏洞时发出警报。但是,红帽建议您使用 CVE 严重性而不是 CVSS 分数创建策略。

在版本 3.72.0 及更新的版本中默认禁用

部署

具有重要和严重修复 CVE 的特权容器

当以特权模式运行的容器具有重要或重要的可修复漏洞时,会发出警报。

Enabled

部署

Secret 挂载为环境变量

当部署具有作为环境变量挂载的 Kubernetes secret 时发出警报。

Disabled

部署

安全 Shell (ssh)端口公开

当部署公开端口 22 时发出警报,该端口通常为 SSH 访问保留。

Enabled

Runtime

Cryptocurrency Mining Process Execution

生成 crypto-currency mining 进程。

Enabled

Runtime

iptables 执行

检测某人运行 iptables 时,这是在容器中管理网络状态的已弃用方式。

Enabled

Runtime

Kubernetes Actions: 执行到 Pod 中

当 Kubernetes API 收到在容器中运行命令的请求时发出警报。

Enabled

Runtime

Linux 组添加执行

检测某人运行 addgroup 或 groupadd 二进制文件以添加 Linux 组。

Enabled

Runtime

Linux 用户添加执行

检测某人运行 useradd 或 adduser 二进制文件来添加 Linux 用户。

Enabled

Runtime

登录信息

指明有人尝试登录的时间。

Disabled

Runtime

网络管理执行

检测某人运行可操作网络配置和管理的二进制文件。

Enabled

Runtime

Nmap 执行

当用户在运行时启动容器中的 nmap 进程时发出警报。

Enabled

Runtime

OpenShift: Kubeadmin Secret Accessed

当某人访问 kubeadmin 机密时发出警报。

Enabled

Runtime

Password Binaries

表示有人尝试更改密码的时间。

Disabled

Runtime

目标集群 Kubelet 端点的流程

检测 healthz、kubelet API 或 heapster 端点的滥用。

Enabled

Runtime

进程目标集群 Kubernetes Docker 统计信息端点

检测 Kubernetes docker stats 端点的滥用。

Enabled

Runtime

为 Kubernetes 服务端点目标的流程

检测 Kubernetes Service API 端点的滥用。

Enabled

Runtime

使用 UID 0 的进程

当部署包含以 UID 0 运行的进程时发出警报。

Disabled

Runtime

Secure Shell Server (sshd)执行

检测运行 SSH 守护进程的容器。

Enabled

Runtime

Setuid processes

使用 setuid 二进制文件,允许人员使用升级的特权运行某些程序。

Disabled

Runtime

影子文件修改

表示有人尝试修改影子文件时。

Disabled

Runtime

Shell Spawned by Java Application

检测 shell (如 bash、csh、sh 或 zsh )何时作为 Java 应用程序的子进程运行。

Enabled

Runtime

未授权的网络流

对所有位于"警报在异常违反情况"设置中的基准之外的任何网络流生成冲突。

Enabled

Runtime

未授权进程执行

针对 Kubernetes 部署中容器规格的锁定进程基准未明确允许的任何进程执行生成违反情况。

Enabled

5.5.3.3. 中等严重性安全策略

下表列出了 Red Hat Advanced Cluster Security for Kubernetes 中的默认安全策略,它们是中等严重性。策略按生命周期阶段进行组织。

Expand
表 5.3. 中等严重性安全策略
生命周期阶段名称Description状态

Build

Docker CIS 4.4: Ensure images are scanned and rebuilt to include security patches

当镜像没有被扫描并重新构建来包括安全补丁时的警报。要经常扫描镜像来查找漏洞,重新构建镜像以包括安全补丁,然后实例化镜像的容器。

Disabled

部署

30 天扫描期限

当部署没有在 30 天内扫描时发出警报。

Enabled

部署

添加了 CAP_SYS_ADMIN 功能

当部署包含使用 CAP_SYS_ADMIN 扩展的容器时发出警报。

Enabled

部署

使用读写根文件系统的容器

当部署包含具有读写根文件系统的容器时发出警报。

Disabled

部署

允许权限升级的容器

当容器可能以意外权限运行时发出警报,从而造成安全风险。当具有比其父进程更多特权的容器进程允许容器以意外特权运行时,会出现这种情况。

Enabled

部署

部署应至少有一个 Ingress Network 策略

如果部署缺少 Ingress Network Policy,则发出警报。

Disabled

部署

使用外部公开端点部署

检测部署是否有通过任何方法公开的任何服务。在集群外公开的服务的部署较高风险,因为它们可在集群外访问。此策略提供了一个警报,以便您可以验证是否需要在集群外公开服务。如果只在集群内通信需要该服务,请使用服务类型 ClusterIP。

Disabled

部署

Docker CIS 5.1:确保启用了 AppArmor 配置集

使用 AppArmor 通过强制执行称为 AppArmor 配置集的安全策略来保护 Linux 操作系统和应用程序。Apparmor 是一个 Linux 应用程序安全系统,默认可在某些 Linux 发行版上提供,如 Debian 和 Ubuntu。

Enabled

部署

Docker CIS 5.15:确保主机的进程命名空间没有共享

创建容器和主机之间的进程级隔离。进程 ID (PID)命名空间隔离进程 ID 空间,这意味着不同 PID 命名空间中的进程可以具有相同的 PID。

Enabled

部署

Docker CIS 5.16 :确保主机的 IPC 命名空间没有被共享

当主机上的 IPC 命名空间与容器共享时发出警报。IPC (POSIX/SysV IPC)命名空间分隔名为共享内存段、emaphores 和消息队列。

Enabled

部署

Docker CIS 5.19: Ensure mount propagation mode is not enabled

启用挂载传播模式时的警报。启用挂载传播模式时,您可以使用 Bidirectional、Host to Container 和 None 模式挂载容器卷。除非明确需要,否则不要使用双向挂载传播模式。

Enabled

部署

Docker CIS 5.21 :确保默认 seccomp 配置集没有禁用

当 seccomp 配置集被禁用时发出警报。seccomp 配置集使用允许列表来允许常见的系统调用和阻止所有其他系统。

Disabled

部署

Docker CIS 5.7:确保特权端口没有在容器中映射

在容器内映射特权端口时发出警报。低于 1024 的 TCP/IP 端口号是特权端口。普通用户和进程因为安全原因无法使用它们,但容器可能会将其端口映射到特权端口。

Enabled

部署

Docker CIS 5.9 和 5.20 :确保主机的网络命名空间没有共享

当主机的网络命名空间共享时发出警报。当 HostNetwork 启用后,容器不会被放在单独的网络堆栈中,容器的网络不会被容器化。因此,容器可以完全访问主机的网络接口,并启用共享的 UTS 命名空间。UTS 命名空间提供主机名和 NIS 域名之间的隔离,并设置主机名和域,这些主机名和域对在该命名空间中运行进程可见。在容器内运行的进程通常需要知道主机名或域名,因此 UTS 命名空间不应与主机共享。

Enabled

部署

无扫描的镜像

当部署包含没有扫描的镜像时发出警报。

Disabled

Runtime

Kubernetes 操作:进入 Pod 的端口

当 Kubernetes API 收到端口转发请求时发出警报。

Enabled

部署

挂载容器运行时套接字

当部署具有容器运行时套接字上的卷挂载时发出警报。

Enabled

部署

挂载敏感主机目录

当部署挂载敏感主机目录时发出警报。

Enabled

部署

没有指定资源请求或限制

当部署包含没有资源请求和限值的容器时发出警报。

Enabled

部署

Pod 服务帐户令牌自动挂载

通过将默认服务帐户令牌挂载到应用需要与 Kubernetes API 交互的 pod 中,防止 pod 默认服务帐户令牌受到影响。

Enabled

部署

特权容器

当部署包含以特权模式运行的容器时发出警报。

Enabled

Runtime

crontab 执行

检测 crontab 调度作业编辑器的使用情况。

Enabled

Runtime

检测到 netcat 执行

检测 netcat 在容器中运行的时间。

Enabled

Runtime

openshift: Advanced Cluster Security Central Admin Secret Accessed

当某人访问 Red Hat Advanced Cluster Security Central secret 时发出警报。

Enabled

Runtime

OpenShift:由 Impersonated User 访问的 Kubernetes Secret

当某人模拟用户访问集群中的 secret 时发出警报。

Enabled

Runtime

远程文件复制二进制执行

当部署运行远程文件复制工具时发出警报。

Enabled

5.5.3.4. 低严重性安全策略

下表列出了 Red Hat Advanced Cluster Security for Kubernetes 中的默认安全策略,它们严重性较低。策略按生命周期阶段进行组织。

Expand
表 5.4. 低严重性安全策略
生命周期阶段名称Description状态

构建或部署

90 天镜像期限

当部署在 90 天内没有更新时发出警报。

Enabled

构建或部署

使用 ADD 命令而不是 COPY

使用 ADD 命令构建镜像时发出警报。

Disabled

构建或部署

镜像中 alpine Linux Package Manager (apk)

当部署包含 Alpine Linux 软件包管理器(apk)时发出警报。

Enabled

构建或部署

镜像中的 curl

当部署包含 curl 时发出警报。

Disabled

构建或部署

Docker CIS 4.1:确保为 Container Has Been 创建的用户

确保容器以非 root 用户身份运行。

Enabled

构建或部署

Docker CIS 4.7: Alert on Update instructions

确保 Dockerfile 中没有单独使用更新指令。

Enabled

构建或部署

在 CMD 中指定不安全

当部署在命令中使用 "insecure" 时发出警报。

Enabled

构建或部署

latest 标签

当部署包含使用 'latest' 标签的镜像时发出警报。

Enabled

构建或部署

镜像中的 Red Hat Package Manager

当部署包含红帽、Fedora 或 CentOS 软件包管理系统的组件时发出警报。

Enabled

构建或部署

所需的镜像标签

当部署包含缺少指定标签的镜像时发出警报。

Disabled

构建或部署

Ubuntu Package Manager 执行

检测 Ubuntu 软件包管理系统的使用。

Enabled

构建或部署

镜像中的 Ubuntu Package Manager

当部署包含镜像中 Debian 或 Ubuntu 软件包管理系统的组件时,发出警报。

Enabled

构建或部署

镜像中的 wget

当部署包含 wget 时的警报。

Disabled

部署

丢弃所有功能

当部署没有丢弃所有功能时发出警报。

Disabled

部署

不正确的使用编配器 secret 卷

当部署使用带有 'VOLUME /run/secrets' 的 Dockerfile 时发出警报。

Enabled

部署

部署 Kubernetes 仪表板

当检测到 Kubernetes 仪表板服务时发出警报。

Enabled

部署

所需的注解: Email

当部署缺少 'email' 注解时发出警报。

Disabled

部署

所需的注解:Owner/Team

当部署缺少 'owner' 或 'team' 注解时发出警报。

Disabled

部署

必需标签:Owner/Team

当部署缺少 'owner' 或 'team' 标签时发出警报。

Disabled

Runtime

alpine Linux Package Manager Execution

当 Alpine Linux 软件包管理器(apk)在运行时运行时运行时发出警报。

Enabled

Runtime

chkconfig Execution

检测 ckconfig 服务管理器的使用,该服务通常不会在容器中使用。

Enabled

Runtime

编译器工具执行

在运行时运行编译软件的二进制文件时发出警报。

Enabled

Runtime

Red Hat Package Manager 执行

在运行时运行 Red Hat、Fedora 或 CentOS 软件包管理器程序时发出警报。

Enabled

Runtime

Shell 管理

运行命令以添加或删除 shell 时发出警报。

Disabled

Runtime

systemctl Execution

检测 systemctl 服务管理器的使用。

Enabled

Runtime

systemd 执行

检测 systemd 服务管理器的使用。

Enabled

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat