🛡️ OpenVAS: Open Vulnerability Assessment System
Definición
OpenVAS (Open Vulnerability Assessment System) es una suite completa de herramientas de escaneo de vulnerabilidades de código abierto. Forma parte del framework Greenbone Vulnerability Management (GVM) y permite detectar, evaluar y gestionar vulnerabilidades en sistemas, redes y aplicaciones.
📋 Características principales
- Escáner de vulnerabilidades completo y de código abierto
- Más de 50,000 tests de vulnerabilidad (NVTs) actualizados regularmente
- Interfaz web intuitiva para gestión de escaneos
- Generación de informes detallados en múltiples formatos
- Verificación activa de vulnerabilidades (no solo basado en versiones)
- Compatible con autenticación para escaneos internos profundos
🏗️ Arquitectura de OpenVAS/GVM
graph TD A[GSA - Greenbone Security Assistant] -->|Interfaz Web| B[GVM - Greenbone Vulnerability Manager] B -->|Base de datos| C[GVMD - Manager Daemon] B -->|Programación| D[Tareas de Escaneo] C -->|Almacena resultados| E[PostgreSQL/SQLite] D -->|Ejecuta| F[OpenVAS Scanner] F -->|Usa| G[Feed NVT] F -->|Escanea| H[Objetivos] style A fill:#4CAF50,stroke:#388E3C,stroke-width:2px style F fill:#FF5722,stroke:#E64A19,stroke-width:2px style G fill:#2196F3,stroke:#1976D2,stroke-width:2px
Evolución
OpenVAS comenzó como un fork de Nessus cuando este dejó de ser open source. Actualmente forma parte del ecosistema Greenbone, donde se le conoce como Greenbone Vulnerability Manager (GVM).
🔧 Instalación y configuración
Instalación en Kali Linux
OpenVAS (ahora GVM) viene preinstalado en Kali Linux, pero puede requerir configuración:
# Actualizar repositorios
sudo apt update
# Instalar GVM si no está presente
sudo apt install gvm
# Configurar GVM
sudo gvm-setup
# Iniciar los servicios
sudo gvm-startTiempo de instalación
La instalación inicial puede tardar entre 10-30 minutos dependiendo de la velocidad de internet, ya que descarga y compila una gran cantidad de NVTs (Network Vulnerability Tests).
Instalación mediante Docker (recomendado para entornos de producción)
# Descargar la imagen docker oficial de Greenbone
docker pull greenbone/gvm
# Ejecutar el contenedor
docker run -d -p 443:443 --name openvas greenbone/gvm
# Crear volumen para persistencia de datos (opcional)
docker volume create openvas-data
docker run -d -p 443:443 -v openvas-data:/data --name openvas greenbone/gvmAcceso a la interfaz web
Una vez instalado:
- Abra un navegador y vaya a
https://localhostohttps://127.0.0.1 - Acepte la advertencia de certificado (es autofirmado)
- Credenciales por defecto:
- Usuario:
admin - Contraseña:
admin(en Kali) o la generada durante la instalación
- Usuario:
Seguridad
Cambie inmediatamente la contraseña por defecto si va a utilizar OpenVAS en un entorno de producción.
📊 Uso básico de OpenVAS
1. Creación de objetivos de escaneo
flowchart LR A[Login] --> B[Configuración] B --> C[Objetivos] C --> D[Crear nuevo objetivo] D --> E[Definir hosts/redes] E --> F[Configurar credenciales] F --> G[Guardar objetivo]
Pasos detallados:
- Vaya a Configuración > Objetivos
- Haga clic en el ícono de estrella (🟊) para crear un nuevo objetivo
- Complete el formulario:
- Nombre: Identificador descriptivo del objetivo
- Hosts: IPs o rangos (ej.
192.168.1.1-20,10.0.0.0/24) - Puerto (opcional): Puertos específicos a escanear
- Credenciales (opcional): Para escaneos autenticados
2. Configuración de un escaneo
- Vaya a Escaneos > Tareas
- Haga clic en el ícono de estrella (🟊) para crear una nueva tarea
- Complete el formulario:
- Nombre: Nombre descriptivo del escaneo
- Escáner: OpenVAS Default
- Objetivo: Seleccione el objetivo creado anteriormente
- Configuración de escaneo: Elija entre:
- Full and Fast: Balance entre velocidad y profundidad
- Full and Deep: Más exhaustivo pero lento
- Full and Very Deep: Completo y muy lento
- Host Discovery: Solo descubrimiento de hosts activos
3. Ejecución y monitoreo de escaneos
- En la lista de tareas, haga clic en el botón ▶️ (Play)
- Monitoree el progreso en la misma pantalla
- Espere a que el escaneo finalice
Ejecución periódica
Para escaneos recurrentes, configure la opción “Programación” al crear la tarea (diario, semanal o mensual).
4. Análisis de resultados
- Una vez finalizado, haga clic en la tarea para ver resultados
- Explore las vulnerabilidades clasificadas por severidad:
- Alto (rojo): Vulnerabilidades críticas
- Medio (naranja): Vulnerabilidades importantes
- Bajo (amarillo): Vulnerabilidades menores
- Registro (azul): Información sin riesgo directo
5. Generación de informes
- Seleccione la tarea completada
- Haga clic en el botón “Informes”
- Elija el informe deseado
- Seleccione el formato (PDF, HTML, CSV, XML)
- Configure opciones adicionales (filtros, contenido)
- Genere y descargue el informe
🎯 Casos de uso prácticos
Ejemplo 1: Escaneo básico de un segmento de red
Escenario: Evaluación rápida de vulnerabilidades en la red corporativa interna.
# Desde la línea de comandos (CLI)
sudo gvm-cli --gmp-username admin --gmp-password admin \
socket --xml "<create_task><name>Red-Interna</name><target id='33333333-4444-5555-6666-777777777777'/><config id='daba56c8-73ec-11df-a475-002264764cea'/></create_task>"En la interfaz web:
-
Crear objetivo:
- Nombre:
Red-Interna-192.168 - Hosts:
192.168.10.0/24 - Puerto:
T:1-65535 - Credenciales: Ninguna (escaneo no autenticado)
- Nombre:
-
Crear tarea:
- Nombre:
Escaneo-Trimestral-Q1 - Objetivo:
Red-Interna-192.168 - Configuración:
Full and Fast - Programación:
No repetir
- Nombre:
-
Ejecutar y analizar:
- Iniciar tarea
- Revisar resultados cuando finalice
- Generar informe ejecutivo PDF
Ejemplo 2: Escaneo autenticado de servidores críticos
Escenario: Evaluación profunda de servidores críticos con credenciales administrativas.
-
Crear credenciales:
- Vaya a Configuración > Credenciales
- Añada nuevas credenciales:
- Nombre:
Windows-Admin - Tipo:
SMB/CIFS - Usuario:
administrador - Contraseña:
contraseña_segura
- Nombre:
-
Crear objetivo con autenticación:
- Nombre:
Servidores-Windows - Hosts:
192.168.1.10, 192.168.1.11, 192.168.1.12 - Credenciales: Seleccione
Windows-Admin
- Nombre:
-
Crear tarea de escaneo profundo:
- Nombre:
Auditoria-Mensual-Servidores - Objetivo:
Servidores-Windows - Configuración:
Full and Deep
- Nombre:
-
Analizar resultados:
- Tras finalizar, filtre por severidad alta y media
- Exporte un informe detallado en formato HTML y PDF
# Exportar resultados del escaneo desde CLI
gvm-cli --gmp-username admin --gmp-password admin socket \
--xml "<get_reports report_id='a1b2c3d4-e5f6-g7h8-i9j0' format_id='c402cc3e-b531-11e1-9163-406186ea4fc5'/>"Ejemplo 3: Escaneo diferencial para verificar remediaciones
Escenario: Verificar si las vulnerabilidades detectadas previamente han sido corregidas.
-
Crear objetivo:
- Igual que el objetivo original
-
Crear tarea de escaneo:
- Nombre:
Verificacion-Remediaciones-Mayo - Objetivo: El mismo que el escaneo anterior
- Configuración: La misma que el escaneo anterior
- Nombre:
-
Configurar comparación:
- En la sección avanzada de la tarea, habilitar comparación
- Seleccionar el informe anterior como referencia
-
Analizar diferencias:
- Revisar las vulnerabilidades que permanecen
- Verificar las que han sido corregidas
- Generar informe diferencial
🛠️ Configuraciones avanzadas
Escaneo autenticado
Ventaja
Los escaneos autenticados proporcionan resultados mucho más precisos y detallados, ya que pueden evaluar la configuración interna y el estado real de parches.
Tipos de credenciales soportadas:
- SSH para sistemas Linux/Unix
- SMB/CIFS para sistemas Windows
- SNMP para dispositivos de red
- ESXi para entornos VMware
- Credenciales de aplicación (MySQL, PostgreSQL, etc.)
Configuración de SSH:
-
Generar un par de claves (si usa clave privada):
ssh-keygen -t rsa -b 4096 -f openvas_key -
En la interfaz web:
- Vaya a Configuración > Credenciales
- Cree credenciales SSH
- Suba la clave privada o configure usuario/contraseña
- Asigne las credenciales al crear/editar un objetivo
Personalización de escaneos
Crear configuración personalizada:
- Vaya a Configuración > Configs
- Duplique una configuración existente
- Modifique según necesidades:
- Habilite/deshabilite familias de NVTs
- Ajuste tiempos de espera
- Configure opciones de escaneo específicas
Filtrado de puertos:
- Especifique puertos al crear el objetivo
- Formatos:
T:22,80,443(TCP) oU:53,161(UDP) - Rangos:
T:1-1024(primeros 1024 puertos TCP)
Integración con otras herramientas
Exportación a formato compatible con Jira/Trello:
- Genere informe en formato CSV
- Use scripts de conversión para formato de importación
API para automatización:
import gvm
from gvm.protocols.latest import Gmp
from gvm.transforms import EtreeTransform
from gvm.connections import UnixSocketConnection
# Conexión a OpenVAS
connection = UnixSocketConnection()
transform = EtreeTransform()
with Gmp(connection, transform=transform) as gmp:
# Login
gmp.authenticate('admin', 'admin')
# Crear tarea de escaneo
response = gmp.create_target(
name="API-Target",
hosts=["192.168.1.100"],
port_list_id="33d0cd82-57c6-11e1-8ed1-406186ea4fc5"
)
target_id = response.get('id')
# Crear y lanzar tarea
response = gmp.create_task(
name="API-Task",
config_id="daba56c8-73ec-11df-a475-002264764cea",
target_id=target_id,
scanner_id="08b69003-5fc2-4037-a479-93b440211c73"
)
task_id = response.get('id')
# Iniciar tarea
gmp.start_task(task_id)🚨 Solución de problemas comunes
Problemas de instalación
Feed Sync Error
Si aparecen errores relacionados con la sincronización de feeds:
# Reiniciar sincronización manualmente
sudo greenbone-nvt-sync
sudo greenbone-feed-sync --type CERT
sudo greenbone-feed-sync --type SCAP
sudo greenbone-feed-sync --type GVMD_DATAEscaneos lentos o que fallan
Problema: Escaneos que tardan demasiado o fallan sin terminar.
Soluciones:
- Reducir el alcance (menos hosts o puertos)
- Verificar conectividad de red
- Ajustar tiempos de espera:
# Aumentar timeout por host sudo gvmd --modify-setting 76374a7a-0569-11e6-b6da-28d24461215b --value 3600
Falsos positivos
Problema: Resultados incorrectos o no aplicables.
Soluciones:
- Utilizar escaneos autenticados
- Verificar manualmente las vulnerabilidades críticas
- Crear excepciones:
- Seleccione el resultado incorrecto
- Use la opción “Crear excepción”
- Documente el motivo de la excepción
Problemas de rendimiento
Problema: Sistema lento durante escaneos intensivos.
Soluciones:
- Aumentar recursos del sistema:
# Ajustar máximo de hosts escaneados simultáneamente sudo gvmd --modify-setting 0ccb9f66-c669-452a-bb38-04c0226fae6a --value 10 - Programar escaneos en horarios de baja actividad
- Dividir objetivos grandes en múltiples tareas más pequeñas
💡 Mejores prácticas
Optimización de escaneos
Para escaneos más eficientes
- Segmente los objetivos por criticidad y tipo
- Use escaneos progresivos:
- Primero “Host Discovery”
- Luego “Fast Scan” en hosts activos
- Finalmente “Deep Scan” en sistemas críticos
- Reutilice resultados previos para escaneos incrementales
Gestión de vulnerabilidades
Ciclo de vida recomendado:
graph LR A[Escaneo] --> B[Priorización] B --> C[Verificación] C --> D[Remediación] D --> E[Verificación post-remediación] E --> A
- Priorizar por impacto y criticidad del activo
- Establecer SLAs según severidad:
- Crítica: 7 días
- Alta: 14 días
- Media: 30 días
- Baja: 90 días
- Monitorizar progreso de remediación
- Escanear nuevamente para verificar correcciones
Seguridad del propio OpenVAS
- Cambie contraseñas por defecto
- Limite el acceso a la interfaz web
- Use HTTPS con certificado válido
- Actualice regularmente el sistema y feeds
- Separe el escáner de la red corporativa
# Cambiar contraseña desde CLI
sudo gvmd --user=admin --new-password=NuevaContraseñaSeguraPlanificación de escaneos
- Documente y comunique ventanas de escaneo
- Notifique a los equipos de operaciones/seguridad
- Limite el impacto en producción (horarios adecuados)
- Planifique escaneos recurrentes:
- Activos críticos: Mensual
- Activos estándar: Trimestral
- Sistemas de desarrollo: Según ciclo de desarrollo
📘 Recursos adicionales
- Documentación oficial de Greenbone
- Comunidad OpenVAS en GitHub
- Lista de NVTs actualizados
- Guía de API GVM
Relacionado con