GNU/Linux >> Linux Esercitazione >  >> Linux

WAZUH Rilevamento e rimozione di malware – Integrazione totale di virus

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


Linux
  1. Come scansionare la tua Linux Box per Trojan, malware e virus usando ClamAV

  2. `^m` E come sbarazzartene?

  3. Un Superblock, Inode, Dentry e un file?

  4. Sostituzione del processo e tubo?

  5. Permessi e salvataggio dei file?

Inventario Ansible e file di configurazione

Rilevamento di Log4Shell con Wazuh

Suggerimenti e trucchi per Linux .htaccess

Thread e descrittori di file

AWK e nomi di file con spazio al suo interno.

Rimozione e aggiunta di autorizzazioni utilizzando la notazione numerica sulla stessa riga