ueba3ba
Goto Top

Wazuh und regex für Vaultwarden syslog Nachricht

Guten Morgen allerseits.

Ich arbeite mich derzeit ein bisschen in Wazuh ein.
Wazuh ist in der Version 4.9.0 installiert und funktioniert soweit.
Auf einem vServer ist bereits der Agent installiert, und blockt erfolgreich IP's
die auf SSH Bruteforce ausführen.

Im Lab läuft auch ein Vaultwarden Server der seine Logs nach

/var/log/vaultwarden_access.log

schreibt.

Die Log Datei konnte ich erfolgreich via syslog an den Wazuh Server senden.
Habe eine Regel in Wazuh angelegt.
Meldungen eines nicht erfolgreichen Logins werden im Alert angezeigt.

Soweit so gut.

Da die IP und der Username noch nicht in den richtigen Feldern stehen, muss ich also einen Dedoder schreiben, der mir die IP und den Usernamen und die richtigen Felder bringt.

Eine Log Nachricht schaut so aus:
[2024-10-14 00:27:58.280][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 172.16.10.210. Username: ebebn@jetzt.de.

Also habe ich erst einmal einen pre-decoder erstellt.
Der schaut so aus:

<decoder name="Vaultwarden_pre-decoder">  

  <prematch>^\W\d\d\d\d-\d\d- 
 d\d\s\d\d:\d\d:\d\d\.\d\d\d\W\Wvaultwarden::api::identity\W\W(ERROR)\W</prematch>
</decoder>

Dieser scheint zu greifen. So erscheint es mir zumindest.

[root@wazuh-server bin]# ./wazuh-logtest
Starting wazuh-logtest v4.9.0
Type one log per line

[2024-10-14 00:27:58.280][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 172.16.10.210. Username: ebebn@jetzt.de.

**Phase 1: Completed pre-decoding.
        full event: '[2024-10-14 00:27:58.280][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 172.16.10.210. Username: ebebn@jetzt.de.'  

**Phase 2: Completed decoding.
        name: 'Vaultwarden_pre-decoder'  

**Phase 3: Completed filtering (rules).
        id: '100080'  
        level: '5'  
        description: 'Vaultwarden - User Login Failed'  
        groups: '['syslog-Vaultwarden', 'authentication_failed']'  
        firedtimes: '1'  
        mail: 'False'  
**Alert to be generated.

Dann habe ich den child-decoder erstellt, der so ausschaut:

<decoder name="Vaultwarden">  
<parent>Vaultwarden_pre-decoder</parent>
  <regex offset="after_parent">^Username or password is incorrect\. Try again\. IP: (\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})\. Username: ([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})\.</regex>  
  <order>srcip,srcuser</order>
</decoder>

Test:

[root@wazuh-server bin]# ./wazuh-logtest
Starting wazuh-logtest v4.9.0
Type one log per line

[2024-10-14 00:27:58.280][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 172.16.10.210. Username: ebebn@jetzt.de.

**Phase 1: Completed pre-decoding.
        full event: '[2024-10-14 00:27:58.280][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 172.16.10.210. Username: ebebn@jetzt.de.'  

**Phase 2: Completed decoding.
        name: 'Vaultwarden_pre-decoder'  

**Phase 3: Completed filtering (rules).
        id: '100080'  
        level: '5'  
        description: 'Vaultwarden - User Login Failed'  
        groups: '['syslog-Vaultwarden', 'authentication_failed']'  
        firedtimes: '1'  
        mail: 'False'  
**Alert to be generated.

Wie hier zu sehen ist, werden IP und Username nicht in die Felder geschrieben.
Es wird überhaupt nicht in irgend ein Feld geschrieben.

Leider bin ich mit meinem Latein am Ende und ersuche die nette Community des Administrator Forums um Hilfe.

Content-ID: 668753

Url: https://administrator.de/contentid/668753

Ausgedruckt am: 16.10.2024 um 00:10 Uhr

Ueba3ba
Lösung Ueba3ba 14.10.2024 um 15:36:36 Uhr
Goto Top
Hallo, ich konnte mein Problem inzwischen mit der Hilfe eines anderen lösen.

Hier ist die Lösung:

<!-- [2024-10-14 00:27:58.280][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 172.16.10.210. Username: ebebn@jetzt.de. -->

<decoder name="vaultwarden">  
  <prematch>^[\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d.\d+]</prematch>
</decoder>

<decoder name="vaultwarden_child">  
  <parent>vaultwarden</parent>
  <regex>IP: (\d+.\d+.\d+.\d+)</regex>
  <order>srcip</order>
</decoder>

<decoder name="vaultwarden_child">  
  <parent>vaultwarden</parent>
  <regex>Username: (\S+)</regex>
  <order>user</order>
</decoder>