核心文件监控配置最佳实践

更新时间:2025-03-14 10:10:18

云安全中心核心文件监控功能能够实时监控服务器上核心文件的访问情况,包括读取、写入、删除、重命名和权限变更等操作,并及时发出告警,以防止核心文件被盗取或篡改。本文介绍配置核心文件监控规则的规范和示例,以及如何配置钉钉机器人以实现告警通知,可帮助您更好地使用该功能。

主机入侵检测与核心文件监控的关系

网络安全最佳实践建议采用多层纵深防御策略。主机入侵检测功能可以在大部分场景下发现可疑的入侵行为,其检测逻辑基于行为特征,关注已知或未知的恶意行为和系统活动。核心文件监控则专注于监控文件系统中的文件和目录的完整性,检测未授权的更改。

两者功能互补,共同提供更全面的安全保护,可提高应对复杂威胁的发现能力。当发生安全事件时,理解攻击者的行为至关重要。如果攻击者读取或修改了规则防护范围内的文件,核心文件监控提供的告警记录可以帮助运营人员追溯攻击者的具体活动,进行有效的事件响应和取证分析。

此外,核心文件监控不仅能检测外部威胁,还能识别来自内部的威胁,比如内部人员的恶意行为或误操作,这些行为核心文件监控都会记录。

规则配置规范和示例

本部分内容提供了核心文件监控规则的配置规范和示例,涵盖了常用应用场景及规则配置说明。然而需要注意的是,不同的配置规则在不同用户的系统上执行时,或许会命中正常的运维类操作,产生“误报”现象,下文表格的最后一栏提供了可能引发相应策略告警的正常操作示例。

为了最大限度地降低误报对系统运维的影响,建议在广泛部署这些规则之前,先采取渐进的试验方式:

  • 少量试验:在初步配置规则时,请选择少量台机器进行配置规则的试点。

  • 细致监测:在规则试运行期间,密切观察每个规则命中的情形,以验证规则的准确性和适用性。

  • 迭代改进:根据检测结果,适时地为一些确认无害的运维操作增加相应的放行规则,以确保关键运维活动不会触发告警,降低需要运营的告警量。

  • 正式部署:在经过数次试验和规则优化后,如果观察到规则命中情况稳定、误报基本消失,可以在更多的服务器中部署这些配置。

类型

说明

具体类型

行为动作

文件路径示例

可能触发误报的操作说明

核心系统文件

此类目录涵盖了大多数系统命令和共享链接库。监控这些目录能够帮助检测潜在攻击者的恶意篡改行为,包括植入恶意二进制文件或篡改系统依赖库。

系统可执行二进制文件目录

写入、删除

  • /bin/*

  • /usr/bin/*

  • /sbin/*

  • /usr/sbin/*

通过包管理软件进行安装或更新操作时,也会对这些目录进行写入。此外,如果您自行从源代码编译安装软件(通常使用 make && make install 命令),也可能涉及这些目录的写入。因此,您需根据实际情况配置相应的放行规则,以避免此类正常操作触发告警。

共享库文件目录

写入、删除

  • /usr/lib/*

  • /usr/lib64/*

配置类文件

攻击者可能会修改各种关键系统配置文件,以实现不同的恶意目的。例如:

  • 通过添加或修改用户记录,攻击者可以持续获取或提升对系统的访问权限。

  • 通过修改DNS解析设置,攻击者可以实现DNS劫持。

  • 通过修改日志记录配置,攻击者可以干扰或逃避审计。

  • 通过修改或禁用某些安全配置,攻击者可以实现其攻击目的。

  • 通过篡改运维应用的配置文件,攻击者可以劫持鉴权流程,从而绕过安全措施或增加特定用户的权限。

  • 通过修改Web服务的配置文件,攻击者可以加载恶意库文件或更改解析配置,将流量引导至恶意站点。

用户与权限相关文件

写入

  • /etc/passwd

  • /etc/shadow

  • /etc/group

  • /etc/gshadow

  • /etc/sudoers

  • /etc/sudoers.d/*

正常的用户添加(useradd)、权限修改(usermod)、删除用户(userdel)和修改密码(passwd)等命令可能会对这类文件进行写入操作。用户可以根据具体的运维操作规范,增加相应的放行规则,或将告警数据用作审计日志。

关键系统配置文件

写入、删除

  • /etc/resolv.conf

  • /etc/hosts

在运维操作需要调整系统的网络设置、名称解析、内核参数调整等配置时,会修改此类文件。

运维类应用配置文件

写入

  • /etc/ssh/sshd_config

  • /etc/security/pam_env.conf

  • /*/.ssh/authorized_keys

