容器主动防御

容器主动防御功能从镜像自身安全、运行时安全、运行环境安全多维度主动检测容器启动或运行时存在的安全风险。通过配置相应规则,您可以拦截风险镜像运行、停止不可信进程和阻断容器逃逸行为,提升整体容器运行环境的安全水位。本文介绍如何配置风险镜像阻断、非镜像程序防御和容器防逃逸规则。

规则说明

您可以参考以下信息,根据实际需要选择对应的防御规则。

规则类型

规则说明

风险镜像阻断

创建风险镜像阻断规则后,在指定集群内使用镜像创建资源时,云安全中心会对镜像进行安全校验,对命中风险镜像阻断规则的镜像执行拦截、告警或放行动作,确保集群内启动的镜像符合您的安全要求。

风险镜像阻断非镜像程序防御

创建非镜像程序防御规则后,云安全中心可检测并拦截镜像外的程序启动,主动防御恶意软件的入侵,帮助您防御已知或未知的攻击模式。

容器防逃逸

容器防逃逸功能可以从进程、文件、系统调用等多种维度检测高风险行为,在容器与宿主机之间建立防护屏障,有效阻断逃逸行为保障容器运行时安全。该功能可拦截攻击者利用容器漏洞逃逸到宿主服务器上的攻击,有助于提升服务器系统的安全性。

版本限制说明

仅云安全中心的旗舰版支持该功能,其他版本不支持。购买和升级云安全中心服务的具体操作,请参见购买云安全中心升级与降配

风险镜像阻断

支持的集群类型

风险镜像阻断功能目前仅支持容器服务 Kubernetes 版 ACK(Container Service for Kubernetes)的部分集群类型,具体支持情况如下。

容器服务ACK的集群类型

是否支持

ACK托管集群

支持

ACK专有版集群

支持

ACK Serverless集群

不支持

ACK边缘托管版集群

不支持

注册集群

不支持

规则原理

为集群创建风险镜像阻断规则之后,当您在该集群内使用镜像创建资源时(如创建Pod),会触发安全风险校验请求至云安全中心,云安全中心会按照该集群的风险镜像阻断规则,校验该镜像是否存在规则配置内的风险,对命中风险镜像阻断规则的镜像,云安全中心会对其执行告警、拦截或放行的操作,对于执行告警、拦截动作的镜像,会产生一条关于该镜像安全风险校验结果的告警事件。

同一集群配置多条规则时,每条规则都会生效;命中多条规则时,会上报多条告警并执行相应操作。

如果您在同一规则内同时配置了多个配置项,命中任意一项配置后,云安全中心会立即执行规则动作,不会继续匹配其他配置项。规则内配置项匹配的顺序依次为:未扫描镜像、基线、互联网恶意镜像、恶意样本、漏洞、敏感文件、存在构建风险。

前提条件

创建防御规则前,请确保已在容器服务ACK控制台安装安全规则治理组件:gatekeeper、policy-template-controller和logtail-ds。具体操作,请参见步骤一:安装或升级安全策略管理组件

新建规则

说明

