VirusTotal è un portale online, di proprietà di Google, che utilizza molti motori antivirus per verificare la presenza di virus e malware. Fornisce un servizio API che Wazuh utilizza per scansionare hash di file, nomi di dominio, indirizzi IP o URL. Per questa integrazione utilizziamo wazuh-integratord
componente che viene eseguito sul gestore Wazuh. Consulta la nostra documentazione di VirusTotal per ulteriori informazioni su questa integrazione.
In questo caso d'uso, monitoriamo una directory in tempo reale ed eseguiamo una scansione di VirusTotal su ogni file nuovo o modificato di recente. Se un file è classificato come dannoso, viene attivata una risposta attiva e il file viene rimosso.
Configurazione dell'integrazione di VirusTotal
Inserisci la tua chiave API e abilita l'integrazione di VirusTotal sul gestore Wazuh aggiungendo la seguente configurazione in /var/ossec/etc/ossec.conf
.
<ossec_config>
<integration>
<name>virustotal</name>
<api_key>${your_virustotal_api_key}</api_key>
<rule_id>100200,100201</rule_id>
<alert_format>json</alert_format>
</integration>
</ossec_config
In questo esempio, limitiamo la scansione ai file nuovi o modificati di recente in /root
directory a causa delle limitazioni nelle query al minuto quando si utilizza un account app gratuito. Per fare ciò, creiamo regole personalizzate per monitorare il /root
directory e usali per attivare l'integrazione di VirusTotal.
Aggiungi le seguenti regole personalizzate a /var/ossec/etc/rules/local_rules.xml
.
<group name="syscheck,pci_dss_11.5,nist_800_53_SI.7,">
<!-- Rules for Linux systems -->
<rule id="100200" level="7">
<if_sid>550</if_sid>
<field name="file">/root</field>
<description>File modified in /root directory.</description>
</rule>
<rule id="100201" level="7">
<if_sid>554</if_sid>
<field name="file">/root</field>
<description>File added to /root directory.</description>
</rule>
</group>
Configurazione di Active Response per rimuovere i file dannosi
Una volta che VirusTotal identifica un file come una minaccia, Wazuh attiverà una risposta attiva per rimuovere il file dal sistema
Configurazione del gestore Wazuh
Aggiungi i seguenti blocchi al gestore Wazuh /var/ossec/etc/ossec.conf
file.
<ossec_config>
<command>
<name>remove-threat</name>
<executable>remove-threat.sh</executable>
<timeout_allowed>no</timeout_allowed>
</command>
<active-response>
<disabled>no</disabled>
<command>remove-threat</command>
<location>local</location>
<rules_id>87105</rules_id>
</active-response>
</ossec_config>
La risposta attiva viene attivata dalla regola 87105 che viene attivata quando VirusTotal identifica un file come dannoso.
Aggiungi le seguenti regole personalizzate in /var/ossec/etc/rules/local_rules.xml
.
<group name="virustotal,">
<rule id="100092" level="12">
<if_sid>657</if_sid>
<match>Successfully removed threat</match>
<description>$(parameters.program) removed threat located at $(parameters.alert.data.virustotal.source.file)</description>
</rule>
<rule id="100093" level="12">
<if_sid>657</if_sid>
<match>Error removing threat</match>
<description>Error removing threat located at $(parameters.alert.data.virustotal.source.file)</description>
</rule>
</group>
Queste regole si attivano quando un file dannoso viene rimosso dalla risposta attiva o se si è verificato un errore durante la rimozione del file.
Riavvia Wazuh Manager per applicare le modifiche alla configurazione.
systemctl restart wazuh-manager
Configurazione dell'agente Wazuh per VirusTotal
Modifica le impostazioni di monitoraggio dell'integrità dei file in /var/ossec/etc/ossec.conf
per monitorare /root
in tempo reale.
<syscheck>
<directories whodata="yes">/root</directories>
</syscheck>
Aggiungi il seguente script di risposta attiva in /var/ossec/active-response/bin/remove-threat.sh
.
#!/bin/bash
LOCAL=`dirname $0`;
cd $LOCAL
cd ../
PWD=`pwd`
read INPUT_JSON
FILENAME=$(echo $INPUT_JSON | jq -r .parameters.alert.data.virustotal.source.file)
COMMAND=$(echo $INPUT_JSON | jq -r .command)
LOG_FILE="${PWD}/../logs/active-responses.log"
#------------------------ Analyze command -------------------------#
if [ ${COMMAND} = "add" ]
then
# Send control message to execd
printf '{"version":1,"origin":{"name":"remove-threat","module":"active-response"},"command":"check_keys", "parameters":{"keys":[]}}\n'
read RESPONSE
COMMAND2=$(echo $RESPONSE | jq -r .command)
if [ ${COMMAND2} != "continue" ]
then
echo "`date '+%Y/%m/%d %H:%M:%S'` $0: $INPUT_JSON Remove threat active response aborted" >> ${LOG_FILE}
exit 0;
fi
fi
# Removing file
rm -f $FILENAME
if [ $? -eq 0 ]; then
echo "`date '+%Y/%m/%d %H:%M:%S'` $0: $INPUT_JSON Successfully removed threat" >> ${LOG_FILE}
else
echo "`date '+%Y/%m/%d %H:%M:%S'` $0: $INPUT_JSON Error removing threat" >> ${LOG_FILE}
fi
exit 0;
Questo script riceve le informazioni sui file dannosi dall'avviso generato da VirusTotal (87105), rimuove il file e scrive il registro delle risposte attivo.
Modifica /var/ossec/active-response/bin/remove-threat.sh
proprietario e autorizzazioni.
chmod 750 /var/ossec/active-response/bin/remove-threat.sh
chown root:ossec /var/ossec/active-response/bin/remove-threat.sh
Riavvia l'agente Wazuh per applicare le modifiche alla configurazione.
systemctl restart wazuh-agent
Genera un avviso
Quando un file viene modificato nella directory monitorata /root
, avvia una scansione di VirusTotal e genera un avviso se rilevato come dannoso. La risposta attiva è configurata per rimuovere automaticamente la minaccia.
Per verificare che tutto funzioni correttamente, genera un avviso utilizzando il test EICAR. Il risultato previsto è che il file venga rilevato come dannoso e rimosso automaticamente dalla risposta attiva
cd /root
curl -LO http://www.eicar.org/download/eicar.com