Auditoría de seguridad sencilla para Semplice-Linux

0 Flares Twitter 0 Facebook 0 Email -- Google+ 0 Reddit 0 StumbleUpon 0 Pin It Share 0 LinkedIn 0 Buffer 0 0 Flares ×

lynis-auditoria-de-seguridad

Ya hemos hablado de Semplice-Linux en este blog y en el de los amigos de la Asociación Lignux, donde aprendimos a cifrar el tráfico mediante DNScrypt. Básicamente se trata de una distribución ligera, basada en Debian Sid, que nos permite recuperar funcionalidades en equipos obsoletos.

El objetivo de esta entrada consiste en saber cómo hacer una auditoría de seguridad que nos permita detectarle vulnerabilidades y nos proporcione a la vez las sugerencias de seguridad derivadas del examen que hemos hecho a nuestro equipo. Para ello vamos a utilizar Lynis, una herramienta que nos servirá para analizar puertos, programas y vulnerabilidades de manera automatizada.

Una nota sobre el monitoreo de seguridad de un equipo

El proceso donde intervienen múltiples actividades que requieren una supervisión integral y automatizada se realiza a través de los llamados Sistemas SCADA (Supervisory Control And Data Adquisition). Generalmente, estos sistemas se aplican en los grandes procesos productivos o en infraestructuras críticas, como lo pueden ser servidores que se encuentren prestando servicios.

Normalmente, interactuamos con nuestro ordenador emitiendo órdenes y recibiendo respuestas. En el nivel más simple, si emitimos una orden y recibimos una respuesta que no corresponde a ella, podremos percibir un error en el sistema. Ahora bien, subiendo un peldaño en la complejidad, veremos cómo el funcionamiento de un ordenador (no hablemos ya de una red de equipos) es la consecuencia de múltiples procesos simultáneos, imposibles de controlar de manera individual.

La necesidad de sistematizar el control de los mismos, ordenarlos, automatizarlos y depurarlos es imprescindible para cualquier sistema complejo, y más aún cuando de él depende el funcionamiento de un servicio esencial, entendiendo como tal desde el ordenador que necesitamos para nuestro trabajo de fin de carrera, hasta el complejo de servidores que almacenan los datos de los salarios de una gran empresa.

Lynis funciona como un sistema SCADA en nuestro equipo particular, analizando arranques, usuarios, puertos, unidades, etc. Y nos proporciona respuestas y sugerencias en función del nivel de vulnerabilidad detectado, proporcionándonos un código de error que nos servirá para adoptar una solución.

Instalación de Lynis y monitoreo

Lo primero que tenemos que hacer es abrir la terminal e instalar el paquete, y tras ello comenzar el análisis:

sudo apt-get install lynis
lynis -c -Q

Ejecutando lynis -c -Q nos aseguramos un escaneo completo del equipo, sin tener que ir paso a paso. Solo tendremos que esperar unos minutos y ver qué resultados nos ofrece.

Lo primero que hará será ofrecernos datos de nuestro equipo y después irá sección por sección: herramientas del sistema, kernel, boot, memoria, etc.

[+] Initializing program
------------------------------------
  - Detecting OS...                                           [ DONE ]

  ---------------------------------------------------
  Program version:           2.1.1
  Operating system:          Linux
  Operating system name:     Debian
  Operating system version:  stretch/sid
  Kernel version:            3.19
  Hardware platform:         i686
  Hostname:                  review-desktop
  Auditor:                   [Unknown]
  Profile:                   /etc/lynis/default.prf
  Log file:                  /var/log/lynis.log
  Report file:               /var/log/lynis-report.dat
  Report version:            1.0
  Plugin directory:          /etc/lynis/plugins
  ---------------------------------------------------
  - Checking profile file (/etc/lynis/default.prf)...
  - Program update status...                                  [ SKIPPED ]

Ahora veremos algunos programas y criterios que vienen por defecto en nuestra distribución de Semplice-Linux que, según Lynis, serían susceptibles de ser modificados o incluidos.

Resultados de la auditoría

Para ver cuáles son los aspectos más urgentes a resolver, podemos realizar esta consulta:

root@root: grep Warning /var/log/lynis.log
[08:35:49] Warning: Reboot of system is most likely needed [KRNL-5830]
[08:39:15] Warning: Can't find any security repository in /etc/apt/sources.list or sources.list.d directory [PKGS-7388]
[08:46:38] Warning: Found one or more stratum 16 peers [TIME-3116]

Nos ha dado tres incidencias con tres códigos de error. Los mismos los podemos encontrar en la propia web de los desarrolladores del software. En nuestro caso concreto, estas son las cosas urgentes a resolver:

  • [KRNL-5830]: nos recomienda reiniciar el sistema, lo cual tiene sentido, porque antes de hacer la auditoría hemos actualizado algunos paquetes necesarios que no estaban incluidos en el CD de instalación de Semplice-Linux.
  • [PKGS-7388]: esta advertencia es lógica. Nos pide que agreguemos un repositorio de seguridad adicional a los que ya tenemos, pero como Semplice-Linux está basado en Debian Sid, no hay repositorios de seguridad dado que eventuales fallos vienen corregidos simplemente con la actualización del paquete afectado.
  • [TIME-3116]: esto quiere decir que el servidor no está sincronizado con la hora del sistema, pero esto no nos preocupa, ya que es una configuración por defecto de Debian Sid. No obstante, si vamos a trabajar con un servidor, conviene hacer la sincronización.

