Lynis, una vieja, imprescindible y auditora amiga

Auditar la seguridad. ¿Cuántas veces nos han hecho referencia a eso?.

Lynix, esta conocida herramienta muestra cada detalle de nuestra seguridad. Es una compañera entre auditores, profesionales de la  seguridad y administradores de sistemas.

Corría el año 2007, cuando salío a la luz de la mano de Michael Boelen, abriendo una puerta a todo aquel que, bien por curiosidad, formación, necesidad o trabajo, necesitaba de una herramienta para poder realizar pruebas de cumplimiento (ISO27001, PCI-DSS, HIPAA), pentesting, análisis de vulnerabilidades, auditorías o hardening de sistemas.

Se puede ejecutar en sistemas basados en UNIX, desde MacOS, Linux, pasando por BSD y finalizando por Solaris, AIX, etc.

 

Nota: Ahora incluso se ejecuta en sistemas Raspberry Pi, dispositivos IoT y dispositivos de almacenamiento QNAP.

El análisis del sistema se hace de forma local. Los resultados que nos ofrece nos informará sobre el propio sistema, software instalado, configuraciones de los servicios/sistema.

Es útil incluso para desarrolladores, ya que si quieren probar una imagen Docker, o mejorar la seguridad de una aplicación web que han implementado.

¿Cómo funciona?

Cuando necesitamos auditar la seguridad de un sistema, debemos tener claro que seguir una serie de pautas muy bien definidas es un buen principio para no dejar cabos sueltos. Si contamos con la ayuda de herramientas como Lynis, esta exigente tarea se hará más flexible.

Un detalle importante que es Lynis no necesita instalar otras herramientas, por lo que se puede mantener el sistema limpio. Y es que a veces auditar un servidor crítico que se mantiene con «pinzas» es como jugar a la ruleta rusa. Al utilizar este método de escaneo, puede ejecutarse casi sin dependencias. Cuantos más componentes descubra en el servidor, más extensa será la auditoría. Siempre se realizarán escaneos que se ajusten al sistema analizado.

Por ejemplo, si Lynis detecta un servidor Apache en el sistema, realizará una ronda de pruebas relacionadas con Apache.

Pasos durante un escaneo típico de Lynis:

  1. Inicialización
  2. Verificaciones básicas, como propiedad de los archivos…
  3. Sistema operativo y herramientas.
  4. Componentes de software disponibles
  5. Comprobación de la última versión de Lynis
  6. Ejecuta los plugins habilitados
  7. Ejecuta las pruebas de seguridad por categoría.
  8. Ejecución de nuestras pruebas personalizadas (opcional).
  9. Informe de la exploración.

Aparte del informe y toda la información que se muestra en pantalla, los detalles técnicos sobre la exploración se almacenan en un archivo de registro (lynis.log).

Las advertencias y sugerencias se almacenan en un archivo de informe separado llamado lynis-report.dat.

Quiero más detalles

Lynis realiza cientos de pruebas individuales. Cada una de estas pruebas ayudará a determinar el estado de seguridad del sistema.

La mayoría de las pruebas están escritas en shell script y tienen un identificador único (por ejemplo, KRNL-6000).

Con este sistema de identificadores únicos es posible ajustar el análisis. Por ejemplo, si una prueba es demasiado estricta, la podemos desactivar.

Lynis es modular y podemos ejecutar pruebas hechas por nosotros en cualquier lenguaje.

Los plugins son extensiones modulares y se pueden realizar pruebas adicionales para recopilar más información. Cada plugin tiene el objetivo de recopilar datos específicos. Estos datos se almacenan en el archivo de informe de Lynis (lynis-report.dat). Existen plugins preparados para descargar.

También existe la versión Enterprise

Lynix también dispone de una versión de pago, llamada «Lynis Enterprise».

Depende mucho de nuestra capacidad para poder desarrollar plugins a medidad o darle más capacidad a nuestro Lynis, ya sabéis, si no queremos molestarnos o no disponemos de tiempo/capacidad, esta puede ser una solución y es que dependiendo de la cantidad de sistemas, el precio puede variar (a fecha de hoy, Julio 2019), desde 3 dolares al mes, por máquina.

Instalación

Son dos pasos, quiero decir que no tiene complicación alguna. Y es que, aunque se puede instalar mediante paquetes del sistema, en realidad no requiere de instalación.

Métodos para conseguir Lynis:

  • GitHub
  • Paquete de software
  • Tarball
  • Homebrew
  • Ports (BSD)

Podemos acceder directamente al fichero con los contenidos en este ENLACE.


 

O directamente clonarlo con GIT:

  • git clone https://github.com/CISOfy/lynis.git

 

También podemos acceder a la herramienta directamente desde los repositorios de nuestra distribución, pero estos no garantizan disponer de la última versión.

Nota: Es posible que cuando ejecutemos Lynis, nos advierta de la necesidad de crear un volcado hexadecimal mediante el uso del comando «xdd«. Esto lo podemos solucionar instalando «vim-common«

En cualquier caso, una vez que tengamos acceso al Lynis, debemos poder acceder al ejecutable (shell script) «lynis«.

Un escaneo directo del sistema podría ser:

  • lynis audit system

Con ellos estamos indicando que comience a realizar el análisis del sistema.

A partir de entonces, podremos ver el análisis mostrado por pantalla.

Auditar la seguridad
Auditar la seguridad

Mostrando el análisis

Auditar la seguridad

Para no extenderme mucho, sólo se mostrará como ejemplo, un par de pantallas del resultado. Tal como se puede ver, Lynis nos indicará en rojo lo que considerá un punto a mejorar.

 

[+] Initializing program
————————————
– Detecting OS… [ DONE ]
– Checking profiles… [ DONE ]

Program version: 3.0.0
Operating system: Linux
Operating system version: CentOS Linux release 7.6.1810 (Core)
Kernel version: 3.10.0
Hardware platform: x86_64
Hostname: centos1
—————————————————
Profiles: /root/lynis/default.prf
Log file: /var/log/lynis.log
Report file: /var/log/lynis-report.dat
Report version: 1.0
Plugin directory: ./plugins

 

[+] Kernel Hardening
————————————
– Comparing sysctl key pairs with scan profile
– fs.protected_hardlinks (exp: 1) [ OK ]
– fs.protected_symlinks (exp: 1) [ OK ]
– fs.suid_dumpable (exp: 0) [ OK ]
– kernel.core_uses_pid (exp: 1) [ OK ]
– kernel.ctrl-alt-del (exp: 0) [ OK ]
– kernel.dmesg_restrict (exp: 1) [ DIFFERENT ]
– kernel.kptr_restrict (exp: 2) [ DIFFERENT ]
– kernel.randomize_va_space (exp: 2) [ OK ]
– kernel.sysrq (exp: 0) [ DIFFERENT ]
– kernel.yama.ptrace_scope (exp: 1 2 3) [ DIFFERENT ]
– net.ipv4.conf.all.accept_redirects (exp: 0) [ DIFFERENT ]

Deja un comentario

Cerrar menú