Wazuh è un SIEM opensource basato su ecosistema ELK sviluppato da una nutrita comunità di sviluppatori ed esperti di sicurezza.
SIEM è l’acronimo di Security Information and Event Management ed è un elemento essenziale per la gestione degli eventi di sicurezza ed essere in grado d’individuare comportamenti anomali e rilevate attacchi nei sistemi.
Per farlo, il SIEM riceve i log che provengono dai sistemi e appliances, compresi eventuali firewall come pfSense, una soluzione opensource basata su FreeBSD affidabile e diffusa.
Per inviare a Wazuh gli eventi di pfSense, ci sono due strategie:
- inoltrare gli eventi via syslog a Wazuh;
- installare su pfSense l’agent di Wazuh, compilandolo dai sorgenti;
La seconda soluzione non sempre è possibile, soprattutto in contesti aziendali dove pfSense rappresenta un elemento critico della business continuity oppure quando, per motivi diversi, installare ulteriori software è sconsigliato o non possibile.
La prima soluzione è sicuramente la meno invasiva e rapida, poiché consiste nel configurare pfSense per inoltrare gli eventi al demone rsyslog di Wazuh, tipicamente in ascolto sulla porta 514. Se non fosse che per una sfortunata incompatibilità tra il formato che pfSense invia (BSD – RFC 3164 oppure syslog -RFC 5424 e RFC 3339 microsecond-precision timestamps-) e quello che Wazuh si aspetta, questa soluzione necessita di qualche hack per funzionare.
Per farla breve, Wazuh si aspetta, nel pre-decoder, che la riga contenga l’hostname, altrimenti fallisce nella corretta decodifica della riga.
Ho risolto installando una istanza di rsyslog sulla macchina di Wazuh, sulla porta 10514, che riceve i log da pfSense per scriverli su un file, es. /var/log/remote-syslog.log. In /etc/rsyslog.conf:
module(load="imudp")
input(type="imudp" port="10514")
...
local0.* /var/log/remote-syslog.log
In questo caso, ho usato il facility “local0” (da impostare anche su pfSense): se decidere di usare un altro facility, modificate di conseguenza.
A questo punto, gli eventi di pfSense saranno scritti nel file /var/log/remote-syslog.log, nel formato corretto per essere dati in pasto a Wazuh, aggiungendo in /var/ossec/etc/ossec.conf:
<ossec_config>
...
<localfile>
<log_format>syslog</log_format>
<location>/var/log/remote-syslog.log</location>
</localfile>
</ossec_config>
A questo punto dovreste iniziare a vedere gli eventi di pfSense sulla dashboard di Wazuh.
2 comments
Ciao,
potresti spiegare come hai fatto a installare la seconda istanza di rsyslog su wazuh?
Grazie.
Salve Roberto, non è una seconda istanza di rsyslog: è stato sufficiente configurare le porte di ascolto del demone rsyslog diversamente dalla 514, già occupata da Wazuh (almeno nel mio caso).