Ahora vamos a ver las sugerencias. En esta primera parte nos recomienda instalar una serie de paquetes que mejorarán la protección del equipo:

root@root: grep Suggestion /var/log/lynis.log
[12:05:24] Suggestion: Install libpam-tmpdir to set $TMP and $TMPDIR for PAM sessions [CUST-0280]
[12:05:24] Suggestion: Install libpam-usb to enable multi-factor authentication for PAM sessions [CUST-0285]
[12:05:24] Suggestion: Install 'ecryptfs-utils' and configure for each user. [CUST-0520]
[12:05:24] Suggestion: Install apt-listbugs to display a list of critical bugs prior to each APT installation. [CUST-0810]
[12:05:24] Suggestion: Install apt-listchanges to display any significant changes prior to any upgrade via APT. [CUST-0811]
[12:05:24] Suggestion: Install debian-goodies so that you can run checkrestart after upgrades to determine which services are using old versions of libraries and need restarting. [CUST-0830]
[12:05:24] Suggestion: Install debsecan to generate lists of vulnerabilities which affect this installation. [CUST-0870]
[12:05:24] Suggestion: Install debsums for the verification of installed package files against MD5 checksums. [CUST-0875]
[12:05:24] Suggestion: Install fail2ban to automatically ban hosts that commit multiple authentication errors. [DEB-0880]

En esta segunda parte, las recomendaciones van orientadas sobre todo a reforzar la autenticación del usuario del sistema, ya sea mediante contraseñas en el arranque, autenticación de dispositivos, comprobación de firmas, etc:

[12:05:25] Suggestion: Set a password on GRUB bootloader to prevent altering boot configuration (e.g. boot in single user mode without password) [BOOT-5122]
[12:05:26] Suggestion: Determine runlevel and services at startup [BOOT-5180]
[12:05:32] Suggestion: Install a PAM module for password strength testing like pam_cracklib or pam_passwdqc [AUTH-9262]
[12:05:32] Suggestion: Configure password aging limits to enforce password changing on a regular base [AUTH-9286]
[12:05:32] Suggestion: Default umask in /etc/login.defs could be more strict like 027 [AUTH-9328]
[12:05:32] Suggestion: Default umask in /etc/init.d/rc could be more strict like 027 [AUTH-9328]
[12:05:33] Suggestion: To decrease the impact of a full /tmp file system, place /tmp on a separated partition [FILE-6310]
[12:05:33] Suggestion: To decrease the impact of a full /var file system, place /var on a separated partition [FILE-6310]
[12:05:33] Suggestion: Disable drivers like USB storage when not used, to prevent unauthorized storage or data theft [STRG-1840]
[12:05:33] Suggestion: Disable drivers like firewire storage when not used, to prevent unauthorized storage or data theft [STRG-1846]
[12:05:34] Suggestion: Split resolving between localhost and the hostname of the system [NAME-4406]
[12:05:42] Suggestion: Purge old/removed packages (52 found) with aptitude purge or dpkg --purge command. This will cleanup old configuration files, cron jobs and startup scripts. [PKGS-7346]
[12:05:42] Suggestion: Install debsums utility for the verification of packages with known good database. [PKGS-7370]
[12:06:31] Suggestion: Install a package audit tool to determine vulnerable packages [PKGS-7398]
[12:06:32] Suggestion: Access to CUPS configuration could be more strict. [PRNT-2307]
[12:06:32] Suggestion: Configure a firewall/packet filter to filter incoming and outgoing traffic [FIRE-4590]
[12:06:34] Suggestion: Add legal banner to /etc/motd, to warn unauthorized users [BANN-7122]
[12:06:34] Suggestion: Add a legal banner to /etc/issue, to warn unauthorized users [BANN-7126]
[12:06:34] Suggestion: Add legal banner to /etc/issue.net, to warn unauthorized users [BANN-7130]
[12:06:34] Suggestion: Enable process accounting [ACCT-9622]
[12:06:34] Suggestion: Enable sysstat to collect accounting (no results) [ACCT-9626]
[12:06:35] Suggestion: Enable auditd to collect audit information [ACCT-9628]
[12:06:36] Suggestion: Check ntpq peers output [TIME-3116]
[12:06:36] Suggestion: Check ntpq peers output for unreliable ntp peers and correct/replace them [TIME-3120]
[12:06:36] Suggestion: Check available certificates for expiration [CRYP-7902]
[12:06:37] Suggestion: Install a file integrity tool to monitor changes to critical and sensitive files [FINT-4350]
[12:06:37] Suggestion: Determine if automation tools are present for system management [TOOL-5002]
[12:06:38] Suggestion: One or more sysctl values differ from the scan profile and could be tweaked [KRNL-6000]
[12:06:38] Suggestion: Harden compilers like restricting access to root user only [HRDN-7222]
[12:06:38] Suggestion: Harden the system by installing at least one malware scanner, to perform periodic file system scans [HRDN-7230]

CISOFY, la empresa desarrolladora, ofrece además un plan de 15 dólares mensuales de auditoría de equipos y soluciones a los resultados del test de Lynis, pensado sobre todo para entornos corporativos. No obstante, el paquete es lo suficientemente completo para los usuarios de a pie, e informa de soluciones bastante sencillas de obtener.

Diego Herchhoren