OSSEC识别异常文件变动的核心是基于可信基线的FIM持续校验,需服务端与客户端同步启用<syscheck>并配置关键路径监控、排除干扰项、解析alerts.log中的Rule ID/文件路径/哈希变化,结合主动响应实现秒级干预。

OSSEC 识别异常文件变动的核心是文件完整性监控(FIM),它不是简单“对比前后快照”,而是基于可信基线持续校验关键路径的变更行为。部署得当,能精准捕获后门植入、配置篡改、恶意脚本写入等高危操作。
服务端与客户端必须同步启用 FIM
FIM 功能需在服务端和每个 agent 上分别配置生效,不能只开一端:
- 服务端(Linux):编辑 /var/ossec/etc/ossec.conf,确保
<syscheck>块内含<disabled>no</disabled>和合理扫描频率(如<frequency>86400</frequency>) - Windows 客户端:修改 C:Program Files (x86)ossec-agentossec.conf,同样启用
<syscheck>,并注意路径使用正斜杠或双反斜杠(如C:/Windows/System32或C:\Windows\System32) - 首次运行时,OSSEC 会自动建立初始哈希基线;后续每次扫描都与该基线比对,任何差异即触发 level 7+ 告警
精准监控关键目录,避开干扰路径
盲目全盘扫描既耗资源又易误报。应聚焦高风险区域,并主动排除动态文件:
- Linux 示例:
<directories check_all="yes" realtime="yes">/etc</directories>、<directories check_all="yes">/usr/bin</directories> - Windows 示例:
<directories check_all="yes">C:/Windows/System32</directories>、<directories check_all="yes">C:/inetpub/wwwroot</directories> - 必须排除:
<ignore>/var/log/</ignore>(Linux)、<ignore>C:/Windows/Temp</ignore>(Windows),避免日志轮转或临时文件触发噪声
通过告警日志快速定位真实变更
异常变动不会直接显示“被黑了”,而是以结构化事件形式记录在 /var/ossec/logs/alerts/alerts.log 中,关键字段包括:
- Rule ID:如 1002 表示“文件被修改”,1004 表示“文件被删除”,1006 表示“权限变更”
-
File path:精确到文件全路径,例如
/etc/passwd或C:WindowsSystem32driversetchosts - Old/ New hash:SHA-1 或 MD5 值变化,可用于比对是否为预期更新
-
Who changed it?:结合
<audit>配置或系统日志关联,可查出是 root、SYSTEM 还是未知用户进程
结合主动响应自动拦截高危操作
对已知敏感路径的变更,可配置主动响应机制实现秒级干预:
- 在 /var/ossec/etc/ossec.conf 的
<active-response>段添加规则联动,例如匹配 Rule ID 1002 + 路径含/etc/shadow时触发脚本 - 响应动作可设为:立即停止 ossec-agent 服务、调用 iptables 封禁源 IP、发送 Slack 通知、甚至执行
chattr +i锁定文件 - 注意:Windows 上需用 PowerShell 脚本替代 shell 命令,并确保 agent 以 SYSTEM 权限运行才能生效

















