Cómo utilizar OpenVAS para la evaluación de vulnerabilidades



 

En la publicación anterior tratamos el tema de las debilidades relacionadas con la infraestructura tecnológica y la importancia de identificar, analizar y evaluar las vulnerabilidades de seguridad, así como de las tareas relacionadas con estas actividades.
En esta ocasión conoceremos la forma de poner en práctica la evaluación a través de OpenVAS(Open Vulnerability Assessment System), un escáner de vulnerabilidades de uso libre utilizado para la identificación y corrección de fallas de seguridad.

Características de OpenVAS

Se trata de un framework que tiene como base servicios y herramientas para la evaluación de vulnerabilidades y puede utilizarse de forma individual o como parte del conjunto de herramientas de seguridad incluidas en OSSIM (Open Source Security Information Management).
Distribuciones como Kali Linux ya cuentan con esta herramienta instalada de forma predefinida, misma que puede ser utilizada a través de dos clientes, desde línea de comandos (OpenVAS CLI) o una interfaz web (Greenbone Security Assistant). Una vez instalada en el sistema, también puede utilizarse desde Metasploit, el framework para la explotación de vulnerabilidades.
A través de las interfaces se interactúa con dos servicios: OpenVAS Manager y OpenVAS Scanner. El gestor es el servicio que lleva a cabo tareas como el filtrado o clasificación de los resultados del análisis, control de las bases de datos que contienen la configuración o los resultados de la exploración y la administración de los usuarios, incluyendo grupos y roles.
Por su lado, el escáner ejecuta las denominadas NVT (Network Vulnerability Tests), es decir, laspruebas de vulnerabilidades de red, conformadas por rutinas que comprueban la presencia de un problema de seguridad específico conocido o potencial en los sistemas. Las NVT se agrupan en familias de pruebas similares, por lo que la selección de las familias y/o NVT individuales es parte de la configuración de escaneo.
El proyecto OpenVAS mantiene una colección de NVT (OpenVAS NVT Feed) que crece constantemente y que actualiza los registros semanalmente. Los equipos instalados con OpenVAS se sincronizan con los servidores para actualizar las pruebas de vulnerabilidades.

Cómo configurar el escáner de vulnerabilidades

En este ejemplo vamos a conocer la manera más rápida y sencilla de utilizar OpenVAS, a través de la interfaz web y con el sistema operativo Kali Linux que cuenta con esta herramienta de forma preinstalada. Para comenzar es necesario configurar la herramienta a través del script openvas-setup que se ubica en la siguiente ruta:
Applications -> Kali Linux -> Vulnerability Analysis –> OpenVAS -> openvas-setup
Entre otras cosas, esta secuencia de comandos permite sincronizar los NVT, iniciar los servicios para el gestor y escáner, inicializar y actualizar las bases de datos, así como cargar los plugins que permiten utilizar herramientas de seguridad integradas en OpenVAS, como nikto, nmap, amap,snmpwalk, w3af, entre otras.
Cuando se ejecuta por primera vez, se solicita la asignación de una contraseña al usuario por defecto (admin), para iniciar la interacción de la interfaz con los servicios de OpenVAS.

openvas1

Uso básico de OpenVAS

Una vez que el script ha concluido con éxito la configuración, se comienza a utilizar el escáner desde la siguiente URL:
https://localhost:9392
En este momento, solo existe la cuenta de acceso inicial con el usuario admin y la contraseña generada durante la configuración:

