GNU/Linux >> Tutoriales Linux >  >> Linux

WAZUH Detección y eliminación de malware – Virus Integración total

VirusTotal es un portal en línea, propiedad de Google, que utiliza muchos motores antivirus para detectar virus y malware. Proporciona un servicio de API que utiliza Wazuh para escanear archivos hash, nombres de dominio, direcciones IP o URL. Para esta integración usamos el wazuh-integratord componente que se ejecuta en el administrador de Wazuh. Consulte nuestra documentación de VirusTotal para obtener más información sobre esta integración.

En este caso de uso, monitoreamos un directorio en tiempo real y hacemos un escaneo VirusTotal a cada archivo nuevo o modificado recientemente. Si un archivo se clasifica como malicioso, se desencadena una respuesta activa y se elimina el archivo.

Configuración de la integración de VirusTotal

Inserte su clave API y habilite la integración de VirusTotal en el administrador de Wazuh agregando la siguiente configuración en /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

En este ejemplo, limitamos el escaneo a archivos nuevos o modificados recientemente en /root directorio debido a limitaciones en las consultas por minuto al usar una cuenta de aplicación gratuita. Para hacerlo, creamos reglas personalizadas para monitorear el /root y utilícelos para activar la integración de VirusTotal.

Agregue las siguientes reglas personalizadas 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>

Configuración de Active Response para eliminar archivos maliciosos

Una vez que VirusTotal identifica un archivo como una amenaza, Wazuh activará una respuesta activa para eliminar el archivo del sistema

Configuración del administrador de Wazuh

Agregue los siguientes bloques al administrador de Wazuh /var/ossec/etc/ossec.conf archivo.

<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 respuesta activa se desencadena por la regla 87105 que se dispara cuando VirusTotal identifica un archivo como malicioso.

Agregue las siguientes reglas personalizadas en /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>

Estas reglas se activan cuando se elimina un archivo malicioso mediante una respuesta activa o si se produce un error al eliminar el archivo.

Reinicie el administrador de Wazuh para aplicar los cambios de configuración.

systemctl restart wazuh-manager

Configuración del agente Wazuh para VirusTotal

Cambie la configuración de monitoreo de integridad de archivos en /var/ossec/etc/ossec.conf para monitorear /root en tiempo real.

<syscheck>
  <directories whodata="yes">/root</directories>
</syscheck>

Agregue el siguiente script de respuesta activa en /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;

Este script recibe la información del archivo malicioso de la alerta generada por VirusTotal (87105), elimina el archivo y escribe el registro de respuestas activas.

Cambie /var/ossec/active-response/bin/remove-threat.sh propietario y permisos.

chmod 750 /var/ossec/active-response/bin/remove-threat.sh
chown root:ossec /var/ossec/active-response/bin/remove-threat.sh

Reinicie el agente de Wazuh para aplicar los cambios de configuración.

systemctl restart wazuh-agent

Generar una alerta

Cuando se modifica un archivo en el directorio supervisado /root , desencadena un análisis de VirusTotal y genera una alerta si se detecta como malicioso. La respuesta activa está configurada para eliminar la amenaza automáticamente.

Para comprobar que todo funciona correctamente, genera una alerta mediante el test EICAR. El resultado esperado es que el archivo se detecte como malicioso y se elimine automáticamente mediante una respuesta activa

cd /root
curl -LO http://www.eicar.org/download/eicar.com


Linux
  1. Cómo escanear su Linux Box en busca de troyanos, malware y virus usando ClamAV

  2. `^m` ¿Y cómo deshacerse de él?

  3. ¿Un Superblock, Inode, Dentry Y Un Archivo?

  4. ¿Sustitución de proceso y tubería?

  5. ¿Redirigir y canalizar la salida?

Archivos de inventario y configuración de Ansible

Detectando Log4Shell con Wazuh

Sistemas de archivos compatibles y recomendados en Linux

Subprocesos y descriptores de archivos

¿Qué es `S_ISREG()` y qué hace?

marca de tiempo, hora de modificación y hora de creación de un archivo