每个集群最多支持创建40个防御规则。

  1. 登录云安全中心控制台。在控制台左上角,选择需防护资产所在的区域:中国全球(不含中国)

  2. 在左侧导航栏,选择防护配置 > 容器防护 > 容器主动防御

  3. 选择风险镜像阻断规则类型,单击新建规则

    如果您已经为集群创建了防御规则,您还可以在已有的规则列表中通过复制规则快捷创建新的规则。您可以单击已有规则操作列的复制复制规则面板上根据您的业务需要修改规则的配置,然后单击确定,完成规则创建。

  4. 新建规则面板,定义规则,然后单击下一步

    配置项

    说明

    规则名称

    在下拉列表中选择规则模板并填写规则的名称。您可以选择空白模板创建一组自定义配置项,也可以选用包含一组预定义风险配置项的模板。

    规则描述

    填写规则的描述。

    规则配置

    支持以下规则配置,选中对应规则复选框代表开启检测,取消选中复选框代表关闭检测。

    • 未扫描镜像

      开启检测后,支持检测未经过镜像安全扫描功能扫描的镜像的启动。

      重要

      开启该配置项时,建议先配置规则动作为告警。如有更严格的安全管控需求,可先观察一段时间内的告警事件,确认该规则不会影响正常业务后再切换为拦截。

    • 互联网恶意镜像

      开启检测后,支持检测在互联网上被标识为恶意的镜像的启动,例如从公开镜像仓库下载的恶意镜像或从Dockerhub公开仓库拉取的包含后门木马等恶意程序的镜像等。

    • 基线

      开启检测后,支持检测容器镜像是否符合预定义的安全配置规范和最佳实践。

    • 漏洞

      开启检测后,支持检测在镜像中存在的可能导致容器环境安全风险的漏洞,支持检测镜像中存在的应用程序相关的安全漏洞。

    • 恶意样本

      开启检测后,对容器镜像和容器运行时可能存在的恶意文件、恶意代码和恶意行为进行检测。

    • 敏感文件

      开启检测后,支持检测常见敏感文件。

    • 存在构建风险

      开启检测后,支持检测镜像构建指令风险。

    重要
    • 镜像命中对应规则后,会根据规则配置生成告警,并根据规则动作执行相应操作。

    • 您可以按照业务需要,配置基线、漏洞、恶意样本、敏感文件和存在构建风险的具体检测规则。

    • 每一类规则配置项的可选条件之间为“或”的关系。例如在漏洞配置中,如果您配置风险等级为高危,并指定了一些具体的CVEID,那么只要启动的镜像包含高危漏洞,或者包含您指定的CVEID漏洞,则会命中该规则。

    规则动作

    选择命中已开启检测的规则后,云安全中心的执行动作。可选项:

    • 告警:镜像启动后,会在安全告警处理页面产生一条规则动作告警的事件。

    • 拦截:镜像启动时,命中规则的镜像将被阻止启动,并且会在安全告警处理页面产生一条规则动作拦截的事件。

    • 放行:镜像启动后,会在安全告警处理页面产生一条规则动作放行的告警。

    加白名单

    单击+新增规则填写需要加入白名单的镜像tag名称。最多可设置20个白名单。将镜像加入规则白名单后,该镜像启动时,云安全中心将不会对该镜像进行安全风险的校验。

    支持填写部分关键字进行模糊匹配。以镜像地址yundun-example-registry.cn-hangzhou.aliyuncs.com/yundun-example/yun-repo:test为例,您可以填写部分关键字进行模糊匹配。例如以下白名单配置方式均可以匹配到上述镜像地址:

    • yun-repo

    • test

    • yun-repo:test

    • repo:test

  5. 选择防护范围,然后单击确定

    单击集群镜像标签页签,可切换到对应页签选择需要防护的资产。

查看告警结果

创建风险镜像阻断规则后,在云安全中心控制台检测响应 > 安全告警处理页面,将告警类型选择为风险镜像阻断,即可查看风险镜像阻断的相关告警。您可以单击目标告警操作列的详情,根据告警详情页面的处置建议,处理相关风险事件。

风险镜像阻断告警

管理规则

创建风险镜像阻断规则后,您可以根据需要执行以下操作:

  • 查看规则防护范围

    单击目标防护规则防护范围列的数字,即可在防护范围面板查看该规则防护的集群、镜像和标签范围。

  • 编辑规则

    单击目标防护规则操作列的编辑,即可在编辑规则面板修改该规则的定义和防护范围。

  • 复制规则

    单击目标防护规则操作列的复制,即可在复制规则面板上修改该规则的定义和防护范围,快速创建一条新规则。

  • 删除规则

    重要

    删除规则后,对防护范围内集群的安全防护将失效并且该规则无法恢复,请谨慎操作。

    单击目标防护规则操作列的删除,并在提示对话框,单击确定删除,即可删除该规则。

非镜像程序防御

在容器环境下,基础软件已包含在容器镜像中,在容器运行过程中无需安装和修改软件。基于此情况,在容器运行期间来源于镜像外的程序启动属于异常行为,该行为很可能是黑客植入木马等恶意软件。非镜像程序防御功能提供此类异常行为的检测和拦截能力,为容器环境提供运行时安全防护。

规则生效的容器镜像限制

规则中容器镜像必须满足以下要求,否则容器镜像无法触发对应的防御规则和白名单规则。

  • 容器中运行程序的完整路径长度不超过1023个字符。

  • 容器集群的命名空间长度不超过287个字符。

  • 容器中云安全中心客户端进程AliYunDun ≥ aegis_12_13,AliHips ≥ 00_43。

  • 对于白名单规则中容器镜像,还需确保对应容器镜像名称的长度不超过287个字符。

管理系统规则

  • 规则启用

    • 云安全中心默认提供非镜像程序防御系统规则,并且为未配置过非镜像程序防御自定义规则的用户默认开启系统规则。系统规则会为所有已接入云安全中心的集群开启非镜像程序启动告警。

    • 支持手动启用或关闭系统规则。

  • 规则动作

    系统规则的规则动作为告警,即发生非镜像程序启动行为时,云安全中心只提供告警,不拦截。

  • 查看规则

    您可以在云安全中心控制台防护配置 > 容器防护 > 容器主动防御页面的非镜像程序防御规则的系统规则页签下,查看非镜像程序防御系统规则。

  • 规则更新

    支持修改系统规则生效的集群范围。如果集群有变更或者新增集群资产时,系统规则会自动将新增集群加入防护范围。

  • 规则使用

    • 初次使用非镜像程序防御功能时,建议您充分观察系统规则告警是否存在误报。

    • 系统规则不支持设置白名单,也不支持拦截风险行为。如果您需要设置白名单或拦截风险行为,您可以新建自定义规则。

    • 新建自定义规则后,系统规则会被自动关闭且不支持再次开启。如需开启系统规则,需要删除所有自定义规则。

