OpenVAS/Nessus: Evaluación de Vulnerabilidades

1. ¿Por qué hacen falta evaluaciones de seguridad?

Todas las organizaciones, sin importar su tamaño o sector, necesitan revisar de forma periódica la salud de sus redes, servidores y aplicaciones. El objetivo no es otro que localizar fallos y brechas antes de que un atacante real los aproveche. Estas revisiones pueden ir desde simples chequeos automatizados hasta simulacros completos de ataque con equipo rojo (red team). Cada tipo de revisión aporta algo distinto:

  • Evaluaciones de vulnerabilidades: bucean rápido con escáneres y listas de verificación, marcan qué cumple y qué no.
  • Pruebas de penetración (pentests): simulan asaltos reales, explotan fallos y muestran hasta dónde puede llegar un atacante.
  • Auditorías de cumplimiento: exigidas por normas como PCI-DSS, HIPAA o ISO 27001; buscan certificar que tu empresa cumple con regulaciones externas.
  • Bug bounty: abres tu entorno (con condiciones) al público para que reporte vulnerabilidades a cambio de recompensas económicas.
  • Equipo rojo interno: profesionales que, como hackers autorizados, atacan tu red buscando objetivos específicos.
  • Equipo púrpura: mezcla de defensores (blue team) y atacantes (red team) colaborando estrechamente para optimizar las defensas.

Cada enfoque tiene su lugar en una estrategia de seguridad madura; la idea es combinar lo técnico, lo procedimental y lo normativo para una protección integral.


2. En detalle: Evaluación de vulnerabilidades

Una vulnerability assessment es la base de toda estrategia de seguridad. Su misión es:

  1. Descubrir activos (servidores, aplicaciones, dispositivos).
  2. Escanear esos activos con herramientas automáticas (por ejemplo, Nessus o OpenVAS).
  3. Validar manualmente las detecciones críticas, medias y altas para descartar falsos positivos.
  4. Clasificar cada hallazgo según riesgo (baja, media, alta).
  5. Proponer acciones de remediación (parche, configuración o eliminación).

2.1. Metodología tipo (8 pasos)

  1. Identificar activos: inventario de hardware, software, servicios en la nube y SaaS.
  2. Recolectar información: IPs, puertos, versiones de software.
  3. Escaneo inicial: descubre puertos y servicios con escáneres de red.
  4. Análisis de vulnerabilidades: herramientas automáticas indican posibles fallos.
  5. Validación manual: el analista prueba exploits mínimos para confirmar vulnerabilidades reales.
  6. Evaluación de riesgo: usa matrices que cruzan probabilidad e impacto.
  7. Informe y priorización: detalla cada hallazgo y da un plan de acción ordenado.
  8. Plan de remediación: guía para parchear, endurecer o mitigar.

3. Términos clave con ejemplos

  • Vulnerabilidad: debilidad que un atacante puede aprovechar.
    • Ejemplo: inyección SQL que permite extraer datos de una base sin autenticación.
  • Amenaza: agente o técnica que explota una vulnerabilidad.
  • Exploit: código o herramienta que hace posible el ataque.
  • Riesgo = probabilidad × impacto.
    • Matriz cualitativa (bajo/medio/alto): una falla fácil de explotar y que afecta a datos críticos será riesgo alto.

4. Gestión de activos

Antes de escanear, necesitas saber qué proteger. Tu inventario debe incluir:

  • Ordenadores y móviles (HDD/SSD, unidades extraíbles).
  • Servidores físicos y en la nube (AWS, Azure, GCP).
  • Aplicaciones SaaS (Google Drive, Office 365, Dropbox, etc.).
  • Dispositivos de red (routers, firewalls, switches, IDS/IPS, DLP).

Cada vez que añadas o retires un recurso, registra el cambio. Así evitarás sorpresas durante un escaneo.


5. Estándares de evaluación

Para que tu evaluación sea reconocida oficialmente, puedes basarte en:

  • PCI DSS (tarjetas de pago): exige escaneos internos y externos segmentados en tu entorno de datos de titulares de tarjetas (CDE).
  • HIPAA (salud en EE. UU.): requiere evaluación de riesgos para proteger datos de pacientes.
  • FISMA (organismos federales de EE. UU.): documentación y pruebas de gestión de vulnerabilidades.
  • ISO 27001: análisis internos y externos trimestrales; exige un Sistema de Gestión de Seguridad de la Información.

