jueves, abril 28, 2016

Lynis: Auditar y fortificar servidores GNU/Linux

Hace unas semanas hablaba sobre una herramienta que permite identificar si faltan paquetes de actualización en sistemas con Microsoft Windows. Este tipo de herramientas, como la citada Windows Exploit Suggester, pueden ayudar, y mucho, en la comprobación del nivel de actualización de nuestros servidores y equipos cliente en la empresa. Además, esta herramienta  en concreto era capaz de darnos información sobre exploits públicos disponibles, e incluso nos informaba de la existencia de algún módulo de Metasploit disponible que se aprovechara de la falta de un paquete de actualización.

Figura 1: Lynis, audita y fortificar servidores GNU/Linux

Hoy vamos a hablar de otra herramienta que sirve para auditar sistemas, en este caso fortificar GNU/Linux. La herramienta se denomina Lynis y permite realizar auditoria de seguridad y fortificación de los sistemas basados en Unix. Lynis realiza un escaneo profundo sobre el sistema en el que se lanza, aunque juntándola con SSH podríamos lanzarla de forma sencilla en otros servidores de la organización. El objetivo de Lynis es detectar fallos de seguridad y errores de configuración o debilidades en el propio sistema. Estos resultados se utilizarán para fortificar a posteriori el sistema. El reporte que proporciona la herramienta ayudará a la toma de decisiones que habrá que tomar para la fortificación o hardening de los servidores GNU/Linux.

La herramienta también escanea de forma general el sistema detectando la falta de software actualizado o la existencia de paquetes de software vulnerables y los errores de configuración en la máquina. Lynis es utilizado por el blue team de una empresa, para mejorar las defensas de los servidores. Además, la herramienta proporciona una forma automatizada de auditar el servidor en modo caja blanca, realizar o llevar a cabo test de compliance, cumplimiento de PCI-DSS, HIPAA, etcétera, y detectar vulnerabilidades conocidas y debilidades.

¿Qué es lo que podemos sacar?

Descargarse Lynis es sencillo, podemos bajarlo de Github con la instrucción git clone https://github.com/CISOfy/lynis.git. Tal y como se puede ver en la imagen se obtienen diversos archivos, pero su ejecución es rápida y sencilla ./lynis –help.

Figura 2: Estructura de ficheros de Lynis

Lynis ofrece multitud de opciones para ser ejecutado. Una de las que llaman la atención es la posibilidad de auditar un dockerfile, es decir, un contenedor que tiene todas las dependencias de una aplicación en un formato estandarizado. Su ejecución en modo audit es sencilla. Debemos ejecutar la instrucción ./lynis audit system y la herramienta comenzará a realizar diferentes tests. Cada test está implementado en un plugin, los cuales pueden ser enumerados en la carpeta plugins, una vez descargado Lynis versión Enterprise.

Figura 3: Lanzamiento de auditoría de un servidor

Por cada tramo de evaluación que hace la herramienta, ésta se detendrá para que podamos evaluar lo que se nos presenta en pantalla. Lanzando Lynis sobre una Kali Linux 2.0 lo primero que se nos proporciona es información sobre el sistema operativo. El uso de los plugins puede ser muy interesante, ya que se añade más información, aunque para ello debamos utilizar la versión Enterprise.

Lynis lanzará pruebas sobre los siguientes elementos y nos irá mostrando por pantalla los resultados parciales que va detectando:
• Boot y servicios.
• Evaluación de la configuración del kernel.
• Comprobación de memoria y procesos.
• Configuración de las políticas de usuarios, grupos y métodos de autenticación.
• Shells.
• Evaluación del sistema de archivos.
• Almacenamiento.
• Ports & Packages.
• Networking.
• Configuración del software: servidor web, SSH, SNMP, motores de base de datos, PHP, configuración del logging de la máquina, etcétera.
• Evaluación de los valores que fortifican el kernel.
• Por último, resultados.
Figura 4: Resultados de auditoría del kernel de un Kali Linux 2.0

En la siguiente imagen vemos cómo se lanza una serie de pruebas sobre los elementos de boot y los servicios y la herramienta nos proporciona rápidamente los resultados. Se detecta, por ejemplo, que el GRUB no está protegido con contraseña, por lo que cualquier usuario con acceso físico a la máquina podría editarlo y conseguir una shell como root de forma sencilla.

Figura 5: Resultados de auditoría del boot y los servicios

En la siguiente imagen se puede ver los test que se pasan a la política y configuración de usuarios, grupos y los métodos de autenticación. El color amarillo nos indica qué hay cosas que son mejorables, y serán tomadas en cuenta por Lynis en el reporte final, dónde nos entregarán una puntuación y nos recopilarán todos los fallos que deben ser resueltos.

Figura 6: Resultados de auditoría de usuarios, grupos y sistemas de autenticación

Por último, se presentan los resultados y la evaluación mediante un número que indica el nivel de fortificación de la máquina.

Figura 7: Resumen sumario de la auditoría

Además, se hace un recopilatorio de los tests realizados y los plugins habilitados. Además, la herramienta nos realiza una serie de sugerencias para mejorar el hardening de la máquina, lo cual es realmente interesante.

Figura 8: Recomendaciones extras de fortificación

Lynis es una herramienta muy útil para hacer hardening de los sistemas GNU/Linux y para poder evaluar su nivel de seguridad actual. Cómo mencioné anteriormente, es una herramienta con la que deben contar todos los Blue Teams para poder tomar decisiones con las que se mejore la seguridad de la empresa.

Autor: Pablo González Pérez (@pablogonzalezpe)
Escritor de los libros "Metasploit para Pentesters", "Ethical Hacking" y “Pentesting con Powershell

6 comentarios:

  1. Ya tengo juguete para el finde y mas alla!!! ñ.ñ gracias por la info Pablo!

    Saludos!

    ResponderEliminar
  2. Muy bueno pero yo cree la propia no es nada dificil hacer un shell bash scripting para esto !

    ResponderEliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  4. lastAudit permite realizar auditoria de un sistema operativo Windows. Saludos :)

    ResponderEliminar
  5. Manuel, si dices que tienes una propia, compártela con todos. De lo contrario pensaría que eres un hablador.

    ResponderEliminar