Aviation Threat Intelligence Dashboard
Cómo Construí un Dashboard de Inteligencia de Amenazas para Aviación con Datos en Tiempo Real
Introducción: El Problema que Quería Resolver
En el mundo de la ciberseguridad, la información desactualizada puede ser tan peligrosa como no tener información. Las vulnerabilidades en sistemas críticos, especialmente en sectores como la aviación, evolucionan constantemente. Cada día se publican nuevos CVEs (Common Vulnerabilities and Exposures), exploits y amenazas que pueden poner en riesgo infraestructuras críticas.
Como profesional interesada en OSINT (Open Source Intelligence) y ciberseguridad aplicada al sector aeronáutico, me enfrenté a una pregunta: ¿Cómo puedo monitorizar amenazas relevantes de forma automatizada sin depender de herramientas comerciales?
La respuesta fue construir mi propio dashboard de inteligencia de amenazas.

¿Qué es OSINT y Por Qué es Importante?
OSINT (Open Source Intelligence) es el proceso de recolectar información de fuentes públicamente disponibles para generar inteligencia accionable. En ciberseguridad, esto significa:
- Monitorizar bases de datos de vulnerabilidades (CVE, NVD)
- Analizar reportes de incidentes públicos
- Seguir boletines de seguridad de fabricantes
- Rastrear discusiones en foros especializados
- Correlacionar información de múltiples fuentes
La ventaja del OSINT es que toda la información es legal y pública, pero requiere metodología, herramientas y criterio para convertir datos dispersos en inteligencia útil.
El Proyecto: Aviation Threat Intelligence Dashboard
He desarrollado un dashboard web interactivo que combina datos estáticos de análisis manual con información en tiempo real obtenida de fuentes oficiales.
Objetivos del Proyecto
- Visibilidad en tiempo real: Mostrar vulnerabilidades actualizadas automáticamente
- Contextualización: Relacionar amenazas con el sector de aviación específicamente
- Clasificación: Priorizar por severidad usando el sistema CVSS
- Trazabilidad: Documentar fuentes y metodología OSINT
- Accionabilidad: Ofrecer recomendaciones concretas
Stack Tecnológico
Decidí utilizar tecnologías web fundamentales sin dependencias complejas:
- HTML5: Estructura semántica y accesible
- CSS3: Diseño visual tipo SOC (Security Operations Center)
- JavaScript Vanilla: Lógica de negocio y consumo de APIs
- API NVD (NIST): Fuente oficial de vulnerabilidades del gobierno de EE.UU.
- GitHub Pages: Hosting gratuito y profesional
¿Por qué sin frameworks? Simplicidad, portabilidad y peso mínimo. El dashboard carga en menos de 2 segundos y funciona en cualquier navegador moderno.
Arquitectura y Funcionalidades
1. Diseño Visual: Inspiración SOC
El diseño está inspirado en centros de operaciones de seguridad (SOC) reales:
– Esquema de colores oscuro (reduce fatiga visual)
– Código de colores por severidad:
·Rojo (#ff4757): Crítico
· Naranja (#ffa502): Alto
· Amarillo (#f1c40f): Medio
· Verde (#2ecc71): Bajo
· Cian (#00d4ff): Información
El gradiente de fondo y los efectos de hover crean una experiencia profesional e interactiva.
2. KPIs y Métricas Clave
El dashboard muestra 4 indicadores principales que se actualizan automáticamente:
- Total de CVEs: Vulnerabilidades encontradas en la búsqueda
- CVEs Críticos: Severidad crítica (CVSS 9.0-10.0)
- CVEs de Alto Riesgo: Severidad alta (CVSS 7.0-8.9)
- CVEs Recientes: Publicados en los últimos 30 días
Estos números se calculan dinámicamente a partir de los datos de la API.
3. Integración con API NVD (NIST)
Esta es la parte más importante del proyecto. La automatización se logra mediante:
async function loadCVEData() { const keywords = [‘aircraft’, ‘aviation’, ‘airline’, ‘flight’]; const searchTerm = keywords[Math.floor(Math.random() * keywords.length)]; const response = await fetch( `https://services.nvd.nist.gov/rest/json/cves/2.0?keywordSearch=${searchTerm}&resultsPerPage=10` ); const data = await response.json(); displayCVEs(data.vulnerabilities); }
¿Qué hace este código?
- Selecciona aleatoriamente una palabra clave relacionada con aviación
- Consulta la API pública de NVD
- Obtiene los 10 CVEs más recientes relacionados
- Procesa y muestra los resultados con formato
4. Clasificación por Severidad (CVSS)
Cada CVE incluye una puntuación CVSS (Common Vulnerability Scoring System) de 0 a 10:
- 0.0: Informativo
- 0.1-3.9: Bajo
- 4.0-6.9: Medio
- 7.0-8.9: Alto
- 9.0-10.0: Crítico
El código extrae esta información automáticamente:
const metrics = cve.metrics?.cvssMetricV31?.[0] || cve.metrics?.cvssMetricV2?.[0];
const severity = metrics?.cvssData?.baseSeverity || ‘MEDIUM’;
const score = metrics?.cvssData?.baseScore || ‘N/A’;
Esto permite priorizar las amenazas más graves de forma visual inmediata.
5. Mapeo a MITRE ATT&CK
Además de los CVEs automatizados, incluyo amenazas específicas del sector mapeadas al framework MITRE ATT&CK:
- T1190: Exploit Public-Facing Application (Ransomware en aerolíneas)
- T1557: Man-in-the-Middle (ADS-B spoofing)
- T1040: Network Sniffing (Interceptación ACARS)
- T1195: Supply Chain Compromise (Proveedores comprometidos)
Este framework es el estándar de la industria para categorizar tácticas y técnicas de adversarios.
6. Auto-Actualización
El dashboard se actualiza automáticamente cada 5 minutos:
// Auto-refresh cada 5 minutos (300,000 ms)
setInterval(loadCVEData, 300000);
También incluye un botón manual para actualizar bajo demanda. Durante la actualización, el botón se deshabilita para evitar múltiples peticiones simultáneas.
7. Manejo de Errores
Las APIs públicas pueden fallar. Implementé manejo robusto de errores:
try { const response = await fetch(apiUrl); if (!response.ok) throw new Error(‘Error en la API’); // Procesar datos… } catch (error) { console.error(‘Error:’, error); // Mostrar mensaje al usuario // Cargar datos de ejemplo como fallback }
Si la API no responde, el dashboard muestra un mensaje claro y carga datos de ejemplo para que siga siendo funcional.
Metodología OSINT Aplicada
El proyecto documenta una metodología clara de inteligencia de amenazas:
Fase 1: Identificación de Fuentes
- NVD (NIST): Base de datos oficial de vulnerabilidades
- CISA: Alertas del gobierno de EE.UU.
- MITRE ATT&CK: Framework de tácticas y técnicas
- Shodan: Descubrimiento de sistemas expuestos
- VirusTotal: Análisis de malware
- Boletines de fabricantes: Airbus, Boeing, Honeywell, etc.
Fase 2: Recolección de Datos
- Consultas automatizadas a APIs
- Búsquedas por palabras clave relevantes
- Filtrado por fecha (últimas vulnerabilidades)
- Extracción de metadatos (CVSS, fechas, descripciones)
Fase 3: Análisis y Correlación
- Clasificación por severidad
- Mapeo a MITRE ATT&CK
- Identificación de patrones (ransomware, phishing, etc.)
- Priorización por impacto potencial
Fase 4: Presentación
- Dashboard visual con código de colores
- KPIs ejecutivos (números grandes)
- Detalles técnicos (CVE-IDs, enlaces)
- Recomendaciones accionables
Fase 5: Actualización Continua
- Auto-refresh programado
- Versionado del código (Git)
- Documentación de cambios
Desafíos Técnicos Superados
1. Rate Limits de la API
La API de NVD tiene límites de peticiones. Solución:
- Espaciar las actualizaciones (5 minutos)
- Cachear resultados temporalmente
- Implementar retry logic con backoff
2. Datos Inconsistentes
Los CVEs no siempre tienen el mismo formato. Solución:
- Usar optional chaining (
?.
) - Valores por defecto (
|| 'MEDIUM'
) - Validación de datos antes de mostrar
3. Performance
Procesar JSON grande puede ralentizar el navegador. Solución:
- Limitar resultados (10 CVEs por consulta)
- Procesamiento asíncrono
- Lazy loading de secciones
4. Responsive Design
El dashboard debe verse bien en móvil y desktop. Solución:
- CSS Grid con
auto-fit
- Media queries para pantallas pequeñas
- Priorización de información crítica
Resultados y Métricas
Después de desplegar el proyecto en GitHub Pages:
Tiempo de carga: < 2 segundos
Compatibilidad: Chrome, Firefox, Safari, Edge
Tamaño: < 15KB (HTML + CSS + JS)
APIs consultadas: NVD (datos oficiales)
Actualización: Automática cada 5 minutos
CVEs mostrados: 10 más recientes + análisis manual
Aplicaciones Prácticas
Este dashboard puede ser útil para:
- Analistas de Seguridad: Monitorización diaria de amenazas
- CISOs: Vista ejecutiva de riesgos emergentes
- Equipos SOC: Integración en workflow de threat hunting
- Investigadores: Punto de partida para análisis profundos
- Estudiantes: Aprendizaje de OSINT aplicado
Próximas Mejoras
Este es un proyecto vivo. Futuras versiones incluirán:
Corto Plazo
- Gráficos de tendencias (CVEs por mes)
- Filtros por severidad
- Búsqueda personalizada
- Exportar a PDF/CSV
Mediano Plazo
- Integración con Shodan API (buscar sistemas expuestos)
- VirusTotal API (hashes de malware)
- Alertas por email/Telegram
- Base de datos local (indexedDB)
Largo Plazo
- Machine Learning para clasificación automática
- Correlación entre múltiples fuentes
- Timeline histórico de amenazas
- API propia para terceros
Conclusión
Construir un dashboard de inteligencia de amenazas desde cero me ha permitido:
- Profundizar en OSINT aplicado a ciberseguridad
- Entender cómo funcionan las APIs de threat intelligence
- Crear una herramienta útil para mi portafolio
- Demostrar habilidades técnicas y de análisis
El código completo está disponible en mi GitHub: [github.com/3stefani/aviation-threat-intel]
Recursos Adicionales
APIs y Bases de Datos:
Frameworks de Threat Intelligence:
- STIX/TAXII (Structured Threat Information)
- MISP (Malware Information Sharing Platform)
- OpenCTI (Open Cyber Threat Intelligence)
Tags: #Cybersecurity
#OSINT
#ThreatIntelligence
#Aviation
#WebDevelopment
#JavaScript
#InfoSec
#Portfolio