6. Pentesting: de caja negra a caja blanca

Las pruebas de penetración simulan ataques reales bajo acuerdo legal. Pueden ser:

  • Black-box: sin información previa; el pentester descubre la red por sí mismo.
  • Grey-box: con datos parciales (rangos de IP o credenciales de usuario).
  • White-box: acceso total: diagramas de red, configuraciones, código fuente.

6.1. Especialidades de pentesters

  • Aplicaciones: web, APIs, móviles; revisan código y explotan lógicas.
  • Infraestructura: routers, firewalls, Active Directory; combinan scripts y herramientas.
  • Físico: pruebas de acceso a instalaciones (forzar puertas, tailgating, conductos de ventilación).
  • Ingeniería social: phishing, vishing o engaños presenciales a empleados.

Nota: antes de un pentest, suele decirse que debes tener un ciclo sólido de evaluaciones de vulnerabilidades. Si llegaron demasiados hallazgos, saturas al equipo de remediación.


7. De la teoría a la práctica: Scanners populares

7.1. OpenVAS

OpenVAS (Open Vulnerability Assessment System) es una plataforma gratuita y de código abierto que permite realizar análisis de seguridad sobre una gran variedad de sistemas. Es parte del proyecto Greenbone y se ha convertido en una herramienta de referencia para quienes buscan una solución robusta sin coste.

Características destacadas:

  • Soporta escaneos autenticados y no autenticados.
  • Base de datos actualizada de vulnerabilidades (NVTs).
  • Compatible con scripts personalizados y adaptaciones según políticas de seguridad específicas.

Configuración básica:

  • Se instala habitualmente en distribuciones Linux como Kali o Parrot.
  • Puede funcionar en modo cliente-servidor para gestionar múltiples objetivos desde una consola central.

Cómo usarlo:

  1. Inicia el servicio: sudo gvm-start o sudo greenbone-nvt-sync (según la distro).
  2. Accede a través del navegador: normalmente por https://localhost:9392.
  3. Crea un nuevo «Target», define el nombre, la IP y el método de autenticación (si se requiere).
  4. Crea una «Task» y vincúlala al Target. Puedes elegir una configuración rápida como «Full and Fast» o personalizarla.
  5. Ejecuta y espera resultados.

Informes y análisis:

  • Presenta resultados por severidad (bajo, medio, alto, crítico).
  • Puedes exportar en formatos PDF, HTML o XML.
  • El informe incluye descripciones detalladas, referencias a CVEs y recomendaciones.

Ventajas:

  • Gratuito, ideal para PYMEs o auditorías internas.
  • Permite escaneos remotos o autenticados (por ejemplo vía SSH).
  • Actualización constante de plugins (NVTs).

7.2. Nessus Essentials

Nessus, desarrollado por Tenable, es uno de los escáneres de vulnerabilidades más populares del mundo. Su versión gratuita, Nessus Essentials, permite escanear hasta 16 hosts y es ideal para pruebas de laboratorio o pequeños entornos.

Instalación:

  • Descarga el paquete .deb desde el sitio oficial.
  • Instálalo con sudo dpkg -i Nessus-<versión>_amd64.deb.
  • Activa el servicio: sudo systemctl start nessusd.service.
  • Ingresa a https://localhost:8834, activa tu licencia y configura tu usuario.

Primer escaneo:

  • Accede al panel y haz clic en “New Scan”.
  • Elige “Basic Network Scan”.
  • Introduce la IP o rango objetivo.
  • En “Discovery”, selecciona qué puertos se escanearán (comunes o todos).
  • En “Assessment”, puedes activar detección de vulnerabilidades web, fuerza bruta o análisis de credenciales.
  • Opcionalmente, ajusta el rendimiento (velocidad, orden aleatorio, etc.).

