# Integración con antivirus ClamAV

Wazuh detecta archivos maliciosos mediante la integración con ClamAV , el cual es un motor antimalware gratuito y de código abierto para detectar varios tipos de malware, incluidos virus y troyanos.

ClamAV es un conjunto de herramientas antimalware de código abierto diseñado para diversos casos de uso, como seguridad de terminales, escaneo web y tiene las siguientes características:

- Ofrece protección en tiempo real para puntos finales de Linux.
- Proporciona actualizaciones automáticas a la base de datos de malware.
- Admite todos los formatos de archivos de correo estándar de forma predeterminada.
- Admite varios formatos de archivo como ZIP y RAR.
- Admite archivos de documentos comunes, como archivos de MS Office y Mac Office, HTML, RTF y PDF.
- Está diseñado con un actualizador de bases de datos avanzado que puede aprovechar actualizaciones programadas o firmas digitales.
- Utiliza un escáner de línea de comandos.
- Tiene soporte integrado para ejecutables ELF y archivos ejecutables portátiles empaquetados con UPX, FSG, Petite, NsPack, wwpack32, MEW, Upack y ofuscados con SUE y otros.

#### <span style="color: rgb(35, 111, 161);">Configuración.</span>

Puede configurar ClamAV y recopilar sus registros desde puntos finales de Linux y Windows. Para recopilar registros de ClamAV de puntos finales de Linux, elimine la etiqueta de comentario **\#** antes de la declaración "*LogSyslog true*" en el archivo de configuración. Quitar el comentario a esta declaración reenvía los registros de ClamAV al archivo Syslog /var/log/syslog.

Para instalar el entorno de prueba tendremos que ejecutar los siguientes comandos.

```shell
sudo apt-get update
sudo apt-get install clamav-daemon
sudo chmod 644 /etc/clamav/clamd.conf
sudo chmod 644 /etc/clamav/freshclam.conf
sudo chown clamav:adm /etc/clamav/clamd.conf
sudo chown clamav:adm /etc/clamav/freshclam.conf
```

[![image.png](https://www.cgii.gob.bo/bookstack/uploads/images/gallery/2024-04/scaled-1680-/1dwAmWzDoA5evBNq-image.png)](https://www.cgii.gob.bo/bookstack/uploads/images/gallery/2024-04/1dwAmWzDoA5evBNq-image.png)

##### <span style="color: rgb(0, 0, 0);">Instalación de Rsyslog.</span>  


```shell
sudo apt-get install rsyslog -y
```

##### Configuración daemon de Clamav.

Modificar los datos en el archivo de configuración.

```shell
sudo nano /etc/clamav/clamd.conf
```

```
LogSyslog true
#LogFile /var/log/clamav/clamav.log
```

```shell
sudo nano /etc/clamav/freshclam.conf
```

```
LogVerbose true
LogSyslog true
```

Modificar los siguientes apartados en clamd.conf que es el scanner mediante linea de comandos.

```shell
sudo nano /usr/local/etc/clamd.conf
```

```
# Comment or remove the line below.
# Example
```

```shell
sudo nano /usr/local/etc/freshclam.conf
```

```
# Comment or remove the line below.
# Example
UpdateLogFile /var/log/clamav/freshclam.log
```

```shell
systemctl restart clamav-daemon 
systemctl enable clamav-daemon 
systemctl restart wazuh-agent
```

```shell
sudo usermod -aG clamav $USER
sudo usermod -aG adm $USER
sudo chmod 666 /var/run/clamav/clamd.ctl
```

**Comando de prueba para análisis y almacenamiento en syslog:**

```shell
clamscan --stdout --no-summary -i -r /directorio/de/escaneo | logger -t "clamd[5286]"
```

**Comando de prueba para respuesta en consola de archivos infectados:**

```shell
clamscan --stdout --no-summary -i -r /home/rchavez/Descargas/Malware
```

##### **Agente de Wazuh.**

Si no se lee por defecto se debe añadir el apartado **localfile** que obliga a realizar el registro del directorio **syslog** para que Wazuh agent lo analice cada vez que se realice un escaneo de cualquier directorio.

```shell
nano /var/ossec/etc/ossec.conf
```

```xml
  <localfile>
    <log_format>syslog</log_format>
    <location>/var/log/syslog</location>
  </localfile>
```

```shell
systemctl restart wazuh-agent
```

Una vez realizados los ajustes podemos observar diferentes tipos de alertas generadas.

Cuando se detiene el servicio de clamAV tenemos:

[![image.png](https://www.cgii.gob.bo/bookstack/uploads/images/gallery/2024-04/scaled-1680-/ubBDcdiil3ktRcIX-image.png)](https://www.cgii.gob.bo/bookstack/uploads/images/gallery/2024-04/ubBDcdiil3ktRcIX-image.png)

Cuando se detecta un archivo infectado tenemos:

[![image.png](https://www.cgii.gob.bo/bookstack/uploads/images/gallery/2024-04/scaled-1680-/35Nq7XnYwYrnZKcY-image.png)](https://www.cgii.gob.bo/bookstack/uploads/images/gallery/2024-04/35Nq7XnYwYrnZKcY-image.png)

Cuando se tiene un error inesperado o mala configuración tenemos:

[![image.png](https://www.cgii.gob.bo/bookstack/uploads/images/gallery/2024-04/scaled-1680-/DJdKaWuisoTiHdTh-image.png)](https://www.cgii.gob.bo/bookstack/uploads/images/gallery/2024-04/DJdKaWuisoTiHdTh-image.png)

##### **Actualización automática de freshclam.**

Configuración de cantidad de veces al día que se actualiza clamav-freshclam de forma automática modificando el archivo de configuración. Por defecto se establece en 24 pero dependiendo de la cantidad de recursos del equipo esta puede modificarse.

```shell
sudo nano /etc/clamav/freshclam.conf
```

```
#Para una actualización de 6 veces al dia.
Checks 6
```

```shell
sudo systemctl restart clamav-freshclam
```

##### **Actualización manual de freshclam.**

Configuración manual para actualizar clamav-freshclam realizando los siguientes siguientes comandos:

```shell
sudo systemctl stop clamav-freshclam.service
sudo freshclam
sudo systemctl restart clamav-freshclam.service
```

##### **Programación regular análisis con clamscan.**

Para realizar un análisis periódico y que los archivos analizados por clamscan y visualizados en wazuh se puede programar un crontab en terminales linux de la siguiente manera.

Accedemos como usuario con privilegios debido a que la detención de programas y posterior "*restart*" utilizan permisos root.

```shell
sudo su
crontab -e
```

Dentro de crontab utilizamos horarios en los que los equipos no tengan una utilización demandante.

```
10 12 * * * sudo systemctl stop clamav-freshclam.service
11 12 * * * sudo freshclam
15 12 * * * sudo systemctl restart clamav-freshclam.service
20 12 * * * /usr/local/bin/clamscan --stdout --no-summary -i -r /home/rchavez/Descargas/Malware 2>&1 | logger -t "clamd[5286]
```

Utilizamos la ruta completa de *clamscan* para que sea interpretado de manera correcta, obteniendo alerta de actualización con *freshclam* así como también de malware en caso de encontrarse una coincidencia positiva.