新建自定义规则

  1. 登录云安全中心控制台。在控制台左上角,选择需防护资产所在的区域:中国全球(不含中国)

  2. 在左侧导航栏,选择防护配置 > 容器防护 > 容器主动防御

  3. 在规则类型列表处,单击非镜像程序防御

  4. 自定义规则页签,单击新建规则

  5. 新建规则面板,定义规则,然后单击下一步

    配置项

    说明

    规则名称

    输入规则名称。

    规则描述

    输入规则描述。

    开关状态

    打开或关闭规则。可选项:

    • 打开:该规则创建后为开启状态,会自动防护在防护范围内的集群。

    • 关闭:该规则创建后为关闭状态,防护规则不生效。

    防御动作

    选择规则的防御动作。可选项:

    • 告警:云安全中心识别到不可信进程时,只产生告警。

    • 拦截:云安全中心识别到不可信进程时,产生告警并拦截对应进程。

      说明

      建议您先开启告警模式。在确定正常情况下业务不会在容器运行期间安装并启动不属于镜像的可执行程序后,再开启拦截模式,以避免误拦截正常进程。

    加文件目录白名单

    单击+新增规则,输入需要加白名单的文件目录。配置示例:/user/name1

    加镜像白名单

    单击+新增规则,输入需要加白名单的镜像名。以镜像地址yundun-example-registry.cn-hangzhou.aliyuncs.com/yundun-example/yun-repo:test为例,您可以填写部分关键字进行模糊匹配。以下白名单配置方式均有效:

    • yun-repo

    • test

    • yun-repo:test

    • repo:test

  6. 单击确定,确认创建自定义规则,系统将自动关闭系统规则。

  7. 选择当前规则生效的集群,单击确定

    支持选择已接入云安全中心的集群。一个集群只支持配置一个防御规则,如果某集群已属于其他规则的防护范围内,您将无法再次选择该集群。

查看告警结果

创建并开启非镜像程序防御规则后,在云安全中心控制台检测响应 > 安全告警处理页面,将告警类型选择为容器主动防御,告警名称为非镜像程序启动的告警即为非镜像程序防御功能产生的告警。根据规则配置的防御动作分别产生以下告警:

  • 防御动作为告警的规则产生的安全告警为未处理状态,建议您及时处理相关告警。具体操作,请参见查看和处理安全告警image

  • 防御动作为拦截的规则产生的告警为目标进程不存在结束进程成功状态,云安全中心已自动处理了此类告警,您可以在已处理告警列表中查看此类告警。以下是两种状态的说明:

    • 目标进程不存在:表示该进程存活时间较短,在云安全中心处置前已停止运行,无需再处理。

    • 结束进程成功:表示云安全中心已拦截该进程的运行,无需您手动处理。

    image

管理规则

新建规则后,在非镜像程序防御的规则列表中,您可以根据需要执行以下操作:

  • 查看规则防护范围

    单击目标防护规则防护范围列的数字,即可在防护范围面板查看该规则防护的集群范围。

  • 启用或禁用规则

    打开或关闭目标规则启用开关列的开关,可以开启或关闭该规则。

  • 编辑规则

    单击目标规则操作列的编辑,自定义规则支持修改规则名称、规则描述、开关状态、防御动作、白名单设置和防护范围。

  • 删除规则

    重要
    • 系统规则不支持删除。

    • 规则删除后不可恢复,请您确认无需使用该规则后,再执行删除操作。

    单击目标规则操作列的删除,并在提示对话框,单击确定,删除该规则。

容器防逃逸

容器场景中由于容器与宿主服务器共享操作系统内核(安全容器除外),攻击者可利用容器漏洞提升权限实现对宿主服务器系统或其他容器的访问控制,影响整个系统安全性。通过配置容器防逃逸规则您可以有效阻断逃逸行为,保障容器运行时安全。

支持的集群类型

该功能仅支持检测同时满足以下条件的集群:

  • 集群所在服务器已接入云安全中心。

  • ACK托管集群ACK专有集群或已接入云安全中心的自建K8s集群。

前提条件

  • 已开启恶意主机行为防御网站后门连接防御中的任意功能。具体操作,请参见主动防御

  • 已开启容器防逃逸功能。具体操作,请参见容器防逃逸

