容器文件防御

网络攻击者通常会利用容器环境中存在的漏洞,通过在文件中植入恶意代码、非法暗链等方式篡改文件内容,进行非法牟利或者恶意商业攻击等活动。容器文件防御功能可实时监控容器内目录或文件,并在容器内目录或文件被恶意篡改时产生告警或拦截篡改行为,保障容器环境正常运行。本文介绍如何创建文件防御规则实现对容器内文件的安全防护。

使用限制

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

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

  • 部署集群的服务器操作系统和内核版本需要在支持范围内。支持范围,请参见支持的操作系统和内核版本

  • 单个集群中每个容器组标签对应的防护目录数(对应的文件防御规则为启用状态)不能超过10个。否则,该集群的文件防御将失效。

  • 单个集群内所有启用状态的防御规则的容器组标签去重后不能超过10个,否则,该集群的文件防御将失效。

    例如:集群Cluster01有一个容器组Pod01,Pod01上只有一个标签Label01。为集群Cluster01创建了12条容器文件防御规则Rule01~Rule12。

    Rule01中,生效的容器组标签为集群Cluster01的Label01;

    Rule02中,生效的容器组标签为集群Cluster01的Label02(即使目前没有容器组使用该标签,仍可以将该标签设置为生效容器组标签);

    ……

    Rule09中,生效的容器组标签为集群Cluster01的Label09;

    Rule10中,生效的容器组标签为集群Cluster01的Label10;

    Rule11中,生效的容器组标签为集群Cluster01的Label10;

    Rule12中,生效的容器组标签为集群Cluster01的Label10;

    此时,对集群Cluster01生效的容器组标签有12个,但是去重后标签总数只有10个(Label01~Label10),容器文件防护可以正常生效。

    如果您再新建并启用一条规则:Rule13中,生效的容器组标签为集群Cluster01的Label10和Label11,此时去重后的标签总数有11个,容器文件防御对集群Cluster01会完全失效。

前提条件

已在需要防护的集群部署的服务器中安装了云安全中心客户端。具体操作,请参见安装客户端

