Wazuh Tips&Tricks – Gli scripts active-response

Wazuh è un SIEM open-source costruito su piattaforma ELK (Elasticsearch+Kibana) che offre interessati soluzioni di active-response automatizzato quando si verificano certi eventi.

Oltre alle funzioni di log correlation e aggregazione, gli agents di Wazuh offrono una soluzione EDR –Endpoint Detection Response- per tenere sotto controllo servers e postazioni di lavoro dalle minacce cyber.

C’è la possibilità di automatizzare i processi nel caso si verifichino certi eventi, attraverso la definizione di handler active-response in ossec.conf. Ad esempio definendo una reazione nel caso venga individuato un DDoS (regola 81661):

<ossec_config>
  [...]
  <command>
    <name>ip-block</name>
    <executable>ip-block.sh</executable>
    <expect>srcip</expect>
    <timeout_allowed>no</timeout_allowed>
  </command>

  <active-response>
    <disabled>no</disabled>
    <command>ip-block</command>
    <location>server</location>
    <rules_id>81661</rules_id>
  </active-response>
  [...]
</ossec_config>

Quando il SIEM riceve un log che scatena la regola 81661 (potete fare le verifiche usando l’utility bin/ossec-logtest), viene eseguito il comando “ip-block“, definito come script eseguibile active-response/bin/ip-block.sh (sono sempre script sh, che però possono essere usati come launcher per script in Python, nel caso).

All’esecuzione, vengono passati 5 argomenti:

#!/bin/sh
ACTION=$1
USER=$2
IP=$3
ALERTID=$4
RULEID=$5

ACTION può essere “add” o “delete“. “delete” viene eseguito solo quando è impostato un timeout (voce <timeout_allowed> a yes e <timeout> a definire i secondi). Ad esempio, impostando un timeout di 30 secondi:

<command>
  [...]
  <timeout_allowed>yes</timeout_allowed>
  [...]
</command>
<active-response>
  [...]
  <timeout>30</timeout>
  [...]
</active-response>

nel caso venga eseguita l’azione, lo script viene lanciato con ACTION => add. Dopo 30 secondi, ovvero al timeout impostato, lo stesso script viene nuovamente eseguito con ACTION => delete (si può anche impostare un timeout incrementale attraverso l’opzione repeated-offenders).

IP è l’indirizzo IP sorgente dell’attacco individuato

ALERTID è l’ID univoco dell’alert scatenato. È il valore che maggiormente ci interessa nel caso desiderassimo sfruttare più estensivamente questa funzione: attraverso uno script in Python possiamo recuperare dal log log/alerts.json tutti gli altri valori relativi all’attacco, utilizzandoli per eventuali ulteriori azioni (es. la creazione di “alert” automatici su The Hive attraverso l’interfaccia API TheHive4Py).

RULEID contiene l’ID della regola che ha scatenato l’esecuzione dello script.

Nella directory /var/ossec/active-response/bin sono già contenuti svariati scripts da cui poter partire per costruire il proprio sistema di reazione automatica agli eventi.

Alcuni utilizzi, oltre a quello già citato per TheHive, possono essere:

  • blocco automatico degli IP malevoli usando iptables;
  • notifica istantanea degli eventi via Telegram;
  • creazione automatica di liste di IP reputation per bloccare automaticamente le sorgenti di traffico malevolo (ad esempio, utilizzando le funzionalità di Security Fabric implementate dalle ultime release di Fortinet FortiOS) sull’intero network aziendale;

Ti è piaciuto questo articolo?

0 Condivisioni
Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.