WAZUH/OSSEC - правила перезаписи не работают

Я пытаюсь перезаписать правило в соответствии с документацией, например это

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.

Честно говоря, я начинаю не понимать, почему это происходит.

Есть идеи?

Спасибо.

2 ответа

Решение

После разговора с разработчиками выясняется, что он действительно игнорировал local_rules.xml. У меня было исключение одного правила (возможно, синтаксис проблемный, хотя он не сообщил об ошибке)

      "rule_exclude": [
     "31151"

Когда я его удалил, он начал работать, как описано в руководстве пользователя.

Хороший способ проверить ожидаемое поведение - использовать /var/ossec/bin/ossec-logtest как указано в этом документе.

Чтобы уточнить, я возьму пример этого документа:

  • Я перепишу правило 5716: https://github.com/wazuh/wazuh-ruleset/blob/317052199f751e5ea936730710b71b27fdfe2914/rules/0095-sshd_rules.xml, как показано ниже:

    [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. Хотя в вашем случае вам придется вставлять журнал 8 раз на временном интервале менее 20 секунд, чтобы иметь возможность активировать это правило.

  • Если вы можете поделиться журналами, вызывающими это предупреждение, я могу протестировать его.

С другой стороны, вы можете создать одноуровневое правило, чтобы просто игнорировать ваше правило 31533, примерно так:

<rule id="100010" level="2">
   <if_sid>31533</if_sid>
   <description>Ignore rule 31533</description>
 </rule>

Обязательно перезапустите Wazuh manager после этого, чтобы изменения вступили в силу.

Вы можете найти дополнительную информацию о настройке правил / декодеров здесь: https://wazuh.com/blog/creating-decoders-and-rules-from-scratch/

Надеюсь это поможет,

Другие вопросы по тегам