Skip to main content Link Search Menu Expand Document (external link)

Bloque 13 - Integridad de archivos, otras herramientas y escáneres de programas maliciosos

Comienza comprobando las herramientas de integridad de archivos, como tenemos AIDE instalado la detecta y comprueba sus archivos:

2022-11-29 09:23:20 ====
2022-11-29 09:23:20 Action: Performing tests from category: Software: file integrity
2022-11-29 09:23:20 ====
2022-11-29 09:23:20 Performing test ID FINT-4310 (AFICK availability)
2022-11-29 09:23:20 Test: Checking AFICK binary
2022-11-29 09:23:20 Result: AFICK is not installed
2022-11-29 09:23:20 ====
2022-11-29 09:23:20 Performing test ID FINT-4314 (AIDE availability)
2022-11-29 09:23:20 Test: Checking AIDE binary
2022-11-29 09:23:20 Result: AIDE is installed (/usr/bin/aide)
2022-11-29 09:23:20 ====
2022-11-29 09:23:20 Performing test ID FINT-4315 (Check AIDE configuration file)
2022-11-29 09:23:20 Test: search for aide.conf in /etc /etc/aide /usr/local/etc
2022-11-29 09:23:20 Result: found aide.conf in directory /etc/aide
2022-11-29 09:23:20 Checking configuration file /etc/aide/aide.conf for errors
2022-11-29 09:23:20 ====
2022-11-29 09:23:20 Performing test ID FINT-4316 (Presence of AIDE database and size check)
2022-11-29 09:23:20 Test: search for AIDE database on disk /var/lib/aide/aide.db
2022-11-29 09:23:20 Checking database size /var/lib/aide/aide.db
2022-11-29 09:23:20 Result: AIDE database /var/lib/aide/aide.db exist and has a size greater than zero
2022-11-29 09:23:20 ====
2022-11-29 09:23:20 Performing test ID FINT-4318 (Osiris availability)
2022-11-29 09:23:20 Test: Checking Osiris binary
2022-11-29 09:23:20 Result: Osiris is not installed
2022-11-29 09:23:20 ====

...

Aparece dm-verity, es una herramienta del Kernel que utiliza SHA256 para verificar los bloques de los dispositivos de almacenamiento, esto asegura que los archivos no han cambiado entre reinicios o durante el tiempo de ejecución. Esto es útil para mitigar los “días cero” y los cambios no autorizados en la raíz, así como para aplicar las políticas de seguridad y el cifrado:

2022-11-29 09:23:20 ====
2022-11-29 09:23:20 Skipped test FINT-4340 (Check dm-integrity status)
2022-11-29 09:23:20 Reason to skip: No integritysetup binary found
2022-11-29 09:23:20 ====
2022-11-29 09:23:20 Performing test ID FINT-4341 (Check dm-verity status)
2022-11-29 09:23:20 Result: dm-verity tools found but no active devices
2022-11-29 09:23:20 ====

...

Esta herramienta no es adecuada para todos los casos, porque los discos protegidos por este sistema son sólo de lectura. Esto funciona con sistemas que tenga una partición de sólo lectura y otra de lectura y escritura; pero es tremendamente incómodo para una configuración habitual de un servidor o estación de trabajo. Otro inconveniente serían las actualizaciones que tendrían que hacerse fuera de línea y con dm-verity desactivado. Hay un artículo que habla en profundidad sobre esta herramienta.

Otras herramientas

En este apartado vemos que habla de herramientas de automatización y busca algunas de ellas en nuestro sistema, como Ansible:

2022-11-29 09:23:20 ====
2022-11-29 09:23:20 Action: Performing tests from category: Software: System tooling
2022-11-29 09:23:20 ====
2022-11-29 09:23:20 Performing test ID TOOL-5002 (Checking for automation tools)
2022-11-29 09:23:20 Test: checking if directory /home/vagrant/.ansible exists
2022-11-29 09:23:20 Result: directory /home/vagrant/.ansible NOT found
2022-11-29 09:23:20 Test: checking if directory /etc/ansible exists
2022-11-29 09:23:20 Result: directory /etc/ansible NOT found
2022-11-29 09:23:20 Test: checking if directory /root/.ansible exists
2022-11-29 09:23:20 Result: directory /root/.ansible NOT found

...

Nos muestra que encuentra chef-client en el directorio /opt/, es una herramienta de gestión de configuraciones basada en Ruby. Se utiliza para automatizar la gestión de configuraciones en todos los nodos de la infraestructura y mantener la coherencia:

2022-11-29 09:23:20 Result: found chef-client (chef client daemon) in /opt/chef/bin
2022-11-29 09:23:20 Performing pgrep scan without uid
2022-11-29 09:23:20 IsRunning: process 'puppet master' not found
2022-11-29 09:23:20 ====

...

El proceso está actualmente en el sistema, si bien Vagrant tiene añadidos para hacer uso de este gestor, no ha sido instalado con él; pero Metasploitable3 trae esto por defecto para personalizar metasplotibale con una receta que desees. También observamos que habla de un proceso de Puppet que no está corriendo. Puppet sirve para administrar la configuración de sistemas, de forma más simple, automatizando las tareas repetibles. Por lo que tengo entendido son dos programas distintos, basándome en este artículo, por lo que puede tratarse de un error de Lynis a la hora de extraer información en sus test.