Escaneo autenticado:

  • Nessus permite escanear desde dentro del sistema si proporcionas credenciales.
  • Métodos: usuario/contraseña, SSH key, Windows hash, etc.
  • También escanea bases de datos y servicios como FTP, IMAP o HTTP.

Filtros y análisis:

  • Permite filtrar resultados por severidad, plugin ID o tipo de fallo.
  • Puedes revisar recomendaciones específicas y enlaces a CVEs.
  • Además, identifica configuraciones débiles que pueden no ser vulnerabilidades en sí, pero que reducen la seguridad.

Exportación de resultados:

Nessus también ofrece la opción de exportar escaneos en dos formatos principales:

  • .nessus (por ejemplo, scan.nessus): un archivo XML que contiene la configuración del escaneo y los resultados de los plugins.
  • .db (por ejemplo, scan.db): incluye el archivo .nessus más la base de conocimientos del escaneo, el registro de auditoría del plugin y cualquier archivo adjunto generado durante la ejecución del escaneo.

Ambos formatos son útiles según la necesidad. El .nessus es ideal para importar en otras consolas Nessus o Tenable.io, mientras que el .db es más completo para auditorías profundas o cuando se necesita trazabilidad de los cambios realizados por los plugins.

Uso del script nessus_downloader.rb para exportar desde la CLI:

Nessus también permite automatizar la descarga de informes utilizando el script nessus_downloader.rb, que se basa en la API REST de Nessus.

Ejemplo de uso:

./nessus_downloader.rb
Nessus 6 Report Downloader 1.0
Enter the Nessus Server IP: 127.0.0.1
Enter the Nessus Server Port [8834]: 8834
Enter your Nessus Username: admin
Enter your Nessus Password (will not echo):
Getting report list...
Scan ID Name                                               Last Modified                  Status
------- ----                                               -------------                  ------
1     Windows_basic                                Aug 22, 2020 22:07 +00:00      completed

Enter the report(s) you want to download (comma separated list) or 'all': 1
Choose File Type(s) to Download:
[0] Nessus (No chapter selection)
[1] HTML
[2] PDF
[3] CSV (No chapter selection)
[4] DB (No chapter selection)
Enter the file type(s) you want to download (comma separated list) or 'all': 3
Path to save reports to (without trailing slash): /assessment_data/inlanefreight/scans/nessus
Downloading report(s). Please wait...
[+] Exporting scan report, scan id: 1, type: csv
[+] Checking export status...
[+] Report ready for download...
[+] Downloading report to: /assessment_data/webejemplo/scans/nessus/webejemplo_basic_5y3hxp.csv
Report Download Completed!

Este script es extremadamente útil en entornos automatizados o cuando se quiere centralizar la descarga de reportes en múltiples formatos, sin tener que interactuar manualmente con la interfaz web.

Consejos prácticos:

  • A veces aparecen vulnerabilidades que realmente no representan riesgo (por ejemplo, cifrados antiguos deshabilitados por política). Nessus permite marcar esos hallazgos como «aceptados».
  • Crea políticas de escaneo reutilizables para entornos similares.
  • Puedes programar escaneos periódicos y recibir alertas por correo.

8. Puntuación de vulnerabilidades: CVSS y DREAD

8.1. CVSS v3.1

El Common Vulnerability Scoring System es el estándar más extendido para asignar una puntuación a una vulnerabilidad. Su versión 3.1 mejora la precisión del análisis con base en tres grupos de métricas:

  • Base: refleja la gravedad intrínseca de la vulnerabilidad, independiente del entorno.
  • Temporal: tiene en cuenta factores como la existencia pública de exploits y si hay soluciones temporales disponibles.
  • Ambiental: ajusta el puntaje según la criticidad para una organización específica, considerando la confidencialidad, integridad y disponibilidad.

Ejemplo real:
Una vulnerabilidad de ejecución remota de código sin autenticación en un servidor, como PrintNightmare (CVE-2021-34527), puede obtener un CVSS de 8.8 o incluso más alto si tiene un impacto grave en la disponibilidad o permite privilegios elevados.

