01 abril 2009

Lynis: Herramienta de auditoría para hardening *NIX

Hoy ha llegado a una lista de distribución de correo a la que pertenezco (Seguridad-en-Ebonia), un enlace a un producto libre destinado a la auditoría: Lynis

El remitente lo recomendaba como producto que había probado como para una máquina de casa, y que en alguna ocasión le había dado alguna sorpresa a la hora de haber securizado dicha máquina.

Se trata de una herramienta que funciona mediante línea de comandos, aunque se puede añadir como una entrada en el cron de la máquina para comprobar periódicamente si ha habido modificaciones (consecuencia de algún posible compromiso por ejemplo)

Viendo la documentación del producto, nos encontramos con que:
  1. Es una herramienta de auditoría, no arregla ni modifica nada.
  2. El público al que va destinada es mayormente, especialistas en seguridad, administradores de sistemas que quieren dormir más tranquilos, auditores SOX, HIPAA, PCI DSS (algún día le dedicaré un post completo a esto, lo prometo), etc...
  3. Lo "venden"/publicitan como un antirootkit, aunque en las conclusiones veréis que recomiendo otras opciones
Bueno pues la he instalado en mi CentOS y la he probado convenientemente. He de decir que es bastante poco intrusivo, hace sus tests y genera al final un report con sus consejos para mejorar la seguridad del equipo.


Los resultados de la evaluación han sido los siguientes:

El producto primeramente identifica la máquina en la que corre y busca una serie de herramientas que puedan estar instaladas para su propio funcionamiento. Luego efectúa una serie de checks de seguridad categorizados en:
  • Arranque y servicios
  • Kernel: sus opciones y módulos cargados
  • Usuarios, grupos y autenticación: Busca diferentes mecanismos de autenticación instalados en la máquina (PAM, LDAP, NIS, NIS+) así como herramientas para fortalecimiento de contraseñas
  • Shells: Te indica el número de shells válidas que hay en el equipo (mira el fichero /etc/shells)
  • Sistemas de ficheros: analiza características típicas (el sticky bit en el /tmp, volúmenes LVM, etc...). Curiosamente no mira si están montada como read only alguna partición como noexec, nosuid (o al menos no indica en ninguna parte que haga esta comprobación)
  • Almacenamiento: Mira si está el servidor NFS levantado. (En mi caso no lo estaba, así que no sé qué otro tipo de comprobación haría si lo estuviera)
  • Software: name services. Investiga si hay algún servidor DNS instalado en la máquina, así como ciertas características de la resolución de nombres. Busca por BIND, PowerDNS y alguno más. Mi maravilloso DJBDNS pasa desabercibido para Lynis porque no lo busca tampoco.
  • Puertos y paquetes: Analiza el sistema de gestión de paquetes
  • Red: Analiza ciertos parámetros de configuración de la red (gateway por defecto, si hay algún interfaz funcionando en modo promiscuo, etc)
  • Impresoras y colas: Analizando si está el servidor de impresoras. Aquí falla puesto que dice [NOT FOUND] y yo tengo claro que está levantado.
  • Software: e-mail y mensajería: Busca por Exim o Postfix (que lógicamente no encuentra). Raro se me hace que no busque sendmail. Mi Qmail tampoco lo detecta.
  • Software: firewalls. Analiza si existen capacidades de firewall de la máquina y si está habilitado.
  • Software: webserver. Busca si hay un servidor web en la máquina.
  • SSH Support: Analiza si está levantado el SSH y que las características de configuración sean las adecuadas para otorgar los mayores niveles de seguridad.
  • SNMP Support: Mira si hay servidor SNMP corriendo en la máquina.
  • Databases: Busca SGBDs en la máquina (curiosamente sólo busca MySQL, de Postgress se han olvidado). Echo de menos también que ya que detecta que hay un mysql, investigue por ejemplo ciertas características que se pueden hacer sin permisos (como )
  • Servicios LDAP: Mira si existe servidor OpenLDAP
  • Software: PHP. Busca si hay PHP instalado y valida alguna opción de configuración
  • Logging y ficheros: Interesante análisis sobre diferentes opciones de syslog, aunque no detecta que syslog-ng está instalado y funcionando, aunque lo están
  • Servicios inseguros: Analiza el estado de Inetd. ¿¿No mira xinetd??
  • Banners e indentificación: Parámetros del /etc/motd
  • Tareas programadas: Si existe los servicios crond o atd levantados
  • Accounting
  • Tiempo y sincronización: analiza si existen opciones configuradas para sincronización horaria.
  • Criptografía: Validando expiración de certificado SSL
  • Virtualización: No hay Xen instalado, por lo que no mira nada en mi caso
  • Frameworks de seguridad: Busca si Selinux o AppArmor está en el sistema
  • Software: Integridad de ficheros. Busca por diferentes herramientas como AFICK, AIDE, Osiris, Tripwire, etc,...
  • Software: Malware scanners. Busca por diferentes antirootkits (chrootkit, Rootkit Hunter, ClamAV,...) Lo siento Yago, no busca por Unhide pero si son inteligentes lo harán
  • Herramientas de sistema: Mira sobre los permisos de algunos ficheros.
  • Directorios Home: Analiza ficheros de history de los usuarios.

Conclusiones de evaluación
Total, 123 checks hechos. Como habéis podido leer (si habéis llegado hasta aquí sin hacer trampa) la auditoría que se efectúa del sistema es bastante completa.
Sin embargo, y como he ido mencionando por el camino, encuentro ciertas deficiencias (añadiría soporte para buscar programas tan comunes como Qmail, DJBDNS, Tomcat, etc,...) e incluso malfuncionamiento de algunas cosas (servicios que dice que no están y están)
Casi se me sale el corazón del pecho, cuando he visto que me reportaba dos procesos zombies no controlados (fruto de algún troyano??? pom pom, pom pom) y realmente han sido dos falsos positivos. Para buscar procesos ocultos recomiendo encarecidamente Unhide, herramienta de la que ya hemos hablado alguna vez en este blog. También he utilizado Chkrootkit y ambos me parecen buenas alternativas.

En la misma línea, otro producto que también puede ser interesante y más versátiles para diferentes sistemas operativos es utilizar las herramientas del Center for Internet Security (CIS). Hasta hace unos meses, eran libres. Actualmente, lo siguen siendo sólo para miembros de CIS. Los demás sólo podemos descargar las guías/benchmarks de securización (gracias por el update Jesús).

Como digo, Lynis podría ser más profundo en algunos aspectos aunque, como decía quien envió el enlace a la herramienta, para un servidor casero bien vale.

1 comments :

CEOLEAS dijo...

Me gustaría saber en síntesis qué importancia tiene este software con PCI DSS?
Gracias.