
En este post veremos en detalle vScan 2.0, una aplicación de escritorio open-source que desarrollé para escanear los restore points de Veeam Backup & Replication v13+ en busca de vulnerabilidades de seguridad. Revisaremos la arquitectura, la instalación, configuración, las funcionalidades de escaneo, gestión de vulnerabilidades, reportes, seguridad y mucho más.
¿Por qué escanear tus Respaldos?#
Antes que nada siempre debemos preguntarnos, ¿por qué necesitamos escanear los respaldos? La respuesta es simple: si un servidor fue comprometido hace semanas y lo descubrimos hoy, todos los restore points de ese período contienen las vulnerabilidades o malware. Si necesitamos restaurar y no sabemos cuál restore point es seguro, estamos restaurando a ciegas.
Con vScan podemos escanear cualquier restore point antes de restaurarlo, saber exactamente qué vulnerabilidades contiene y tomar una decisión informada.
Además, recuerda que Veeam ya tiene incluido el análisis de entropía, malware, entre otros en la solución. Por tanto, vScan llega a ser un complemento adicional para que cuando sea necesario puedas asegurarte con las últimas publicaciones de vulnerabilidades si tu máquina o respaldo que vas a recuperar, cuenta o no con vulnerabilidades y hacer la recuperación en un ambiente aislado para aplicar la mitigación de las vulnerabilidades y luego desplegar en producción.
¿Qué es vScan?#
vScan es una aplicación de escritorio para Windows y macOS que se integra con Veeam Backup & Replication v13+ a través de su REST API. La aplicación monta los discos virtuales de cualquier restore point en un servidor Linux remoto vía SSH y ejecuta scanners de vulnerabilidades contra el filesystem montado.
No es solo un scanner, vScan provee gestión completa del ciclo de vida de las vulnerabilidades: tracking, estados, detección de fix automático, integración con el catálogo KEV de CISA, reportes PDF ejecutivos y técnicos, notificaciones por email y escritorio, batch scanning, escaneos programados y mucho más.
La aplicación está disponible en GitHub: https://github.com/mescobarcl/vScan
Plataformas Soportadas#
| macOS | Windows | |
|---|---|---|
| Versión mínima | 13.0 (Ventura) | 10 (1803+) |
| Probado | Ventura 13, Sonoma 14, Sequoia 15, Tahoe 26 | Windows 10, 11, Server 2019/2022/2025 |
| Arquitectura | Apple Silicon (arm64) | x86_64 |
| Instalador | .dmg | .exe |
| Biometría | Touch ID, Face ID | Windows Hello |
| Credenciales | macOS Keychain | Windows Credential Manager |
Un servidor Linux remoto con SSH es necesario para montar los discos y ejecutar los scanners de vulnerabilidades.
Requisitos#
Para utilizar vScan necesitaremos:
| Componente | Requisito |
|---|---|
| Sistema Operativo | Windows 10+ o macOS 13+ |
| Veeam VBR | Veeam Backup & Replication v13 o superior |
| Servidor Linux | Rocky Linux 9+ |
| Scanners | Trivy, Grype y Jadi |
Instalación#
La instalación es muy simple, descargamos el instalador desde la página de releases en GitHub:
https://github.com/mescobarcl/vScan/releases
Para macOS descargamos el archivo .dmg y arrastramos la aplicación a la carpeta Applications. Para Windows descargamos el .exe y ejecutamos el instalador.
Configuración Inicial – Master Password#
Al iniciar vScan por primera vez nos pedirá crear una Master Password. Esta contraseña protege todas las credenciales almacenadas en la aplicación usando cifrado AES-256-GCM con derivación de clave Argon2id.

Es muy importante guardar la Recovery Key que se genera automáticamente. Esta clave en formato VSCAN-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX es la única forma de recuperar el acceso si se olvida la Master Password.

Una vez configurada la Master Password, vScan soporta desbloqueo biométrico con Touch ID en macOS y Windows Hello en Windows para acceso rápido.
Conexión al Servidor VBR#
El primer paso después de crear la Master Password es conectarnos a nuestro servidor de Veeam Backup & Replication. Vamos a la sección de configuración y veremos un wizard de 5 pasos que nos guiará:
En el Step 1 configuramos la conexión VBR:
- Ingresamos el hostname o IP del servidor VBR
- Puerto (por defecto 9419 para REST API)
- Username en formato
dominio\usuario - Password

vScan se conecta al REST API de Veeam y obtiene automáticamente la información del servidor: versión de VBR, edición de licencia, versión de base de datos SQL, etc.

