WAZUH/OSSEC - 覆盖规则似乎不起作用
WAZUH/OSSEC - overwriting rules doesn't seem to work
我正在尝试根据文档覆盖规则,例如这样
https://documentation.wazuh.com/3.12/learning-wazuh/replace-stock-rule.html
所以我复制了一个规则到 local_rules.xml,创建了我自己的组(在此之前也试图把它放在规则的原始组标签中),但它似乎完全忽略了它:
这是我在 local_rules.xml:
中输入的内容
<group name="istvan">
<rule frequency="8" id="31533" level="9" overwrite="yes" timeframe="20">
<if_matched_sid>31530</if_matched_sid>
<same_source_ip/>
<description>High amount of POST requests in a small period of time (likely bot).</description>
<group>pci_dss_6.5,pci_dss_11.4,gdpr_IV_35.7.d,nist_800_53_SA.11,nist_800_53_SI.4,</group>
</rule>
</group>
我只将级别更改为 9 并添加了 overwrite="yes" 标签。这个想法是它不会向我发送此警报(因为我的阈值设置为 10+ 级),保存,重新启动,但它完全忽略它,我仍然收到带有 10 级标签的警报。
坦率地说,我开始不知道为什么会这样。
有什么想法吗?
谢谢。
测试预期行为的一个好方法是使用该文档中提到的 /var/ossec/bin/ossec-logtest
。
为了详细说明,我将以该文档为例:
我会覆盖规则5716:https://github.com/wazuh/wazuh-ruleset/blob/317052199f751e5ea936730710b71b27fdfe2914/rules/0095-sshd_rules.xml#L121,如下:
[root@localhost vagrant]# egrep -iE "ssh" /var/ossec/etc/rules/local_rules.xml -B 4 -A 3
<rule id="5716" overwrite="yes" level="9">
<if_sid>5700</if_sid>
<match>^Failed|^error: PAM: Authentication</match>
<description>sshd: authentication failed.</description>
<group>authentication_failed,pci_dss_10.2.4,pci_dss_10.2.5,gpg13_7.1,gdpr_IV_35.7.d,gdpr_IV_32.2,hipaa_164.312.b,nist_800_53_AU.14,nist_800_53_AC.7,</group>
</rule>
无需重启 Wazuh 管理器即可测试日志,打开 /var/ossec/bin/ossec-logtest
然后粘贴我的日志:
2020/05/26 09:03:00 ossec-testrule: INFO: Started (pid: 9849).
ossec-testrule: Type one log per line.
Oct 23 17:27:17 agent sshd[8221]: Failed password for root from ::1 port 60164 ssh2
**Phase 1: Completed pre-decoding.
full event: 'Oct 23 17:27:17 agent sshd[8221]: Failed password for root from ::1 port 60164 ssh2'
timestamp: 'Oct 23 17:27:17'
hostname: 'agent'
program_name: 'sshd'
log: 'Failed password for root from ::1 port 60164 ssh2'
**Phase 2: Completed decoding.
decoder: 'sshd'
dstuser: 'root'
srcip: '::1'
srcport: '60164'
**Phase 3: Completed filtering (rules).
Rule id: '5716'
Level: '9'
Description: 'sshd: authentication failed.'
正如预期的那样,级别已被覆盖,最初是 5。尽管在您的情况下,您必须在低于 20 秒的时间范围内粘贴日志 8 次才能触发该规则。
- 如果您可以分享触发该警报的日志,我可以用它进行测试。
另一方面,您可以创建一个兄弟规则来简单地忽略您的规则 31533,类似于下面的内容:
<rule id="100010" level="2">
<if_sid>31533</if_sid>
<description>Ignore rule 31533</description>
</rule>
确保之后重新启动 Wazuh 管理器以应用更改。
您可以在此处找到有关自定义 rules/decoders 的更多信息:https://wazuh.com/blog/creating-decoders-and-rules-from-scratch/
希望这对您有所帮助,
好不容易跟开发者谈过,才发现确实是忽略了local_rules.xml。我有一个规则的 strage 排除(可能是有问题的语法,虽然它没有报告错误)
"rule_exclude": [
"31151"
当我删除它时,它开始按照用户指南中的描述工作。
我正在尝试根据文档覆盖规则,例如这样
https://documentation.wazuh.com/3.12/learning-wazuh/replace-stock-rule.html
所以我复制了一个规则到 local_rules.xml,创建了我自己的组(在此之前也试图把它放在规则的原始组标签中),但它似乎完全忽略了它:
这是我在 local_rules.xml:
中输入的内容<group name="istvan">
<rule frequency="8" id="31533" level="9" overwrite="yes" timeframe="20">
<if_matched_sid>31530</if_matched_sid>
<same_source_ip/>
<description>High amount of POST requests in a small period of time (likely bot).</description>
<group>pci_dss_6.5,pci_dss_11.4,gdpr_IV_35.7.d,nist_800_53_SA.11,nist_800_53_SI.4,</group>
</rule>
</group>
我只将级别更改为 9 并添加了 overwrite="yes" 标签。这个想法是它不会向我发送此警报(因为我的阈值设置为 10+ 级),保存,重新启动,但它完全忽略它,我仍然收到带有 10 级标签的警报。
坦率地说,我开始不知道为什么会这样。
有什么想法吗?
谢谢。
测试预期行为的一个好方法是使用该文档中提到的 /var/ossec/bin/ossec-logtest
。
为了详细说明,我将以该文档为例:
我会覆盖规则5716:https://github.com/wazuh/wazuh-ruleset/blob/317052199f751e5ea936730710b71b27fdfe2914/rules/0095-sshd_rules.xml#L121,如下:
[root@localhost vagrant]# egrep -iE "ssh" /var/ossec/etc/rules/local_rules.xml -B 4 -A 3 <rule id="5716" overwrite="yes" level="9"> <if_sid>5700</if_sid> <match>^Failed|^error: PAM: Authentication</match> <description>sshd: authentication failed.</description> <group>authentication_failed,pci_dss_10.2.4,pci_dss_10.2.5,gpg13_7.1,gdpr_IV_35.7.d,gdpr_IV_32.2,hipaa_164.312.b,nist_800_53_AU.14,nist_800_53_AC.7,</group> </rule>
无需重启 Wazuh 管理器即可测试日志,打开
/var/ossec/bin/ossec-logtest
然后粘贴我的日志:
2020/05/26 09:03:00 ossec-testrule: INFO: Started (pid: 9849).
ossec-testrule: Type one log per line.
Oct 23 17:27:17 agent sshd[8221]: Failed password for root from ::1 port 60164 ssh2
**Phase 1: Completed pre-decoding.
full event: 'Oct 23 17:27:17 agent sshd[8221]: Failed password for root from ::1 port 60164 ssh2'
timestamp: 'Oct 23 17:27:17'
hostname: 'agent'
program_name: 'sshd'
log: 'Failed password for root from ::1 port 60164 ssh2'
**Phase 2: Completed decoding.
decoder: 'sshd'
dstuser: 'root'
srcip: '::1'
srcport: '60164'
**Phase 3: Completed filtering (rules).
Rule id: '5716'
Level: '9'
Description: 'sshd: authentication failed.'
正如预期的那样,级别已被覆盖,最初是 5。尽管在您的情况下,您必须在低于 20 秒的时间范围内粘贴日志 8 次才能触发该规则。
- 如果您可以分享触发该警报的日志,我可以用它进行测试。
另一方面,您可以创建一个兄弟规则来简单地忽略您的规则 31533,类似于下面的内容:
<rule id="100010" level="2">
<if_sid>31533</if_sid>
<description>Ignore rule 31533</description>
</rule>
确保之后重新启动 Wazuh 管理器以应用更改。
您可以在此处找到有关自定义 rules/decoders 的更多信息:https://wazuh.com/blog/creating-decoders-and-rules-from-scratch/
希望这对您有所帮助,
好不容易跟开发者谈过,才发现确实是忽略了local_rules.xml。我有一个规则的 strage 排除(可能是有问题的语法,虽然它没有报告错误)
"rule_exclude": [
"31151"
当我删除它时,它开始按照用户指南中的描述工作。