6.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。

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

6.3.1. 关键严重性安全策略

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

表 6.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

6.3.2. 高严重性安全策略

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

表 6.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

部署

紧急部署注解

当部署使用 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

6.3.3. 中等严重性安全策略

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

表 6.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

6.3.4. 低严重性安全策略

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

表 6.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

6.3.5. 默认安全策略

Red Hat Advanced Cluster Security for Kubernetes 包括了一组默认策略,它们提供了广泛的覆盖范围来识别安全问题,并确保环境中安全性的最佳实践。您可以使用 RHACS 门户查看默认策略,克隆它们,并编辑克隆的默认策略。

注意

策略不支持默认策略作为代码功能。

查看默认策略:

  • 在 RHACS 门户中,进入 Platform Configuration Policy Management

Policies 视图还允许您配置策略。

策略信息被分为以下组:

  • 策略 :策略的名称。
  • Description: 更长的时间,对策略的警报有更详细的描述。
  • 状态 :策略的当前状态,可以是 EnabledDisabled
  • Notifiers:为策略配置的通知程序列表。
  • 严重性 :对于所需的注意量,对策略排名(Critical、高、中或低)。
  • 生命周期 :此策略应用到的容器生命周期(构建、部署或运行时)的阶段,以及启用策略时应用强制阶段。
  • 策略类别 :列出类别并允许您管理策略的类别。默认情况下会列出所有类别。您可以选择使用类别名称过滤类别。
注意

您无法删除默认策略或编辑默认策略标准。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.