在系统的维护、配置更新、安全加固或密钥定期轮转的过程中,可能会修改这些文件,建议配置对应的放行规则。

安全审计类配置文件

写入、删除

  • /etc/audit/auditd.conf

  • /etc/audit/rules.d/*

  • /etc/selinux/config

  • /etc/rsyslog.conf

  • /etc/rsyslog.d/*

首次设置系统的审计框架,或者根据合规、安全等需求调整监控策略时,可能需要修改此类文件。

Web服务类配置文件

写入

  • /etc/httpd/conf/httpd.conf

  • /etc/httpd/conf.d/*

  • /etc/apache2/apache2.conf

  • /etc/apache2/sites-available/*

  • /etc/apache2/sites-enabled/*

  • /etc/nginx/nginx.conf

  • /etc/nginx/conf.d/*

Web服务的初始配置、安装后设置、相关模块的添加和删除,以及Web服务的更新等操作,都可能导致此类被监控文件的修改。

数据库类配置文件

写入

  • /etc/my.cnf

  • /etc/mysql/my.cnf

  • /etc/postgresql/*/main/postgresql.conf

  • /etc/postgresql/*/main/pg_hba.conf

  • /etc/mongod.conf

  • /etc/redis/redis.conf

数据库服务的安装和运维变更等操作可能会导致此类配置文件的变化,建议根据实际情况增加相应的放行规则。

常见的持久化点位

攻击者通常会添加定时任务、恶意服务或启动脚本等配置,以在周期性执行或系统重启后持续保持访问权限。

Cron

写入

  • /etc/crontab

  • /etc/cron.d/*

  • /var/spool/cron

  • /etc/cron.hourly/*

  • /etc/cron.daily/*

  • /etc/cron.weekly/*

  • /etc/cron.monthly/*

正常运维操作可能会新增、调整或删除现有的crontab条目,从而修改相应的文件。

服务类

写入

  • /etc/init.d/*

  • /etc/rc.d/rc.local

  • /etc/systemd/system/*

  • /lib/systemd/system/*

在安装一些服务类应用时,会存在添加、修改系统服务的操作。

Shell配置类

写入

  • /*/.bashrc

  • /*/.bash_profile

  • /etc/profile

运维人员在修改默认环境设置或为频繁使用的长命令创建别名时,可能会更改相关文件的内容。

Web服务的代码目录

配置对Web服务的代码目录进行文件监控的规则有助于保障Web应用的安全。通常情况下,攻击者会利用漏洞或未授权访问等弱点,上传Webshell恶意文件。通过这些Webshell文件,攻击者可以进一步远程访问、控制和管理受攻击的服务器。通过监控Web服务的代码目录,可以有效发现潜在的Webshell上传行为,检测未经授权的更改,包括Web页面的篡改、恶意脚本的植入以及其他恶意活动。

Web代码目录

写入,权限变更

/var/www/html/<code dir>/*.php

在正常的业务和维护操作中,服务更新和部署,以及部分CMS的插件、主题的安装和更新,都可能会向代码目录写入Web脚本文件。一些自动化部署工具(如Jenkins、GitLab CI/CD、Ansible等)也会在持续集成和部署过程中写入文件。在这种情况下,需要配置具体的写入进程,或排除外部可上传的目录,并限制特定文件后缀,以确保安全。

包含敏感内容的文件

敏感鉴权信息的泄露是网络安全的主要风险之一。攻击者在获得一台主机的权限后,通常会进一步搜寻敏感鉴权信息,以进行横向移动并扩大入侵范围。因此,对包含敏感内容的文件配置读取操作的监控,可以有效并及时地发现此类风险或恶意行为。

云服务类CLI鉴权信息

读取

  • /*/.aliyun/config.json

  • /*/.ossutilconfig

包含敏感信息的文件通常会被其归属的应用程序读取。例如,Alibaba Cloud CLI 会读取 ~/.aliyun/config.json 来加载鉴权信息,kubectl 会读取 ~/.kube/config 来获取 Kubernetes 证书信息。同时,某些安全软件为了识别机器上的恶意文件,也可能会扫描包含敏感信息的文件。因此,在设置放行规则时,需要考虑这些正当的读取行为。

版本控制鉴权信息

读取

/*/.git-credentials

