You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改OSSEC规则提升告警级别遇异常:触发父规则而非自定义规则

问题:自定义OSSEC规则未触发,仅触发父规则告警

尝试在0015-ossec_rules.xml中添加以下自定义规则,目的是将/home目录下用户.ssh目录的完整性校验变更告警级别提升至10:

<rule id="10550" level="10">
<if_sid>550</if_sid>
<regex>/home/.*/\.ssh/</regex>
<description>Integrity checksum changed in /home/*/.ssh/</description>
</rule>

但修改任意用户的.ssh目录时,触发的却是ID为550、级别为7的父规则告警:

<rule id="550" level="7">
<category>ossec</category>
<decoded_as>syscheck_integrity_changed</decoded_as>
<description>Integrity checksum changed.</description>
<mitre>
  <id>T1565.001</id>
</mitre>
<group>syscheck,syscheck_entry_modified,syscheck_file,pci_dss_11.5,gpg13_4.11,gdpr_II_5.1.f,hipaa_164.312.c>
</rule>

解决方案

1. 精准匹配目标字段(核心修复)

OSSEC的<regex>默认匹配整个日志内容,而syscheck告警的文件路径存储在file字段中,直接用全局正则可能无法精准命中。修改规则,明确指定匹配file字段,同时优化正则避免过度匹配:

<rule id="10550" level="10">
<if_sid>550</if_sid>
<field name="file">/home/[^/]+/\.ssh/</field>
<description>Integrity checksum changed in /home/*/.ssh/</description>
</rule>

这里用<field>标签替代<regex>,直接锁定file字段;正则/home/[^/]+/\.ssh/确保只匹配单个用户目录下的.ssh路径,避免.*跨目录匹配的问题。

2. 调整规则加载顺序

OSSEC按规则文件的字母/数字顺序加载,系统默认规则文件0015-ossec_rules.xml会优先加载。建议将自定义规则放到编号更大的自定义文件中(比如local_rules.xml或1000-custom_rules.xml),确保自定义规则在父规则之后加载,才能正确继承并覆盖级别。

3. 验证规则并重启服务

  • 用ossec-logtest工具测试规则匹配效果:
    /var/ossec/bin/ossec-logtest
    
    输入触发syscheck的告警日志,确认是否能触发ID为10550的规则。
  • 测试通过后重启OSSEC服务:
    /var/ossec/bin/ossec-control restart
    

4. 确认syscheck监控配置

检查ossec.conf中的syscheck模块,确保已正确监控.ssh目录:

<syscheck>
  <directories check_all="yes">/home/*/.ssh</directories>
</syscheck>

内容的提问来源于stack exchange,提问作者Andrea

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 17:05:13