openvas2
Luego de iniciar la sesión de trabajo, se tienen las siguientes opciones para configurar e iniciar el gestor y escáner de OpenVAS:
  • Scan management: la gestión del escáner permite crear nuevas tareas de exploración, modificar aquellas que se hayan creado previamente, revisar las notas (comentarios asociados con un NVT que aparecen en los informes), o invalidaciones (reglas para cambiar amenazas de elementos dentro de uno o varios informes, especialmente utilizadas cuando se presentan falsos positivos).
  • Asset management: en la pestaña de gestión de activos se enlistan los hosts que han sido analizados junto con el número de vulnerabilidades identificadas.
  • Configuration: la tercera pestaña permite configurar los objetivos, asignar credenciales de acceso para revisiones de seguridad locales, configurar el escaneo (selección de NVT, parámetros generales y específicos para el servidor de exploración), programar escaneos, configurar la generación de los informes, entre otras opciones.
  • Extras: en general, en esta pestaña se muestra información sobre las opciones de configuración, del desempeño o de la gestión de seguridad de la información de OpenVAS.
  • Administration: permite gestionar los usuarios del escáner, la configuración para la sincronización de NVT Feed y muestra las opciones de configuración de OpenVAS.
  • Help: como su nombre lo indica, la sexta pestaña ofrece información de ayuda para todos los elementos de la interfaz web.
El inicio rápido se realiza desde la pestaña Configuration, a través de configurar un objetivo o un conjunto de sistemas (hosts) a analizar. Los sistemas se pueden identificar a través de sus direcciones IP, nombres de host o por su notación de red CIDR (Classless Inter-Domain Routing):
openvas3
Una vez realizada la configuración del objetivo, en la sección Scan Management es necesario generar una nueva tarea (new task) para la ejecución del análisis y evaluación. La tarea se conforma por un objetivo y una configuración de escaneo. La ejecución significa iniciar el escaneo y como resultado se obtiene un informe con los resultados. A continuación se muestran las opciones de configuración de una tarea:
openvas4

Por último, es necesario ejecutar la tarea para obtener los resultados de las comprobaciones realizadas por las NVT. En las siguientes imágenes se muestra el proceso del escaneo:

openvas5
openvas6
openvas7

Con la conclusión del escáner, se obtienen los resultados de las vulnerabilidades priorizadas de acuerdo al impacto sobre los sistemas (alto, medio o bajo) y la cantidad de las mismas para cada categoría:
openvas10

En el informe se muestra con mayor detalle la vulnerabilidad identificada y evaluada. Incluye la prueba de red utilizada (NVT), un resumen del hallazgo, así como una posible solución a la falla:
openvas11

Idealmente, los escáneres deben utilizarse como una medida que permita complementar las prácticas de seguridad ya existentes dentro de una organización, y con base en los resultados, se debe generar un plan de remediación, que debe tener seguimiento para corregir cualquier vulnerabilidad. En ese sentido, el Vulnerability Assessment es una técnica utilizada para evaluar los recursos y activos presentes en una empresa; este tipo de auditoría tiene como base laidentificación de puertos abiertos, servicios disponibles y a partir de ello la detección de posibles fallas presentes en los sistemas objetivos.
La finalidad de un Vulnerability Assessment es conocer qué vulnerabilidades existen en los sistemas de una compañía y de esa forma elaborar un plan de acción adecuado.
De esta manera, se puede llevar a cabo una evaluación de seguridad a los sistemas de una organización en busca de aumentar la seguridad en los mismos. Adicional a esta actividad, existen otras preocupaciones, por lo que es necesario complementarla con soluciones de seguridad, como aquellas contra códigos maliciosos, firewalls, herramientas de detección de intrusos y buenas políticas de seguridad contribuyen a la protección de los activos (incluida la información) y a la conjunción de distintos enfoques de seguridad.
 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. 
 OpenvasCap3El riesgo identificado de mayor criticidad en este caso es uno de carácter “médium”, así que vamos a ver de qué se trata. OpenvasCap4Podemos 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. OpenvasCap5Podemos 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. OpenvasCap6Se 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”. OpenvasCap7Tenemos 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. OpenvasCap8Una vez han finalizado comprobamos que en estos sistemas se han encontrado vulnerabilidades de tipo “high”. OpenvasCap9En 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. 
 OpenvasCa12CPE: 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.