网络攻击者通常会利用容器环境中存在的漏洞,通过在文件中植入恶意代码、非法暗链等方式篡改文件内容,进行非法牟利或者恶意商业攻击等活动。容器文件防御功能可实时监控容器内目录或文件,并在容器内目录或文件被恶意篡改时产生告警或拦截篡改行为,保障容器环境正常运行。本文介绍如何创建文件防御规则实现对容器内文件的安全防护。
使用限制
仅支持防护已接入云安全中心的集群。如需防护自建集群,您需要先将自建集群接入云安全中心,具体操作,请参见接入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会完全失效。
前提条件
已在需要防护的集群部署的服务器中安装了云安全中心客户端。具体操作,请参见安装客户端。
新建规则
登录云安全中心控制台。在控制台左上角,选择需防护资产所在的区域:中国或全球(不含中国)。
在左侧导航栏,选择 。
在容器文件防御页面,单击新建规则。
在新建规则面板,配置规则参数,单击下一步。
文件防护目录、进程白名单和文件目录白名单均支持使用通配符。规则生效采用完全匹配的方式,具体规则如下(以/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/*
执行动作
在下拉列表中选择检测到篡改行为时的执行动作。可选项:
告警:云安全中心识别到文件防护目录被篡改时,只产生告警。
拦截:云安全中心识别到文件防护目录被篡改时,产生告警并拦截对应进程。
说明建议您先开启告警模式。在确定正常情况下业务不会触发文件防御告警后,再开启拦截模式,以避免误拦截正常进程。如果正常业务被拦截,您可以将相应进程加入进程白名单。
告警
选择规则生效的集群名称和容器组标签,单击确定。
推荐选择以
app
为开头的容器组标签。Kubernetes中的标签(Label)是一种键值对,用于标记和分类Kubernetes资源(例如Pod、Deployment、Service等)。您可以根据应用场景、功能或用途等自定义标签,以便更好地管理和操作Kubernetes资源。以app
开头的键是一种围绕应用(application)概念组织资源的方式。关于标签的更多信息,请参见推荐使用的标签。如果下拉列表中无可选的容器组标签,您需要手动输入容器组标签。如需规则对同一个集群中的多个容器组标签或多个集群生效,您可以单击操作列的增加配置多条集群和容器组标签信息。
管理规则
新建规则后,在容器文件防御页面的规则列表中,您可以根据需要执行以下操作:
启用或禁用规则
打开或关闭目标规则启用开关列的开关,可以开启或关闭该规则。
编辑规则
单击目标规则操作列的编辑,可以修改规则名称、规则配置和生效范围。
删除规则
重要规则删除后不可恢复,请您确认无需使用该规则后,再执行删除操作。
单击目标规则操作列的删除,并在提示对话框,单击确定,删除该规则。
查看告警结果
创建并开启容器文件防御规则后,在检测响应 > 安全告警处理页面,单击容器页签,并将告警类型选择为容器主动防御,告警名称为文件防御的告警即为容器文件防御功能产生的告警。根据规则配置的执行动作分别产生以下告警:
执行动作为告警的规则产生的安全告警为未处理状态,建议您及时处理相关告警。具体操作,请参见查看和处理告警事件。
执行动作为拦截的规则产生的安全告警为拦截成功状态,云安全中心已自动处理了此类告警,您可以在已处理告警列表中查看此类告警。
支持的操作系统和内核版本
操作系统 | 内核版本号 |
CentOS(64位) |
|
Alibaba Cloud Linux(64位) |
|
Ubuntu(64位) |
|
Anolis OS(64位) |
|
RHEL(64位) |
|