Por último habla de herramientas IDS o IPS, busca varias en nuestro sistema, ponemos esas dos como ejemplos:

2022-11-29 09:23:20 ====
2022-11-29 09:23:20 Performing test ID TOOL-5102 (Check for presence of Fail2ban)
2022-11-29 09:23:20 Result: Fail2ban not present (fail2ban-server not found)
2022-11-29 09:23:20 Checking Fail2ban configuration file
2022-11-29 09:23:20 ====
2022-11-29 09:23:20 Skipped test TOOL-5104 (Enabled tests in Fail2ban)
2022-11-29 09:23:20 Reason to skip: Prerequisites not met (ie missing tool, other type of Linux distributio
n)
2022-11-29 09:23:20 ====

...

2022-11-29 09:23:20 ====
2022-11-29 09:23:20 Performing test ID TOOL-5120 (Check for presence of Snort)
2022-11-29 09:23:20 Performing pgrep scan without uid
2022-11-29 09:23:20 IsRunning: process 'snort' not found
2022-11-29 09:23:20 Result: Snort not present (Snort not running)

...

Veamos para qué sirven estas herramientas:

  • IDS (Intrusion Detection System), es una aplicación usada para detectar accesos no autorizados a un ordenador o a una red, es decir, son sistemas que monitorizan el tráfico entrante y lo cotejan con una base de datos actualizada de firmas de ataque conocidas. Ejemplos de este tipo de programas son: Snort y Suricata.

  • IPS (Intrusion Prevention System), es un software que se utiliza para proteger a los sistemas de ataques e intrusiones. Su actuación es preventiva. Estos sistemas llevan a cabo un análisis en tiempo real de las conexiones y los protocolos para determinar si se está produciendo o se va a producir un incidente, identificando ataques según patrones, anomalías o comportamientos sospechosos y permitiendo el control de acceso a la red, implementando políticas que se basan en el contenido del tráfico monitorizado, es decir, el IPS además de lanzar alarmas, puede descartar paquetes y desconectar conexiones. Ejemplos de este software son: OSSEC y Fail2Ban.

Escáneres de programas maliciosos

Como vimos en la Corrección 7, instalamos chkrootkit y ahora lo detecta en nuestro sistema (aparte de comprobar otras herramientas similares):

2022-11-29 09:23:20 Performing test ID MALW-3274 (Check for McAfee VirusScan Command Line)
2022-11-29 09:23:20 Test: checking presence McAfee VirusScan for Command Line
2022-11-29 09:23:20 Result: McAfee VirusScan for Command Line not found
2022-11-29 09:23:20 ====

...

2022-11-29 09:23:20 ====
2022-11-29 09:23:20 Performing test ID MALW-3275 (Check for chkrootkit)
2022-11-29 09:23:20 Test: checking presence chkrootkit
2022-11-29 09:23:20 Result: Found /usr/sbin/chkrootkit
2022-11-29 09:23:20 Hardening: assigned maximum number of hardening points for this item (2). Currently having 207 points (out of 290)
2022-11-29 09:23:20 ====

...

2022-11-29 09:23:20 ====
2022-11-29 09:23:20 Performing test ID MALW-3276 (Check for Rootkit Hunter)
2022-11-29 09:23:20 Test: checking presence Rootkit Hunter
2022-11-29 09:23:20 Result: Rootkit Hunter not found
2022-11-29 09:23:20 ====

...

Hace mención a los “agentes activos”, que son antivirus convencionales como Avast, Avira, Kaspersky, etc:

2022-11-29 09:23:20 ====
2022-11-29 09:23:20 Performing test ID MALW-3280 (Check if anti-virus tool is installed)
2022-11-29 09:23:20 Test: checking process com.avast.daemon
2022-11-29 09:23:20 Performing pgrep scan without uid
2022-11-29 09:23:20 IsRunning: process 'com.avast.daemon' not found
2022-11-29 09:23:20 Test: checking process Avira daemon
2022-11-29 09:23:20 Performing pgrep scan without uid
2022-11-29 09:23:20 IsRunning: process 'avqmd' not found

...

2022-11-29 09:23:20 Test: checking process wdserver or klnagent (Kaspersky)
2022-11-29 09:23:20 Performing pgrep scan without uid
2022-11-29 09:23:20 IsRunning: process 'klnagent' not found

...

La mayoría de estos agentes son de pago (algunos tienen licencias gratuitas con ciertas limitaciones), pero si tienes una licencia de alguno de ellos puede ser interesante usarla como medida adicional de protección.


Información adicional

  • Día cero -> Es un término amplio que describe vulnerabilidades de seguridad recién descubiertas que los atacantes usan para acceder a los sistemas. Esto se refiere al hecho de que el proveedor o desarrollador acaba de conocer acerca de esta vulnerabilidad, lo que significa que ha tenido “cero días” para corregirla.