Comprueba la seguridad de tu servidor Debian con Debsecan

Comprueba la seguridad de tu servidor Debian con Debsecan

Sergio De Luz

Cuando instalamos un servidor Linux basado en Debian, siempre es muy recomendable realizar un hardening completo para proteger al máximo el sistema operativo y todos los servicios. Con el paso del tiempo, siempre existen nuevas vulnerabilidades en los diferentes softwares que tenemos instalados, e incluso en el propio kernel de Linux. Gracias a una herramienta como Debsecan, podremos escanear por completo nuestro sistema operativo, detectando los paquetes que tenemos instalados y los fallos de seguridad que se han encontrado. Hoy en RedesZone os vamos a enseñar cómo utilizarlo.

Instalación de Debsecan en Debian

Esta herramienta no se encuentra instalada por defecto en el sistema operativo, por tanto, debemos instalarla manualmente a través de los repositorios oficiales de la distribución. Para instalarla, deberemos ejecutar la siguiente orden:

sudo apt install debsecan

En la siguiente captura podéis ver todos los paquetes adicionales que debe instalar para que funcione correctamente, el especio total de disco que usaremos será de menos de 60MB, por lo que no es un programa que necesite demasiados recursos a nivel de almacenamiento.

Una vez que lo hayamos instalado, podemos ejecutarlo con la ayuda, para que nos indique qué argumentos podremos utilizar y qué opciones tenemos disponibles:

debsecan --help

En la siguiente captura podéis ver todas las opciones que tenemos disponibles al utilizar esta herramienta:

También podremos ejecutar las páginas man para la ayuda más completa de esta herramienta, para abrir el manual completo, basta con ejecutar lo siguiente:

man debsecan

Si ejecutamos este comando, accederemos a la documentación completa de la herramienta, donde veremos una explicación detallada de todo lo que es capaz de hacer, cómo lo hace y también qué comandos debemos ejecutar para realizar todas las pruebas de seguridad en el sistema operativo.

Funcionamiento de esta herramienta

La forma de funcionamiento de debsecan es realmente fácil, simplemente deberemos ejecutar el programa con el argumento de la versión de Debian que estamos utilizando:

debsecan --suite buster

Una vez que ejecutemos este comando, nos saldrá un listado de todas las vulnerabilidades que ha tenido o tenemos en esta versión, y también una descripción de si hay poca urgencia por solucionarlo, si ya está solucionado, aunque tenga poca urgencia, o si simplemente está solucionado el problema. También nos mostrará si no está solucionado el fallo de seguridad, pero sí lo tiene en la base de datos de vulnerabilidades.

Tenemos la posibilidad de configurar debsecan para que siempre utilice la versión de «Debian Buster» (la que estamos usando), sin necesidad de definirlo en un argumento. Para hacer esto, deberemos ejecutar la siguiente orden:

sudo dpkg-reconfigure debsecan

Y nos saldrá la siguiente pantalla, donde deberemos elegir la versión de nuestra distribución, en la siguiente captura podéis ver los detalles:

Si aprovechamos a utilizar este asistente de configuración, también podremos configurar debsecan para que nos envíe automáticamente y una vez al día, cualquier cambio que ocurra en las vulnerabilidades vía email:

A continuación, definiremos nuestra dirección de correo electrónico, y el propio sistema operativo se encargará de mandarnos un email diario sobre el estado de la seguridad del sistema. También nos preguntará que Debsecan descarga la información de vulnerabilidades desde Internet, si el servidor no está conectado a Internet, o no queremos que haga solicitudes a Internet, podremos definir una URL con la información de vulnerabilidades para añadirla a su base de datos. Una vez configurado, ya podremos ejecutar debsecan sin necesidad de poner «–suite».

Una orden muy interesante es la siguiente:

debsecan --suite buster --only-fixed

Esta opción enumera las vulnerabilidades para las que hay una solución disponible, y tengamos que actualizar el sistema operativo para librarnos de ellas. Hay que tener en cuenta que es posible que aparezca una solución, aunque el paquete todavía no esté disponible en el repositorio de Debian para su actualización o instalación. Si nos aparece vacío, significa que tenemos todas las actualizaciones y parches disponibles:

Si ejecutamos la orden siguiente:

debsecan --format detail

Nos mostrará todas las vulnerabilidades arregladas o no pero más en detalle, además, nos mostrará qué versión del software tiene el problema de seguridad, y qué versión lo soluciona, tanto a nivel de parche inestable como del repositorio principal. Es posible que el parche esté en el repositorio «unstable» durante semanas o meses, por lo que debemos tenerlo muy en cuenta.

En las páginas man, podremos ver más en detalle cómo funciona la whitelist. Imaginemos que queremos poner un determinado paquete con código CVE en una lista blanca, de tal forma que nunca nos aparezca en el listado del reporte, para hacerlo, simplemente tendremos que ejecutar lo siguiente:

debsecan --add-whitelist CVE-XXXX-XXXX

Tendremos que poner el código CVE para que se añada a la lista blanca. En caso de quitar algo de la lista blanca también podremos hacerlo fácilmente, para que vuelva a incluirse en los reportes diarios de vulnerabilidades.

La herramienta debsecan es muy útil para mantenernos informados de todos los fallos de seguridad que se van encontrando y que afectan a nuestro sistema operativo Debian, ya sea al propio sistema operativo, o a los paquetes que tengamos instalados. Gracias a debsecan podremos recibir emails diarios con las novedades en cuanto a la resolución de las vulnerabilidades por parte del equipo de desarrollo de los diferentes softwares.

Como medida de seguridad fundamental en cualquier servidor, nunca debemos instalar programas o paquetes que no utilicemos, para reducir al mínimo la superficie de exposición a una vulnerabilidad grave, por supuesto, realizar un hardening del servidor es algo fundamental.

Por último, debemos prestar especial atención a las actualizaciones que tengamos en el sistema operativo, porque es recomendable revisar diariamente estas actualizaciones e incluso realizar scripts automáticos para actualizar los repositorios cada cierto tiempo y que nos avise por correo electrónico sobre los cambios que haya, de esta forma, podremos conocer diariamente e incluso cada hora si se ha lanzado una nueva actualización para nuestro sistema operativo. También se podría automatizar la actualización automática del sistema operativo Debian, pero no es recomendable, sobre todo si lo tenemos en un entorno de producción, porque algo podría salir mal e incluso podríamos estar utilizando software que tengamos instalado y requiera una nueva actualización de software.

¡Sé el primero en comentar!