Introducción a los escaneres de vulnerabilidades

Antes de hablar de OpenVAS, necesitaremos conocer un poco sobre el área al que este software pertenece; escáner de vulnerabilidades. Los escáneres de vulnerabilidades son herramientas que nos permiten realizar verificaciones tanto en nuestro sistema operativo como en la red donde este se encuentra. Hay escáneres también conocidos como analizadores de red, que realizan únicamente un análisis de los puertos abiertos en el sistema o en la red, mientras que otros, van un paso más allá. Estas herramientas utilizan diferentes protocolos para generar solicitudes que permiten determinar los servicios que se están ejecutando en un host remoto o en el propio host. Por tanto, nos permiten identificar diferentes riesgos de seguridad tanto en un sistema, como en diversos sistemas de una red. Un escáner de puertos archiconocido es el nmap, una herramienta poderosa que podemos encontrar en casi cualquier GNU/Linux, mientras que en este post, veremos una herramienta un poco más completa que un escáner de puertos: OpenVAS.

Introducción a OpenVas

Como hemos visto en el punto anterior ya sabemos muy por encima para qué sirve el OpenVAS(http://www.openvas.org/), pero no al 100% ya que esta herramienta hace muchas más cosas como iréis viendo a continuación. Esto no es un manual de uso de OpenVAS, digamos que es una introducción al mismo, con pinceladas tanto de instalación como de operación. OpenVAS (Open Vulnerability Assessment System) se denominó históricamente como GNessus, ya que esta herramienta proviene de un grupo de desarrolladores que trabajaban en el software “Nessus”, al cambiar este el tipo de licenciamiento, debieron decidir trabajar en esta variante, y, bautizarla con otro nombre. Como he indicado antes, iremos viendo que este software hace más cosas que escanear puertos , ya que integra un conjunto de herramientas accesibles desde un portal web ,  con el que no solo escanearemos si no que podremos gestionar de manera centralizada las vulnerabilidades de diversos sistemas. Todos estos módulos que componen OpenVAS son software libre, y la mayoría están distribuidos bajo la licencia GPL. La versión actual es la 6.0, existiendo una versión 7 a modo BETA, a partir de la versión 3 se permite la actualización continua de la base de datos de vulnerabilidades de red. A día de hoy superan las 34.000. Si queréis más información, tanto de arquitectura, versiones y demás, os dejo de nuevo la página del proyecto. OpenVAS: http://www.openvas.org/

Primeros pasos con openvas

OpenVAS es una herramienta principal de OSSIM (Open Source Security Information Management). OSSIM es una colección de herramientas bajo la licencia GPL, diseñadas para ayudar a los administradores de red/sistemas en la identificación de vulnerabilidades, detección de intrusiones y por tanto, amplio abanico en la prevención de ataques. En resumen, Openvas es utilizado para una parte de esta ayuda de OSSIM, y es la evaluación de las vulnerabilidades y control de accesos e intrusiones . Por tanto, nos permite analizar un PC o un servidor local/remoto y realizar varios tipos de informes sobre las vulnerabilidades detectadas. También añade un motor de correlación para cruzar todo lo que se ha identificado/detectado y proponer soluciones asociadas. OpenVAS funciona principalmente con 3 servicios:
  • Un servicio de escaneo ( scanner ), quien se encarga de realizar los análisis de las vulnerabilidades.
  • Un servicio cliente, utilizado como interfaz gráfico ( web ) necesario para configurar OpenVAS y presentar los resultados obtenidos o la ejecución de informes.
  • Un servicio manager , que mediante el OMP (OpenVAS Management Protocol) es el encargado de interactuar con todos los módulos (Scanner, Ciente, Framework, CLI…)
Login OpenVAS

Instalando OpenVAS en SUSE

Primero, vamos a configurar, como root, el respositorio para descargarnos el software (esta información se puede consultar en la web del desarrollador también):
zypper ar -f http://download.opensuse.org/repositories/security:/OpenVAS:/STABLE:/v6/openSUSE_13.3/ openvas
Hay que fijarse en la URL, podéis navegar por el árbol de directorios, en este caso elegiremos la v6 STABLE para Suse 13.1… podríamos en cambio seleccionar una versión de pruebas BETA como:
zypper ar -f http://download.opensuse.org/repositories/security:/OpenVAS:/UNSTABLE:/v7/openSUSE_12.3/ openvas
v7 inestable para OpenSuse 12.3. Añadimos el nombre de openvas para esta entrada en el repositorio. A continuación, instalaremos de manera sencilla mediante:
zypper ref && zypper in -t pattern openvas(el nombre al que hemos hecho referencia en el repositorio)

Arrancando OpenVAS

Una vez ya instalado el OpenVAS debemos de ejecutar:
openvas-setup
La primera vez siempre nos solicitará la creación de un user admin, así que debemos introducir un password para este usuario, realizará una migración de librerías, una carga de objetos y arranque y parada de procesos. Finalizada esta acción, ya podremos entrar al portal: https://localhost:9392/ Podemos entrar con admin y el password que le hayamos puesto, recomendable, aunque también podemos ejecutar en línea de comandos:
openvas-adduser
Podemos crear otro usuario, y entrar con este. Pero siempre para configurar grupos, roles, permisos,etc… con el usuario admin. Acceso OpenVAS En la captura de arriba podemos ver 2 escaneos realizados, a nuestra propia máquina. Vemos como la “señorita” nos indica un inbox para un escaneo rápido, un inbox donde podemos introducir IP’s.

Ejecutando OpenVAS

Vamos a trabajar un poco con esa IP que es nuestra propia máquina, y luego, entrar en detalle sobre las configuraciones de OpenVAS. Hemos realizado un escaneo a nuestra misma IP, es decir, la IP del servidor donde tenemos arrancado OpenVAS. Es un sistema basado en OpenSUSE 13.1 y actualizado. En un escaneo rápido nos identifica un riesgo de tipo medio, otro “Low” y 8 avisos. Si seleccionamos, la URL de el escaneo nos lleva a la siguiente pantalla, donde veremos un informe a alto nivel, el cual podemos exportar en diferentes formatos. OpenvasCap3 El riesgo identificado de mayor criticidad en este caso es uno de carácter “médium”, así que vamos a ver de qué se trata. OpenvasCap4 Podemos comprobar fácilmente que tiene que ver con el servicio de ntp, y su demonio ntpd. Nos informa de que es fácilmente explotable y de que el impacto es una denegación de servicio, un DoS. En este caso, nos indica una solución: actualizar a un parche de NTP o modificar la configuración del fichero ntp.conf. En este caso nos vamos al fichero /etc/ntp.conf y añadimos línea de “disable monitor”, posteriormente reiniciamos el servicio. Como se muestra en la captura siguiente, volvemos a relanzar un escaneo a la IP. OpenvasCap5 Podemos relanzar un escaneo ya ha sido ejecutado anteriormente o en el INBOX del “quick start”, incluir la misma IP como si fuese otro escaneo diferente. Fijaos en la captura anterior, un escaneo del 30 de Abril y otro del 5 de Mayo en curso. A continuación en la siguiente imagen, vemos los dos escaneos, uno del 30 de Abril con el riesgo identificado, y otro, del 5 de Mayo tras haber incluido la línea en el ntp.conf. OpenvasCap6 Se identifica como el riesgo ya no es “médium” si no que es “Low”. Es decir, hemos subsanado esa “vulnerabilidad” En esta pantalla, podremos realizar un nuevo escaneo, relanzar un “scan” ya ejecutado, ver los detalles del mismo si ha finalizado o eliminarlo. Volvemos a ver los detalles una vez ha concluido el “scan”, ya solo aparecen un “Low” y 6 “Logs”. OpenvasCap7 Tenemos la opción de filtrar los resultados, en caso de ser estos numerosos, y como vimos antes, también de realizar un export de los mismos en PDF, por ejemplo. Y seguimos con los escaneos, incluimos nuevas IP’s, y como se ve en la imagen se pueden lanzar varios a la vez. OpenvasCap8 Una vez han finalizado comprobamos que en estos sistemas se han encontrado vulnerabilidades de tipo “high”. OpenvasCap9 En el frame izquierdo podemos comprobar, los detalles e ir revisando. Lanzamos otro escaneo a una nueva IP y modificamos los combos de arriba, justo encima del filtro para que nos actualice la pantalla cada 30 segundos sin forzarlo nosotros. Vamos a ver a continuación, algunas de las vulnerabilidades encontradas, en sistemas más o menos “actuales” y con cierto nivel de parcheado. Hay que tener en cuenta, que la aplicación nos marca una criticidad en base a unos estándares de información recopilada (lo explicaré en el siguiente punto), y que a veces, dentro del gran número de vulnerabilidades encontradas, debemos tener nuestro propio criterio de SysAdmin, ya que encontraremos soluciones que pasarán por actualizar el S.O, BBDD, etc… y no podremos llevarlas a cabo, bien por el tipo de entornos corporativos industriales donde corren los sistemas o por la pérdida del soporte de aplicaciones comerciales instaladas en dichos sistemas. Tendremos entonces que investigar, si la política de securización por capas o perimetral sería de utilidad en esos casos, pero esta es otra historia. OpenvasCa10 A partir de aquí, sería repetir lo mismo. Revisar el escaneo, explorar los detalles encontrados, exportar la información en un informe si se da el caso de que alguien nos ha pedido resultados y no ha salido de nosotros, etc.

¿Algo más acerca de OpenVAS?

Pues la verdad, es que mucho más. Pero a partir de aquí se nos abre un gran abanico de posibilidades. De rastreo de vulnerabilidades y trabajo para el parcheo de las mismas, hay muchos sistemas operativos y cada uno con sus peculiaridades y vulnerabilidades. OpenVAS se puede complementar con muchas otras herramientas que nos serán de utilidad a la hora de securizar nuestro sistema. Antes de cerrar el artículo voy a hablar un poco de los componentes de OpenVAS así como de otros datos de interés. Por ejemplo, al usar OpenVAS se ve a menudo la palabra NVT’s , actualizando, cargando o simplemente en las opciones de Administración, bien, los NVT son los Network Vulnerability Tests también denominados plugins en la aplicación. Como hemos indicado anteriormente, a día de hoy estas superan las 34.000. Se pueden actualizar desde la interfaz web o desde línea de comandos. Por ejemplo, para actualizar desde CLI tendríamos que teclear “openvas-nvt-sync”, seguidamente se conectará con los servidores de OpenVAS y comenzará la actualización. Es básico tener siempre actualizado los NVT de cara a un análisis óptimo. Unos ejemplos de NVT : Esta base de datos se cruza con los CVE, de los cuales tenemos otro ejemplo a continuación, de ahí sacamos que ante una vulnerabilidad tenemos una posible solución. OpenvasCa11 CVE Common Vulnerabilities and Exposures , es el significado de las siglas CVE . Es una información registrada de manera oficial a modo de lista sobre las vulnerabilidades conocidas, donde cada referencia tiene un número de identificación único.De esta forma se tiene una identificación única con una nomenclatura común para el conocimiento público de este tipo de problemas y así facilitar la contención o solventación sobre dichas vulnerabilidades. CVSS (Common Vulnerability Scoring System) proporciona un método estandarizado y abierto universal para la calificación de las vulnerabilidades. La mayoría de NVTs se desarrollan sobre la base de una CVE y cualquier CVE se asocia con un CVSS. La práctica actual de los desarrolladores de NVT es sumar la puntuación CVSS como parte de la descripción NVT. OpenvasCa12 CPE: Common Platform Enumeration OpenvasCa13 Para finalizar, vuelvo a recalcar que OpenVAS es una herramienta más, que es muy útil , y que se complementa muy bien con otras, pero no es mágica ni infalible. Veremos en siguientes entradas como funciona un escaneo de OpenVAS contra una máquina con un IDS instalado, y los avisos que este recogería, y con alguna herramienta más. Espero que os haya gustado o al menos, que haya sido algo útil.