Fórmula base simplificada:

  • Vector de ataque: ¿remoto o local?
  • Complejidad del ataque: ¿necesita condiciones especiales?
  • Privilegios requeridos: ¿requiere autenticación?
  • Interacción del usuario: ¿necesita que el usuario haga algo?
  • Impacto en C, I y D: ¿cuánto afecta la confidencialidad, integridad o disponibilidad?

8.2. DREAD

El modelo DREAD, desarrollado por Microsoft, fue diseñado para evaluar riesgos de seguridad en aplicaciones y se basa en cinco criterios, cada uno con una escala de 1 a 10:

  1. Daño potencial (Damage): ¿cuánto daño puede causar?
  2. Reproducibilidad (Reproducibility): ¿qué tan fácil es repetir el ataque?
  3. Explotabilidad (Exploitability): ¿cuánto esfuerzo requiere ejecutar el ataque?
  4. Usuarios afectados (Affected Users): ¿a cuántos impacta?
  5. Detección (Discoverability): ¿es fácil descubrir la falla?

El puntaje final se calcula como el promedio de estos cinco valores. Aunque ya no es ampliamente utilizado en nuevos entornos, DREAD sigue siendo útil como enfoque complementario o educativo.


9. Identificadores y divulgación de vulnerabilidades

9.1. CVE: Common Vulnerabilities and Exposures

El sistema CVE otorga un identificador único a cada vulnerabilidad conocida, como CVE-2020-5902. Estos códigos permiten referirse de forma universal a un fallo, sin confusiones ni ambigüedades. El proceso para registrar una CVE suele seguir estos pasos:

  1. El investigador detecta una vulnerabilidad.
  2. Se comunica con el proveedor afectado.
  3. Si se valida el fallo, se solicita un ID CVE a través de un CNA (CVE Numbering Authority).
  4. Una vez asignado, el CVE se publica junto con detalles técnicos.

Este proceso fomenta una divulgación responsable y permite a los fabricantes aplicar correcciones antes de que se haga público el fallo.

9.2. OVAL y SCAP

  • OVAL (Open Vulnerability and Assessment Language): es un lenguaje estructurado en XML que permite describir vulnerabilidades, configuraciones de seguridad y parches sin necesidad de realizar explotación directa.
  • SCAP (Security Content Automation Protocol): conjunto de estándares que automatiza la medición de vulnerabilidades y cumplimiento. SCAP combina elementos como CVE, CPE (nombres de productos), OVAL, XCCDF, entre otros.

Estas tecnologías facilitan la integración de evaluaciones automáticas en entornos corporativos, mejorando la eficiencia de los equipos de seguridad.


10. Casos prácticos reales

Caso 1: CVE-2020-5902 (BIG-IP TMUI RCE)

Una vulnerabilidad crítica en el panel de gestión de dispositivos BIG-IP de F5. No requiere autenticación y permite ejecutar comandos de forma remota. Los escáneres pueden detectarla verificando si el recurso /tmui/login.jsp responde con ciertas cadenas específicas. Exploits públicos permiten lanzar comandos para confirmar si el sistema es vulnerable.

Caso 2: CVE-2021-34527 (PrintNightmare)

Este fallo afecta al servicio de cola de impresión de Windows. Puede usarse para obtener privilegios de SYSTEM e incluso comprometer controladores de dominio si se aprovecha desde un servidor con privilegios. El exploit consiste en subir un archivo DLL malicioso a través del spooler. Se requiere autenticación local previa, pero una vez dentro, el escalado es directo.

Caso 3: Falsos positivos y exclusión en escáneres

En ocasiones, los escáneres reportan como crítica una vulnerabilidad que en realidad no aplica al entorno. Por ejemplo, cifrados antiguos habilitados en un túnel que solo usa TLS moderno. Herramientas como Nessus permiten crear filtros o reglas de exclusión por ID de plugin. Así se mantiene limpio el informe y se evita alarmar innecesariamente a los responsables técnicos.


11. Conclusión

Con esto cerramos nuestro extenso recorrido por el mundo de la evaluación de vulnerabilidades. Desde herramientas prácticas hasta criterios de evaluación y ejemplos del mundo real. Si llegaste hasta aquí, estás más que listo para comenzar a proteger sistemas de forma estructurada y profesional.

Comparte esta Publicación en Redes Sociales