Conexión al Servidor Linux#
En el Step 2 configuramos el servidor Linux que actuará como scanner host. Aquí tenemos dos opciones:
- Importar desde VBR: Si tenemos servidores Linux registrados como managed servers en VBR, podemos importarlos directamente
- Configuración manual: Ingresamos la IP, puerto SSH, usuario y contraseña o clave privada

Al conectarnos, vScan ejecuta un proceso de setup automático de 8 pasos:
- Validar credenciales
- Establecer conexión SSH
- Aceptar Fingerprint
- Detectar sistema operativo Rocky
- Verificar e instalar paquetes del sistema
- Configurar Trivy scanner
- Configurar Grype scanner
- Configurar Jadi scanner
- Guardar configuración

vScan detecta automáticamente si los scanners están instalados, cuál es su versión actual, y ofrece instalarlos o actualizarlos. Las descargas se verifican con SHA-256 antes de la instalación para prevenir tampering.
También realiza verificación de host key SSH usando TOFU: la primera vez que nos conectamos a un servidor, se almacena el fingerprint. Si el fingerprint cambia en conexiones futuras, vScan nos alerta de un posible ataque Man-in-the-Middle.
Notificaciones – Email y Desktop#
vScan soporta dos canales de notificación:
Notificaciones nativas del sistema operativo para eventos en tiempo real.
Configuración SMTP con STARTTLS/SSL para envío de alertas por correo.
Los 6 tipos de eventos configurables son:
| Evento | Descripción |
|---|---|
| Scan Completed | Cuando un escaneo finaliza exitosamente |
| Scan Failed | Cuando un escaneo falla |
| Batch Completed | Cuando un batch scan finaliza |
| Schedule Started | Cuando un escaneo programado comienza |
| KEV Found | Cuando se detecta una vulnerabilidad activamente explotada |
| Critical Vulnerabilities | Cuando se encuentran vulnerabilidades de severidad crítica |


Dashboard#
Una vez configuradas las conexiones, la vista principal de vScan es el Dashboard que nos muestra un resumen completo de la postura de seguridad:

El dashboard incluye:
- Contadores de vulnerabilidades por severidad: Critical, High, Medium, Low
- Contador KEV: vulnerabilidades que están en el catálogo de CISA Known Exploited Vulnerabilities
- Gráfico de distribución de severidad
- Tendencia de vulnerabilidades a lo largo del tiempo
- Top VMs más vulnerables con ranking por severidad
- Escaneos recientes con estado en tiempo real
- Estadísticas de escaneos: total, últimos 7 días, últimos 30 días
Los datos se actualizan en tiempo real conforme se completan nuevos escaneos.
Tres Motores de Escaneo: Trivy, Grype y Jadi#
vScan soporta tres motores de escaneo de vulnerabilidades:
Trivy#
Scanner de Aqua Security, uno de los más utilizados en la industria. Excelente para paquetes de distribuciones Linux y contenedores. vScan lo instala y gestiona automáticamente. Documentación oficial: https://github.com/aquasecurity/trivy
Grype#
Scanner de Anchore, otra opción popular para escaneo de vulnerabilidades. Complementa bien a Trivy con un enfoque diferente. Documentación oficial: https://github.com/anchore/grype
Jadi#
Mi propio scanner CLI escrito en Rust, diseñado específicamente para cubrir el gap que dejan Trivy y Grype en la detección de vulnerabilidades en software binario de Windows y parches de KB. Jadi utiliza múltiples fuentes de vulnerabilidades:
- NVD (National Vulnerability Database) para matching por CPE
- MSRC (Microsoft Security Response Center) para vulnerabilidades de Windows y KBs
- OSV (Open Source Vulnerabilities) para ecosistemas de lenguajes
- GHSA (GitHub Security Advisories)
- CISA KEV (Known Exploited Vulnerabilities)
Cada scanner se puede instalar, actualizar y desinstalar directamente desde la UI de vScan. Las instalaciones se verifican con SHA-256 para garantizar la integridad del binario.
https://github.com/mescobarcl/jadi
Como Escanear Respaldos#
Para escanear una VM, vScan provee un wizard guiado de 5 pasos:
Paso 1: Seleccionar VMs#
Seleccionamos la VM que queremos escanear. vScan obtiene la lista de VMs directamente desde la API de VBR

