策略:组

此菜单是查看和管理安全规则以及自定义组以用于规则的关键区域。它还用于在发现、监控和保护之间切换组的模式。容器组可以在与网络规则不同的模式下拥有处理/文件规则,如这里所述。请参阅以下各个部分以了解自定义合规检查、网络规则、处理和文件访问规则以及DLP/WAF检测的解释。注意:网络规则可以在任何组的组菜单中查看,但必须在网络规则菜单中单独编辑。

SUSE® Security会自动从您正在运行的应用程序中创建组。这些组以 'nv.' 为前缀。您还可以使用 CRD 或 REST API 手动添加它们,并且可以在发现、监控或保护任一模式下创建它们。网络和响应规则需要这些组定义。对于自动创建的组(以’nv’开头的’学习’组),SUSE® Security将在发现模式下学习网络和处理规则并添加它们。自定义组不会自动学习和填充规则。注意:'nv.'组默认启用零漂移以进行处理/文件保护。

组

查看容器组并对每个组应用规则非常方便。SUSE® Security根据容器镜像创建组列表。例如,所有从一个Wordpress镜像启动的容器将位于同一组中。规则会自动创建并应用于容器组。

组屏幕的右上角还显示一个’可评分’图标,可以选择学习组并启用或禁用可评分复选框。这控制哪些容器用于计算仪表板中的安全风险评分。有关更多详细信息,请参见提高安全风险评分

组屏幕也是可以导入和导出“作为代码的安全策略”的 CRD yaml 文件的地方。选择一个或多个组,然后点击导出组策略按钮以下载yaml文件。有关如何使用CRD的更多详细信息,请参见CRD部分。重要说明:每个选定的组及通过网络规则链接的任何组将被导出(即该组及通过白名单网络规则连接的任何其他组)。

未使用组的自动删除

如果组中没有成员(容器),则可以由 SUSE® Security 自动删除学习组(非保留或自定义组)。此时间段可以在设置 → 中进行配置。

主机保护 - '节点’组

SUSE® Security自动创建一个名为’nodes’的组,代表集群中的每个节点(主机)。SUSE® Security提供对主机可疑处理(如端口扫描、反向shell等)和特权提升的自动基本监控。此外,SUSE® Security将在发现模式下学习每个节点的进程行为,以将这些进程列入白名单,类似于对容器进程的处理方式。 在发现模式下,'本地'(学习到的)进程规则列表是集群中所有节点的所有进程的组合。

然后可以将节点置于监控或保护模式,在监控模式下,SUSE® Security会在任何进程启动时发出警报,而在保护模式下会阻止该进程。

nodeGroup

要启用具有处理控制文件规则的主机保护,请选择’nodes’组并查看节点上的学习到的处理。如有需要,可以通过添加、删除或编辑处理规则进行自定义。然后将模式切换为监控或保护。

在保护模式下,网络规则中显示的节点的网络连接违规行为永远不会被阻止。在节点的保护模式下,仅阻止进程违规行为。

自定义组

可以通过输入组的标准手动添加组。注意:自定义创建的组没有保护模式。这是因为它们可能包含来自不同基础组的容器,每个组可能处于不同的模式,从而导致行为上的混淆。

可以通过以下方式创建组:

  • 图像

    通过容器的镜像名称选择容器。示例:image=wordpress, image@redis

  • 节点

    通过运行它们的节点选择容器。示例:node=ip-12-34-56-78.us-west-2

  • 单个容器

    通过实例名称选择容器。示例:container=nodejs_1, container@nodejs

  • 服务

    通过服务选择容器。如果容器是通过 Docker Compose 部署的,则其服务标签值将为 "project_name:service_name";如果容器是通过 Docker swarm 模式服务部署的,则其服务标签值将为 swarm 服务名称。

  • 标签

    通过标签选择容器。示例:com.docker.compose.project=wordpress, location@us-west

  • 地址

    通过 DNS 名称或 IP 地址范围创建组。示例:address=www.google.com, address=10.1.0.1, address=10.1.0.0/24, address=10.1.0.1-10.1.0.25。DNS 名称可以是任何可解析的名称。地址条件不接受 != 运算符。请参见下面的特殊虚拟主机 'vh' 地址组。

可以使用混合条件类型创建组,除了 'address' 类型,不能与其他条件一起使用。混合条件在条件之间强制执行一个 ‘AND’ 操作,例如标签 service_type=data AND image=mysql。一个或多个条件的多个条目被视为 OR,例如 address=google.com OR address=yahoo.com。注意:为了帮助分析进出连接,可以从仪表板 → 的进出详细信息部分下载进出 IP 列表作为暴露报告。

支持对镜像、节点、容器、服务和标签标准进行部分匹配。例如,image@redis 选择镜像名称包含 'redis' 子字符串的容器;image^redis 选择镜像名称以 'redis' 开头的容器。

不建议使用地址标准来匹配内部 IP 或子网,特别是那些受到执行者保护的,建议使用它们的元数据,例如镜像、服务或标签。地址组的典型用例是定义托管容器与外部 IP 子网之间的策略,例如在互联网上或另一个数据中心运行的服务。地址组没有组成员。

可以在标准中使用通配符 '',例如 'address=.google.com'。为了更灵活的匹配,使用波浪号 '~' 表示希望进行正则表达式匹配。例如,匹配标签 'policy~public.*-ext1' 的策略标签。

在标准中,等号 '=' 后使用的特殊字符可能无法正确匹配。例如,点 '.'在 'policy=public.' 中将无法正确匹配,应该使用正则表达式匹配,例如 'policy~public.'。

保存新组后,SUSE® Security 将显示该组中的成员。然后可以使用这些组创建规则。

基于虚拟主机('vh')的网络策略

自定义组可以支持基于虚拟主机的地址组。这使得一个用例成为可能,其中两个不同的 FQDN 地址解析为相同的 IP 地址,但每个 FQDN 应强制执行不同的规则。可以使用 ‘address=vh:xxx.yyy’ 指示符创建一个新的自定义组 ‘vh:’ 以启用此保护。然后,网络规则可以使用自定义组作为 ‘From’ 源,基于虚拟主机名(而不是解析的 IP 地址)来强制执行虚拟主机的不同规则。

自定义组示例

一般标准

  • 选择所有容器(以下任一示例均可)

    container=∗ service=∗

  • 选择名称空间为 'default' 的所有容器(名称空间从 v2.2 开始支持)。

    namespace=default

  • 选择所有服务名称以’nginx’开头的容器

    service=nginx∗

  • 选择所有服务名称包含’etcd’的容器

    service=∗etcd∗

  • 选择名称空间为 'apache1' 或 'apache2' 的所有容器(每个条目后按回车)。

    namespace=apache1 namespace=apache2

  • 选择不在 'apache1' 和 'apache2' 名称空间中的所有容器(每个条目后按回车)。

    namespace!=apache1 namespace!=apache2

  • 选择名称空间为 'apache1~9' 的所有容器。

    namespace~apache[1-9]

IP 地址标准

  • 所有外部 IP 地址

    请在规则中使用默认组'`external’

  • IP 子网 10.0.0.0/8

    address=10.0.0.0/8

  • IP 范围

    address=10.0.0.0-10.0.0.15

  • dropbox.com 及其子域(每个条目后按回车)。

    address=dropbox.com address=*.dropbox.com