数据库配置

读取

/*/config/database.yml

运维、编排系统的私钥信息

读取

/*/.ssh/id_rsa, /*/.kube/config

配置钉钉机器人通知

配置钉钉机器人通知后,可通过钉钉群实时接收云安全中心识别的威胁预警信息。

说明

仅云安全中心企业版旗舰版支持钉钉机器人通知方式。

前提条件

您已经在需要接收通知的钉钉群创建自定义机器人并获取机器人的Webhook地址。创建自定义机器人时,您需要根据通知语言在安全设置区域配置对应的自定义关键词:

  • 中文:云安全中心

  • 英文:Security

说明

创建自定义机器人和获取Webhook地址的具体操作,请参见创建自定义机器人获取自定义机器人Webhook地址

操作步骤

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

  2. 在左侧导航栏,选择系统配置 > 通知设置

  3. 通知设置钉钉机器人页签,单击添加新的机器人

  4. 添加钉钉机器人面板,完成配置,并单击添加

    配置项

    说明

    示例

    配置项

    说明

    示例

    机器人名称

    为钉钉机器人自定义名称,建议输入便于识别的名称。

    核心文件告警通知

    Webhook 地址

    机器人的Webhook链接。您可以在要应用该钉钉机器人的钉钉群中,找到机器人的Webhook地址。

    重要

    请保管好Webhook地址,不要公布在外部网站上。Webhook地址泄露可能会产生安全风险。

    https://oapi.dingtalk.com/robot/send?access_token=XXXX

    资产分组

    选择在云安全中心资产中心中创建的资产分组。选中后,钉钉机器人将会发送该资产分组中资产相关的告警通知。

    阿里云

    通知范围

    选择需要钉钉机器人通知的告警类型(漏洞基线检查安全告警AK泄露检测云蜜罐应用防护防勒索核心文件监控恶意文件检测)和风险等级。

    核心文件监控/告警等级/紧急

    通知频率

    钉钉机器人发送通知的间隔周期,可选1分钟、5分钟、10分钟、30分钟或无限制(每检测到一条告警实时发送通知)。

    选择无限制后,一个Webhook,一分钟最多可发送20条通知。

    30

    通知语言

    钉钉机器人发送通知的语言类型,可选中文或英文。

    中文

    新创建的钉钉机器人通知默认为启用状态。配置完成后,云安全中心将按照您配置的通知策略为您发送相关通知。

  5. (可选)在钉钉机器人列表,找到新创建的钉钉机器人,在操作列单击测试,验证钉钉机器人通知是否已经和钉钉群连通。

相关文档

  • 关于核心文件监控功能的更多信息,请参见核心文件监控

  • 如果需要确保网站文件或目录不被篡改,您可以使用网页防篡改功能。

  • 本页导读 (1)
  • 主机入侵检测与核心文件监控的关系
  • 规则配置规范和示例
  • 配置钉钉机器人通知
  • 前提条件
  • 操作步骤
  • 相关文档
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等