管理系统规则

  • 规则启用

    • 云安全中心提供多种容器防逃逸规则,默认情况下,所有已接入云安全中心的集群全量开启容器防逃逸规则,云安全中心默认开启的容器防逃逸规则统称为系统规则。

    • 支持手动启用或关闭系统规则。

  • 规则动作

    系统规则的规则动作为告警,即当发生逃逸行为时系统规则只告警,不拦截逃逸行为。

  • 查看规则

    您可以在云安全中心控制台防护配置 > 容器防护 > 容器主动防御页面容器防逃逸规则的系统规则页签下,查看系统规则的详细信息。

  • 规则更新

    支持修改系统规则生效的集群范围。如果集群有变更或者新增集群资产时,系统规则会自动将新增集群加入防护范围。

  • 规则使用

    • 初次使用容器防逃逸功能时,建议您在系统规则下充分观察告警是否有误报。在确认无误报时,您可以将规则动作变更为拦截。

    • 系统规则不支持设置白名单,也不支持拦截风险行为。如果您需要设置白名单或拦截风险行为,您可以新建自定义规则。

    • 新建指定规则的自定义规则后,对应的系统规则会自动关闭。

新建自定义规则

自定义规则和系统规则可选择的规则是相同,自定义规则支持配置白名单和拦截风险操作。

  1. 登录云安全中心控制台。在控制台左上角,选择需防护资产所在的区域:中国全球(不含中国)

  2. 在左侧导航栏,选择防护配置 > 容器防护 > 容器主动防御

  3. 在规则类型列表处,单击容器防逃逸

  4. 自定义规则页签,单击新建规则

  5. 新建规则面板,定义规则,单击下一步

    配置项

    说明

    规则名称

    输入规则名称。

    规则类型

    在下拉列表中选择规则类型。

    您可以根据防护需求,在云安全中心提供的规则类型中选择所需类型。

    选择规则类型后,默认选中该类型支持的所有检测项。如果您不需要开启指定检测项,您可以取消选中该检测项的复选框。

    请在控制台查看支持选择的规则类型和检测项详情。

    防御动作

    选择防御动作。可选项:

    • 告警:云安全中心识别到规则中定义的风险时,只产生告警。

    • 拦截:云安全中心识别到规则中定义的风险时,产生告警并拦截对应进程或操作。

    重要

    在某些正常业务场景下可能会触发规则。配置规则时,建议您在告警模式下充分观察后,再为该规则开启拦截模式。

    加白名单

    单击+新增规则填写需要加入白名单的镜像名。最多可设置20个白名单。

    支持填写部分关键字进行模糊匹配。以镜像地址yundun-example-registry.cn-hangzhou.aliyuncs.com/yundun-example/yun-repo:test为例,您可以填写部分关键字进行模糊匹配。以下白名单配置方式均有效:

    • yun-repo

    • test

    • yun-repo:test

    • repo:test

    重要

    将镜像加入规则白名单后,云安全中心不会对该镜像检查逃逸行为,请您谨慎操作。

    完成该步骤后,云安全中心已在规则列表中创建对应规则。

  6. 选择需要防护的集群,并单击确定

    支持选择已接入云安全中心防护的集群。如果您需要防护K8s自建集群,请先将自建集群接入云安全中心。具体操作,请参见接入K8s自建集群

查看告警结果

创建并开启容器防逃逸规则后,在云安全中心控制台的页面,将告警类型选择为容器防逃逸,即可查看容器防逃逸功能相关告警。根据容器防逃逸规则配置的防御动作分别产生以下告警:

  • 防御动作为告警的规则产生的安全告警为未处理状态,建议您及时处理相关告警。具体操作,请参见查看和处理安全告警未处理告警

  • 防御动作为拦截的规则产生的告警为拦截成功状态,表示云安全中心已自动拦截逃逸行为,无需您手动处理。拦截成功

管理规则

  • 查看规则防护范围

    单击目标防护规则防护范围列的数字,即可在防护范围面板查看该规则防护的集群范围。该面板的可拦截状态列是指集群所在服务器的云安全中心插件状态,只有插件状态正常规则才能对集群生效。通过在功能设置页面为集群所在服务器打开恶意主机行为防御网站后门连接防御开关,可以使插件状态变为正常。打开相应开关的具体操作,请参见主机防护设置

  • 启用或禁用规则

    打开或关闭目标规则启用开关列的开关,可以开启或关闭该规则。

  • 编辑规则

    单击目标规则操作列的编辑,可以修改规则名称、规则类型、开关状态、防御动作和防护范围。编辑后的规则10分钟后生效,请耐心等待。

  • 删除规则

    重要
    • 系统规则不支持删除。

    • 规则删除后不可恢复,请您确认无需使用该规则后,再执行删除操作。

    单击目标规则操作列的删除,并在提示对话框,单击确定,删除该规则。

相关文档