进程控制文件规则

策略 → 组 → 进程控制文件规则

在 SUSE® Security 中有两种类型的进程/文件保护。一种是零漂移,允许的进程和文件活动是根据容器镜像自动确定的,第二种是基于行为学习的。如果需要,可以自定义每个规则(手动添加规则)。

在使用 AUFS 文件系统的系统上运行时存在一个限制,即可能会出现竞争条件,进程规则不会强制执行以阻止(保护模式)。然而,这些违规行为仍会在安全事件日志中报告。

零漂移进程保护

这是进程和文件保护的默认模式。零漂移自动仅允许来自原始容器镜像中的父进程的进程,并不允许文件更新或安装新文件。在发现或监控模式下,零漂移会对任何可疑的进程或文件活动发出警报。在保护模式下,它将阻止此类活动。零漂移不需要学习或添加进程到允许列表。为一个组禁用零漂移将导致该组列出的进程和文件规则生效。

(1)每个组列出的进程/文件规则始终适用,即使启用了零漂移。这提供了一种向基础零漂移保护添加允许/拒绝例外的方法。请记住,如果一个组以发现模式开始,进程/文件规则可以自动添加到列表中,并应在转到监控/保护模式之前进行审查和编辑。

(2)建议将系统信任的(事实上的)名称空间(系统和网络插件)设置为基本保护。要设置的示例名称空间有 "kube-system"、"openshift-ovn-kubernetes"、"ovn-*" 等。将其他应用程序 Pod 设置为零漂移。

在策略 → 组的控制台中可以启用/禁用零漂移模式。可以选择多个组来切换所有选定组的此设置。

基本模式进程保护

可以禁用零漂移,切换到基本进程保护。基本保护根据每个组列出的进程和/或文件规则强制执行进程/文件活动。这意味着必须有一份进程规则和/或文件规则的列表,以便进行保护。规则可以通过行为学习在发现模式下自动创建,也可以通过控制台或 REST API 手动创建,或者通过应用 CRD 程序化创建。在启用基本模式的情况下,如果没有规则,所有活动将在监控或保护模式下被警报/阻止。

基于行为学习的进程保护

进程控制文件规则使用基线学习来控制应允许在一组容器(即一个组)中运行的进程。在微服务环境的正常条件下,对于具有特定镜像的容器,只有特定用户的有限进程会运行。如果容器受到攻击,恶意攻击者可能会启动一些在此容器中通常未见的新程序。这些异常事件可以通过 SUSE® Security 检测,并生成警报和行动(另见响应规则)。

当服务组处于发现(学习)模式时,将学习并记录进程基线信息。在监控或保护模式下,如果新启动了一个之前未见过的进程,或者一个旧进程由不同的用户启动,该事件将在监控模式下被检测并警报,或在保护模式下被警报和阻止。用户可以根据需要手动修改学习的控制文件以允许或拒绝(白名单或黑名单)进程。

请注意,除了基线进程外,SUSE® Security 还内置了对常见可疑进程(如 nmap、反向 shell 等)的检测。这些将被检测并警报/阻止,除非为每个容器服务明确列入白名单。

Kubernetes 存活探针在监控/保护模式下也会被自动允许,并添加到学习的进程规则中。

节点的进程规则

特殊保留组“节点”可以配置以在集群中的每个节点(主机)上强制执行进程控制文件规则。选择组“节点”,并查看进程规则,如有需要进行编辑。然后将保护模式切换为监控或保护。“本地”(学习的)进程规则列表是在发现模式下,集群中所有节点的所有进程的组合。

自定义组的进程规则

对于用户定义的自定义组,进程规则(如有需要)必须手动添加。自定义组不会自动学习进程规则。

进程规则优先级

进程规则可以存在于用户定义的自定义组以及自动学习的组中。为自定义组创建的规则优先于自动学习组的规则。

在任何组内的进程规则列表中,控制台中的规则顺序决定其优先级。列出的顶部规则会优先匹配,而不是下面的规则。

名称和路径都包含通配符的进程规则优先于其他允许操作的规则。不允许使用两个通配符的拒绝操作,以避免阻止所有进程。

具有拒绝操作和名称中包含通配符的进程规则将优先于名称中包含通配符的允许操作。

发现模式

  • 所有新进程的操作均为允许。

  • 用户可以将操作更改为“拒绝”,以在相同的新进程启动时生成警报或阻止。

  • 用户可以为进程创建一个控制文件,操作可以是允许或拒绝。

  • 进程控制文件规则可以包含名称和/或路径。

  • 通配符 * 可用于匹配所有名称或路径

可疑进程(内置检测),如 nmap、ncat 等,会被报告为可疑进程事件,并且不会被学习。如果某个服务需要此进程,则需要明确添加一个 'allow' 控制文件规则。

监控/保护模式(新容器在监控或保护模式下启动)

  • 每个新进程都会生成一个警报

  • 进程控制文件规则可以包含名称和/或路径。

  • 通配符 * 可用于匹配所有名称或路径

如果 a) 进程匹配拒绝规则,或 b) 进程不在允许规则列表中,则:

  • 在监控模式下,将生成警报

  • 在保护模式下,进程将被阻止并生成警报

使用 AUFS 存储驱动的容器平台将由于驱动的限制而引入阻止机制的延迟。

在保护模式下,系统容器(如 Kubernetes 容器)将不会启用阻止操作,但如果存在进程违规,将生成进程违规事件。

创建进程控制文件规则

可以为同一进程创建多个规则。规则按顺序执行,第一个匹配的规则将被执行。

  • 从进程控制文件规则选项卡中点击添加规则 (+)

  • 进程控制文件规则可以包含名称和/或路径。

  • 通配符 * 可用于匹配所有名称或路径

示例: 允许 ping 进程从任何目录运行

pingRule

违规将记录在通知 → 安全事件中。

违规

内置可疑进程检测

以下内置检测在 SUSE® Security 中自动启用。

过程 方向 报告名称

nmap

出去的

端口扫描器

nc

出去的

netcat 进程

ncat

出去的

netcat 进程

netcat

出去的

netcat 进程

sshd

入站

从远程 ssh

ssh

出去的

向远程 ssh

scp

出去的

安全复制

telnet

出去的

向远程 telnet

in.telnetd

入站

从远程 telnet

iodine

出去的

dns 隧道

iodined

入站

dns 隧道

dnscat

出去的

dns 隧道

dns2tcpc

出去的

dns 隧道

dns2tcpd

入站

dns 隧道

socat

出去的

中继进程

此外,以下检测已启用:

  • docker cp

  • root 权限提升(用户角色转为 root 角色)

  • 隧道:反向 shell(当标准输入和标准输出重定向到同一个套接字时触发)

在发现或监控模式下,可疑的进程会发出警报,而在保护模式下则会被阻止。检测适用于容器和主机,唯一的例外是 'sshd',在主机上不被视为可疑。上述进程可以被添加到容器(组)的允许列表中,包括主机,如果它应该被允许的话。

拆分模式进程/文件保护

容器组可以在与网络规则不同的模式下拥有进程/文件规则,如 这里 所述。