文件访问规则

策略:文件访问规则

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

SUSE® Security内置了对可疑文件系统活动的检测。容器中的敏感文件在运行时通常不会改变。通过修改敏感文件的内容,攻击者可以获得未经授权的权限,例如在 Dirty-Cow Linux 内核攻击中,或者通过操纵 /etc/hosts 文件来损害系统的完整性。大多数容器不以只读模式运行。在容器、主机或 SUSE® Security 执行器容器本身中,任何可疑活动都将被检测并记录到通知 → 安全事件中。

零漂移文件保护

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

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

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

基本文件保护

如果检测到软件包安装,将触发对容器或主机的自动重新扫描,以检测任何漏洞,前提是已在安全风险 → 漏洞中启用自动扫描。

除了监控预定义的文件/目录外,用户还可以添加自定义文件/目录进行监控,并阻止这些文件/目录被修改。

SUSE® Security 警报,并且不阻止对预定义文件/目录或系统容器(如 Kubernetes 容器)的修改。阻止仅适用于用户配置的自定义文件/目录,且不适用于系统容器。这样可以确保系统文件夹或敏感配置的常规更新不会被意外阻止,从而导致系统行为不稳定。

默认监控以下文件和目录:

  • 可执行文件

  • 敏感的 setuid/setgid 文件

  • 系统库,libc,pthread,…​

  • 软件包安装,Debian/Ubuntu,RedHat/CentOS,Alpine

  • 敏感系统文件,/etc/passwd,/etc/hosts,/etc/resolv.conf …​

  • 正在运行的进程的可执行文件

监控以下活动:

  • 文件,目录,符号链接(硬链接和软链接)

  • 创建,删除,修改(内容更改)和移动

以下是文件系统监控的列表以及监控内容(容器,主机/节点,和/或 SUSE® Security 执行器容器本身):

  • /bin,/usr/bin,/usr/sbin,/usr/local/bin - 容器,执行器

  • 具有 setuid 和 setgid 属性的文件 - 容器,主机,执行器

  • 库:libc,pthread,ld-linux.* - 容器,主机,执行器

  • 软件包安装:dpkg,rpm,apk - 容器,主机,执行器

  • /etc/hosts,/etc/passwd,/etc/resolv.conf - 容器,主机,执行器

  • 正在运行的进程的二进制文件 - 容器

基于行为学习的允许应用程序在发现模式下

在发现模式下,SUSE® Security 只能为指定的目录或文件学习和列入白名单应用程序。要启用学习,必须创建自定义规则,并将操作设置为阻止,如下所述。

创建自定义文件/目录监控规则

可以为自定义用户定义的组以及自动学习的组创建自定义文件访问规则。

用户可以为文件/目录规则添加新条目。

  • 过滤器:配置要保护的文件/文件夹(支持通配符)

  • 设置递归标志(如果要保护子目录中的所有文件)

  • 选择操作,监控或阻止(见下文的操作)

  • 输入允许的应用程序(见下文的注释1)

文件规则

操作:

  • 监控文件更改。对任何更改生成警报(通知)

  • 阻止未经授权的访问。

    • 发现模式下的服务:学习文件访问行为(访问受保护文件的进程/应用程序)并添加到允许的应用程序中。

    • 监控模式下的服务:对意外的文件行为发出警报。

    • 保护模式下的服务:意外访问(读取、修改)被阻止。在受保护的文件夹中创建新文件也将被阻止。

如果规则设置为阻止,并且服务处于发现模式,SUSE® Security 将学习访问文件的应用程序,并将这些应用程序添加到规则的允许应用程序中。

由于驱动程序的限制,运行 AUFS 存储驱动程序的容器平台在保护模式下创建/修改文件时将不支持拒绝(阻止)操作。该行为与监控模式相同,在可疑活动时发出警报。

文件访问规则的优先顺序

容器可以从多个自定义组和用户创建的自动学习组中继承文件访问规则。

如果文件名与自动学习组的预定义访问规则和多个组的规则继承发生冲突,文件访问规则将按照下述顺序进行优先级排序。

  • 具有阻止访问的文件访问规则(最高优先级)

  • 启用递归的文件访问规则

  • 禁用递归的文件访问规则

  • 用户创建的文件访问规则,而不是预定义的文件访问规则。

示例

显示保护 /etc/hostname 文件的文件访问规则,并允许 vi 应用程序修改该文件。

文件规则

显示用于递归保护 /var/opt/ 目录下文件的文件访问规则,防止修改和读取。允许的应用程序 python 可以对这些文件进行读取和修改访问。

文件规则

显示用于保护 /etc/passwd 文件的访问规则,该文件属于预定义访问规则涵盖的文件之一,此规则用于调整文件访问操作,使其允许修改和读取。此自定义规则更改了预定义文件访问规则的默认操作。应用程序 Nano 可以对这些文件进行“读取和修改”访问。还必须将 Nano 应用程序(进程)作为“允许”规则添加到该服务的进程控制文件规则中,以便在服务内部运行 Nano 应用程序,否则该进程将被 SUSE® Security 阻止。

文件规则

显示在节点-pod 的服务模式处于发现模式时,检测到应用程序 python 访问 /var/opt 目录下的文件。仅当规则设置为阻止且服务处于发现模式时才会发生此情况。

文件规则

显示服务节点 pod.demo-nvqa 的预定义文件访问规则。可以通过点击文件访问规则选项卡右上角的信息图标 “show predefined filters” 来查看此服务。

文件规则

在通知 → 安全事件中显示一个示例安全事件:当应用程序 python 修改 /etc/hostname 文件的操作因自定义文件访问规则的阻止操作而被拒绝时,警报为文件访问被拒绝。

文件规则

其他响应

如果希望对文件系统违规行为采取其他特殊缓解措施、响应或警报,可以创建响应规则。请参见下面的示例以及运行时安全策略 → 响应规则部分以获取更多详细信息。

FileResponse

分离模式文件保护

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