Paso 2: Seleccionar Restore Point#
Elegimos el restore point que queremos escanear. Se muestra la fecha, tipo y tamaño de cada punto de restauración disponible.
Paso 3: Seleccionar Discos#
Seleccionamos cuáles discos de la VM queremos montar y escanear. Podemos seleccionar todos o solo algunos específicos.
Paso 4: Montar Discos#
vScan publica el restore point a través del Data Integration API de Veeam y monta los discos en el servidor Linux usando FUSE o iSCSI. Se muestra el progreso del montaje en tiempo real.

Paso 5: Escaneo y Resultados#
Una vez montados los discos, se ejecuta el scanner seleccionado contra el filesystem. El progreso se muestra en tiempo real con ETA estimado.
Al finalizar vemos los resultados con el total de vulnerabilidades encontradas por severidad:

Gestión del Ciclo de Vida de Vulnerabilidades#
Esta es una de las funcionalidades más importantes de vScan 2.0. No es solo un scanner, es una plataforma de gestión del ciclo de vida de vulnerabilidades.
Browser de Vulnerabilidades#
El browser permite filtrar y buscar vulnerabilidades con múltiples criterios:
- Severidad: Critical, High, Medium, Low, Negligible
- Estado: Open, Fixed, Won’t Fix, Accepted, False Positive
- VM Name: filtrar por servidor específico
- Package Name: buscar por paquete afectado
- Scanner Type: filtrar por Trivy, Grype o Jadi
- Rango de fechas: primera detección o última detección
- KEV: solo vulnerabilidades en el catálogo CISA

Lifecycle Tracking#
Cada vulnerabilidad se trackea con timestamps completos:
- Primera detección: cuándo se encontró por primera vez
- Última vez vista: cuándo fue la última vez que apareció en un escaneo
- Auto-fix: si una vulnerabilidad no aparece en un escaneo posterior, se marca automáticamente como “fixed”
- Reapertura: si una vulnerabilidad marcada como fixed reaparece, se reabre automáticamente
- Historial por escaneo: en cuáles escaneos exactamente fue detectada (audit trail completo)

Gestión de Estados#
Los estados disponibles son:
EstadoDescripciónOpenVulnerabilidad detectada y pendiente de remediaciónFixedRemediada (se marca automáticamente cuando no aparece en un nuevo escaneo)Won’t FixSe decide no remediar (con justificación)AcceptedRiesgo aceptado por la organizaciónFalse PositiveDetección incorrecta del scanner
Las operaciones de estado también se pueden hacer en bulk para gestionar múltiples vulnerabilidades simultáneamente.
CISA KEV – Known Exploited Vulnerabilities#
vScan se integra con el catálogo de Known Exploited Vulnerabilities (KEV) de CISA, que se sincroniza automáticamente cada 24 horas.
Cada vulnerabilidad detectada se cruza contra este catálogo. Las que aparecen ahí se marcan con un flag especial porque significa que esa vulnerabilidad está siendo explotada activamente. La prioridad de remediación debería ser inmediata.

La validación del catálogo incluye verificación de integridad: conteo de entradas, formato de CVE IDs y estructura JSON para mitigar inyección de datos maliciosos.
Documentación#
vScan incluye documentación completa en dos idiomas:
| Idioma | Link |
|---|---|
| English | docs/en/ |
| Español | docs/es/ |
Conclusión#
vScan 2.0 transforma tu infraestructura de respaldos de Veeam en una plataforma de monitoreo continuo de seguridad. En lugar de esperar que ocurra un incidente para descubrir vulnerabilidades en tus restore points, ahora puedes escanearlos proactivamente, trackear el ciclo de vida de cada vulnerabilidad y tomar decisiones informadas antes de restaurar.
Las principales funcionalidades que cubrimos en este post son:
- Integración nativa con Veeam VBR v13+ REST API
- Tres motores de escaneo: Trivy, Grype y Jadi
- Comparación entre scanners y restore points
- Batch scanning con paralelismo configurable
- Escaneos programados con expresiones cron
- Gestión completa del ciclo de vida de vulnerabilidades
- Integración con CISA KEV (Known Exploited Vulnerabilities)
- Reportes ejecutivos y técnicos en PDF con branding
- Export CSV hasta 50,000 vulnerabilidades
- Notificaciones por email y desktop (6 tipos de eventos)
- Seguridad con AES-256-GCM, Argon2id, Keychain, biometría
- Auto-lock, brute force protection, recovery key
- System tray con menú completo
- Dark mode
- Mantenimiento automático de base de datos
- Documentación en inglés y español
La aplicación está disponible en GitHub bajo licencia MIT: https://github.com/mescobarcl/vScan
Y con eso finalizamos este post! Cualquier idea o sugerencia es bienvenida como siempre!