新建规则

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

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

  3. 容器文件防御页面,单击新建规则

  4. 新建规则面板,配置规则参数,单击下一步

    文件防护目录进程白名单文件目录白名单均支持使用通配符。规则生效采用完全匹配的方式,具体规则如下(以/dir1/test 为例说明,仅说明规则匹配逻辑):

    • 对于/dir1/test,只能匹配/dir1/test,无法匹配/dir1/test/1.html、/dir1/test/dir1/2.html等。

      • 如果文件防护目录为/dir1/test,则只能保护/dir1/test本身(即删除或重命名/dir1/test目录会告警或拦截),不能保护/dir1/test目录中的子目录和文件。

      • 如果进程白名单为/dir1/test,只有/dir1/test本身被加入了白名单,即只有可执行文件/dir1/test创建的进程访问防护目录时,不会产生告警或拦截;/dir1/test/1.html创建的进程访问防护目录时,会产生告警或拦截。

      • 如果文件防护目录为/dir1/*,文件目录白名单为/dir1/test,只有/dir1/test目录本身被加入了白名单,即删除或重命名/dir1/test的操作,不会产生告警或拦截。修改/dir1/test/1.html中的内容,会产生告警或拦截。

        说明

        所有规则对于文件防护目录进程白名单文件目录白名单的生效逻辑是类似的,仅对匹配到的路径生效。

    • 对于/dir1/test*,可以匹配/dir1/test、/dir1/test/1.html、/dir1/test/dir1/2.html、/dir1/test1/1.html、/dir1/test2/2.html等。

    • 通配符也可以出现在路径中,例如/dir1/test/*.html,可以匹配/dir1/test/index.html、/test/dir1/index.html。

    配置项

    描述

    配置示例

    规则名称

    输入规则名称。长度为6~50个字符,以字母或者中文字符开头,可包含数字、下划线(_)和短划线(-)。

    Cluster01

    规则配置

    文件防护目录

    设置需要防护的目录。配置文件防护目录需满足以下要求:

    • 以/开始。仅支持输入一个目录。

    • 防护目录路径长度需小于500字符。

    • 一条规则只能防护一个目录。如需防护多个目录。您可以单击操作增加配置多条目录。

    • 单个容器文件防御规则最多支持配置10条防护目录。

    /home/app/label/*

    说明

    如果您需要防护/home目录及该目录下的所有子目录和文件,建议您配置两条防护目录:

    • /home

    • /home/*

    您也可以配置为/home*,相较于上述的两条规则,/home*还可以防护/home1/、/home2/等目录。

    进程白名单

    设置可以修改防护目录的进程名单和可以被修改的文件目录,加入白名单的进程修改文件或修改文件目录白名单中的目录时,不会触发告警或拦截。配置进程白名单或文件目录需满足以下要求:

    • 单个进程或文件目录长度不超过50个字符。

    • 多个进程或文件目录用半角分号(;)分隔。

    • 一个文件防护目录下,最多支持配置10个白名单进程、10个文件目录白名单。

    设置进程白名单和文件目录白名单应遵循以下原则:

    • 最小权限原则:只有当进程、文件或目录的访问对容器的正常运行是必不可少的时候,才将其列入白名单。

    • 精确指定:设置指定的进程、文件和目录,慎重使用通配符,避免使用过于宽泛的路径,减少不必要的安全风险。

    /bin/cp;/usr/bin/mv;/bin/vi

    文件目录白名单

    /home/app/label/logs/*

    执行动作

    在下拉列表中选择检测到篡改行为时的执行动作。可选项:

    • 告警:云安全中心识别到文件防护目录被篡改时,只产生告警。

    • 拦截:云安全中心识别到文件防护目录被篡改时,产生告警并拦截对应进程。

    说明

    建议您先开启告警模式。在确定正常情况下业务不会触发文件防御告警后,再开启拦截模式,以避免误拦截正常进程。如果正常业务被拦截,您可以将相应进程加入进程白名单。

    告警

  5. 选择规则生效的集群名称和容器组标签,单击确定

    推荐选择以app为开头的容器组标签。Kubernetes中的标签(Label)是一种键值对,用于标记和分类Kubernetes资源(例如Pod、Deployment、Service等)。您可以根据应用场景、功能或用途等自定义标签,以便更好地管理和操作Kubernetes资源。以app开头的键是一种围绕应用(application)概念组织资源的方式。关于标签的更多信息,请参见推荐使用的标签

    如果下拉列表中无可选的容器组标签,您需要手动输入容器组标签。如需规则对同一个集群中的多个容器组标签或多个集群生效,您可以单击操作列的增加配置多条集群和容器组标签信息。

管理规则

新建规则后,在容器文件防御页面的规则列表中,您可以根据需要执行以下操作:

  • 启用或禁用规则

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

  • 编辑规则

    单击目标规则操作列的编辑,可以修改规则名称、规则配置和生效范围。

  • 删除规则

    重要

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

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

查看告警结果

创建并开启容器文件防御规则后,在检测响应 > 安全告警处理页面,单击容器页签,并将告警类型选择为容器主动防御,告警名称为文件防御的告警即为容器文件防御功能产生的告警。根据规则配置的执行动作分别产生以下告警:

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

    image

  • 执行动作为拦截的规则产生的安全告警为拦截成功状态,云安全中心已自动处理了此类告警,您可以在已处理告警列表中查看此类告警。

    image

支持的操作系统和内核版本

操作系统

内核版本号

CentOS(64位)

  • 3.10.0-123.9.3.el7.x86_64

  • 3.10.0-229.el7.x86_64

  • 3.10.0-327.10.1.el7.x86_64

  • 3.10.0-327.13.1.el7.x86_64

  • 3.10.0-327.22.2.el7.x86_64

  • 3.10.0-327.36.3.el7.x86_64

  • 3.10.0-327.el7.x86_64

  • 3.10.0-514.10.2.el7.x86_64

  • 3.10.0-514.16.1.el7.x86_64

  • 3.10.0-514.21.1.el7.x86_64

  • 3.10.0-514.26.2.el7.x86_64

  • 3.10.0-514.6.2.el7.x86_64

  • 3.10.0-514.el7.x86_64

  • 3.10.0-693.11.1.el7.x86_64

  • 3.10.0-693.11.6.el7.x86_64

  • 3.10.0-693.17.1.el7.x86_64

  • 3.10.0-693.2.2.el7.x86_64

  • 3.10.0-693.21.1.el7.x86_64

  • 3.10.0-693.5.2.el7.x86_64

  • 3.10.0-693.el7.x86_64

  • 3.10.0-862.11.6.el7.x86_64

  • 3.10.0-862.14.4.el7.x86_64

  • 3.10.0-862.2.3.el7.x86_64

  • 3.10.0-862.3.2.el7.x86_64

  • 3.10.0-862.3.3.el7.x86_64

  • 3.10.0-862.6.3.el7.x86_64

  • 3.10.0-862.9.1.el7.x86_64

  • 3.10.0-862.el7.x86_64

  • 3.10.0-957.1.3.el7.x86_64

  • 3.10.0-957.10.1.el7.x86_64

  • 3.10.0-957.12.1.el7.x86_64

  • 3.10.0-957.12.2.el7.x86_64

  • 3.10.0-957.21.2.el7.x86_64

  • 3.10.0-957.21.3.el7.x86_64

  • 3.10.0-957.27.2.el7.x86_64

  • 3.10.0-957.5.1.el7.x86_64

  • 3.10.0-957.el7.x86_64

  • 3.10.0-1062.1.1.el7.x86_64

  • 3.10.0-1062.1.2.el7.x86_64

  • 3.10.0-1062.12.1.el7.x86_64

  • 3.10.0-1062.18.1.el7.x86_64

  • 3.10.0-1062.4.1.el7.x86_64

  • 3.10.0-1062.4.2.el7.x86_64

  • 3.10.0-1062.4.3.el7.x86_64

  • 3.10.0-1062.7.1.el7.x86_64

  • 3.10.0-1062.9.1.el7.x86_64

  • 3.10.0-1062.el7.x86_64

  • 3.10.0-1127.10.1.el7.x86_64

  • 3.10.0-1127.13.1.el7.x86_64

  • 3.10.0-1127.18.2.el7.x86_64

  • 3.10.0-1127.19.1.el7.x86_64

  • 3.10.0-1127.8.2.el7.x86_64

  • 3.10.0-1127.el7.x86_64

  • 3.10.0-1160.11.1.el7.x86_64

  • 3.10.0-1160.15.2.el7.x86_64

  • 3.10.0-1160.2.2.el7.x86_64

  • 3.10.0-1160.21.1.el7.x86_64

  • 3.10.0-1160.24.1.el7.x86_64

  • 3.10.0-1160.25.1.el7.x86_64

  • 3.10.0-1160.31.1.el7.x86_64

  • 3.10.0-1160.36.2.el7.x86_64

  • 3.10.0-1160.41.1.el7.x86_64

  • 3.10.0-1160.42.2.el7.x86_64

  • 3.10.0-1160.45.1.el7.x86_64

  • 3.10.0-1160.49.1.el7.x86_64

  • 3.10.0-1160.53.1.el7.x86_64

  • 3.10.0-1160.59.1.el7.x86_64

  • 3.10.0-1160.6.1.el7.x86_64

  • 3.10.0-1160.62.1.el7.x86_64

  • 3.10.0-1160.66.1.el7.x86_64

  • 3.10.0-1160.el7.x86_64

  • 3.10.0-1160.71.1.el7.x86_64

  • 3.10.0-1160.76.1.el7.x86_64

  • 3.10.0-1160.80.1.el7.x86_64

  • 3.10.0-1160.83.1.el7.x86_64

  • 4.18.0-80.11.2.el8_0.x86_64

  • 4.18.0-147.3.1.el8_1.x86_64

  • 4.18.0-147.5.1.el8_1.x86_64

  • 4.18.0-147.8.1.el8_1.x86_64

  • 4.18.0-193.el8.x86_64

  • 4.18.0-193.1.2.el8_2.x86_64

  • 4.18.0-193.6.3.el8_2.x86_64

  • 4.18.0-193.14.2.el8_2.x86_64

  • 4.18.0-193.19.1.el8_2.x86_64

  • 4.18.0-193.28.1.el8_2.x86_64

  • 4.18.0-240.1.1.el8_3.x86_64

  • 4.18.0-240.10.1.el8_3.x86_64

  • 4.18.0-240.15.1.el8_3.x86_64

  • 4.18.0-240.22.1.el8_3.x86_64

  • 4.18.0-305.3.1.el8.x86_64

  • 4.18.0-305.7.1.el8_4.x86_64

  • 4.18.0-305.10.2.el8_4.x86_64

  • 4.18.0-305.12.1.el8_4.x86_64

  • 4.18.0-305.19.1.el8_4.x86_64

  • 4.18.0-305.25.1.el8_4.x86_64

  • 4.18.0-348.2.1.el8_5.x86_64

  • 4.18.0-348.7.1.el8_5.x86_64

  • 4.18.0-358.el8.x86_64

  • 4.18.0-365.el8.x86_64

Alibaba Cloud Linux(64位)

  • 4.4.95-1.al7.x86_64

  • 4.4.95-2.al7.x86_64

  • 4.4.95-3.al7.x86_64

  • 4.19.24-7.al7.x86_64

  • 4.19.24-7.14.al7.x86_64

  • 4.19.81-17.al7.x86_64

  • 4.19.81-17.1.al7.x86_64

  • 4.19.81-17.2.al7.x86_64

  • 4.19.91-18.al7.x86_64

  • 4.19.91-19.1.al7.x86_64

  • 4.19.91-21.al7.x86_64

  • 4.19.91-21.2.al7.x86_64

  • 4.19.91-22.1.al7.x86_64

  • 4.19.91-22.2.al7.x86_64

  • 4.19.91-23.al7.x86_64

  • 4.19.91-24.al7.x86_64

  • 4.19.91-24.1.al7.x86_64

  • 4.19.91-25.1.al7.x86_64

  • 4.19.91-25.3.al7.x86_64

  • 4.19.91-25.6.al7.x86_64

  • 4.19.91-25.7.al7.x86_64

  • 4.19.91-25.8.al7.x86_64

  • 4.19.91-26.al7.x86_64

  • 4.19.91-26.1.al7.x86_64

  • 4.19.91-26.4.al7.x86_64

  • 4.19.91-26.6.al7.x86_64

  • 4.19.91-26.5.al7.x86_64

  • 4.19.91-27.al7.x86_64

  • 5.10.23-5.al8.x86_64

  • 5.10.60-9.al8.x86_64

  • 5.10.84-10.2.al8.x86_64

  • 5.10.84-10.3.al8.x86_64

  • 5.10.84-10.4.al8.x86_64

  • 5.10.112-11.al8.x86_64

  • 5.10.112-11.1.al8.x86_64

  • 5.10.112-11.2.al8.x86_64

  • 5.10.134-12.al8.x86_64

  • 5.10.134-12.1.al8.x86_64

  • 5.10.134-12.2.al8.x86_64

  • 5.10.134-13.al8.x86_64

Ubuntu(64位)

  • 3.13.0-32-generic

  • 3.13.0-65-generic

  • 3.13.0-86-generic

  • 3.13.0-145-generic

  • 3.13.0-164-generic

  • 3.13.0-170-generic

  • 3.19.0-80-generic

  • 4.4.0-62-generic

  • 4.4.0-63-generic

  • 4.4.0-79-generic

  • 4.4.0-93-generic

  • 4.4.0-96-generic

  • 4.4.0-104-generic

  • 4.4.0-117-generic

  • 4.4.0-124-generic

  • 4.4.0-142-generic

  • 4.4.0-146-generic

  • 4.4.0-148-generic

  • 4.4.0-151-generic

  • 4.4.0-154-generic

  • 4.4.0-157-generic

  • 4.4.0-161-generic

  • 4.4.0-170-generic

  • 4.4.0-174-generic

  • 4.4.0-176-generic

  • 4.4.0-177-generic

  • 4.4.0-178-generic

  • 4.4.0-179-generic

  • 4.4.0-184-generic

  • 4.4.0-194-generic

  • 4.4.0-198-generic

  • 4.4.0-210-generic

  • 4.15.0-23-generic

  • 4.15.0-42-generic

  • 4.15.0-45-generic

  • 4.15.0-48-generic

  • 4.15.0-52-generic

  • 4.15.0-54-generic

  • 4.15.0-62-generic

  • 4.15.0-66-generic

  • 4.15.0-70-generic

  • 4.15.0-72-generic

  • 4.15.0-88-generic

  • 4.15.0-91-generic

  • 4.15.0-96-generic

  • 4.15.0-101-generic

  • 4.15.0-106-generic

  • 4.15.0-109-generic

  • 4.15.0-112-generic

  • 4.15.0-117-generic

  • 4.15.0-118-generic

  • 4.15.0-121-generic

  • 4.15.0-122-generic

  • 4.15.0-124-generic

  • 4.15.0-128-generic

  • 4.15.0-135-generic

  • 4.15.0-145-generic

  • 4.15.0-147-generic

  • 4.15.0-143-generic

  • 4.15.0-151-generic

  • 4.15.0-162-generic

  • 4.15.0-166-generic

  • 4.15.0-169-generic

  • 4.15.0-170-generic

  • 4.15.0-173-generic

  • 4.15.0-175-generic

  • 4.15.0-177-generic

  • 4.15.0-181-generic

  • 4.15.0-189-generic

  • 4.15.0-190-generic

  • 4.15.0-192-generic

  • 4.15.0-193-generic

  • 4.15.0-196-generic

  • 4.15.0-197-generic

  • 4.15.0-200-generic

  • 4.15.0-202-generic

  • 5.4.0-31-generic

  • 5.4.0-47-generic

  • 5.4.0-70-generic

  • 5.4.0-77-generic

  • 5.4.0-86-generic

  • 5.4.0-90-generic

  • 5.4.0-92-generic

  • 5.4.0-94-generic

  • 5.4.0-100-generic

  • 5.4.0-102-generic

  • 5.4.0-106-generic

  • 5.4.0-108-generic

  • 5.4.0-110-generic

  • 5.4.0-113-generic

  • 5.4.0-122-generic

  • 5.4.0-123-generic

  • 5.4.0-125-generic

  • 5.4.0-131-generic

  • 5.4.0-132-generic

  • 5.4.0-135-generic

Anolis OS(64位)

  • 3.10.0-1062.an7.x86_64

  • 3.10.0-1160.an7.x86_64

  • 3.10.0-1160.59.1.0.1.an7.x86_64

  • 3.10.0-1160.62.1.0.1.an7.x86_64

  • 3.10.0-1160.66.1.0.1.an7.x86_64

  • 3.10.0-1160.71.1.0.1.an7.x86_64

  • 3.10.0-1160.76.1.0.1.an7.x86_64

  • 3.10.0-1160.80.1.0.1.an7.x86_64

  • 3.10.0-1160.81.1.0.1.an7.x86_64

  • 4.19.91-25.2.an7.x86_64

  • 4.19.91-25.7.an7.x86_64

  • 4.19.91-26.an7.x86_64

  • 4.19.91-26.4.an7.x86_64

  • 4.19.91-26.5.an7.x86_64

  • 4.19.91-26.6.an7.x86_64

  • 4.19.91-27.an7.x86_64

  • 4.18.0-348.2.1.an8_4.x86_64

  • 4.18.0-348.12.2.an8.x86_64

  • 4.18.0-348.20.1.an8_5.x86_64

  • 4.18.0-348.23.1.an8_5.x86_64

  • 4.18.0-372.9.1.an8.x86_64

  • 4.18.0-372.16.1.an8_6.x86_64

  • 4.18.0-372.19.1.an8_6.x86_64

  • 4.18.0-372.26.1.an8_6.x86_64

  • 4.18.0-372.32.1.an8_6.x86_64

  • 4.19.91-25.7.an8.x86_64

  • 4.19.91-25.8.an8.x86_64

  • 4.19.91-26.an8.x86_64

  • 4.19.91-26.1.an8.x86_64

  • 4.19.91-26.4.an8.x86_64

  • 4.19.91-26.5.an8.x86_64

  • 4.19.91-26.6.an8.x86_64

RHEL(64位)

  • 3.10.0-1062.el7.x86_64

  • 3.10.0-1127.el7.x86_64

  • 3.10.0-1160.71.1.el7.x86_64

  • 4.18.0-80.el8.x86_64

  • 4.18.0-372.9.1.el8.x86_64