CyberSec Events Tracker

Directorio automatizado de eventos de ciberseguridad — Chile, LATAM y el mundo | TTPSEC SpA

View the Project on GitHub ttpsec/cybersec-events-tracker

🛡️ Mapeo CWE — CyberSec Events Tracker

Análisis de debilidades comunes (Common Weakness Enumeration) relevantes al stack del proyecto.

Stack: Python CLI + Web Scraping (requests, BeautifulSoup, lxml) + GitHub Pages (static)

Mapeo por componente

Scraper (requests + BeautifulSoup)

CWE-ID Nombre Relevancia MitigaciĂłn implementada Estado
CWE-78 OS Command Injection Media — el scraper procesa texto de fuentes externas Sin uso de os.system(), subprocess con input externo, ni eval()/exec(). Todo el procesamiento es con regex y BeautifulSoup ✅ Mitigado
CWE-400 Uncontrolled Resource Consumption Media — scraping de 32 fuentes podría causar timeouts Timeout de 15s por request (TIMEOUT = 15). Ejecución limitada por cron (cada 3h) ✅ Mitigado
CWE-918 Server-Side Request Forgery (SSRF) Baja — las URLs están hardcodeadas en FUENTES Lista de fuentes fija en código, no acepta URLs de input externo ✅ Mitigado
CWE-116 Improper Encoding or Escaping of Output Media — genera archivos Markdown con datos scrapeados Títulos limpiados con regex (re.sub(r"\s+", " ", title).strip()), longitud validada (5-200 chars) ✅ Mitigado
CWE-20 Improper Input Validation Media — fechas extraídas de HTML externo Validación de rango de años (2024-2030), regex estrictos para formatos de fecha ✅ Mitigado
CWE-22 Path Traversal Baja — rutas de archivo construidas internamente Rutas construidas con os.path.join() desde constantes (BASE_DIR, DATA_DIR, DOCS_DIR), sin input de usuario en paths ✅ Mitigado
CWE-798 Use of Hard-coded Credentials N/A — no hay autenticación Sin credenciales, tokens o API keys en el código ✅ N/A

Generador de Markdown

CWE-ID Nombre Relevancia MitigaciĂłn implementada Estado
CWE-79 Cross-Site Scripting (XSS) Baja — GitHub Pages sanitiza HTML en Markdown Contenido generado es Markdown estático renderizado por Jekyll. Datos scrapeados se usan como texto plano en celdas de tabla ✅ Mitigado
CWE-94 Improper Control of Code Generation Baja — genera archivos .md Sin templates dinámicos. Markdown generado por concatenación de strings Python ✅ Mitigado

Base de datos JSON

CWE-ID Nombre Relevancia MitigaciĂłn implementada Estado
CWE-502 Deserialization of Untrusted Data Baja — JSON parseado con json.load() json.load() es seguro contra ejecución de código (a diferencia de pickle). Solo deserializa tipos primitivos ✅ Mitigado
CWE-311 Missing Encryption of Sensitive Data N/A — no hay datos sensibles El JSON contiene solo datos públicos de eventos (nombres, fechas, URLs públicas) ✅ N/A

CI/CD (GitHub Actions)

CWE-ID Nombre Relevancia MitigaciĂłn implementada Estado
CWE-732 Incorrect Permission Assignment Media — workflow con permisos de escritura Permisos limitados a contents: write. Sin secrets expuestos. Workflow ejecuta solo scripts del repo ✅ Mitigado
CWE-829 Inclusion of Functionality from Untrusted Control Sphere Baja — usa actions oficiales Solo actions/checkout@v4 y actions/setup-python@v5 (mantenidos por GitHub) ✅ Mitigado

Resumen

Severidad Total Mitigados Pendientes
Alta 0 0 0
Media 5 5 0
Baja 5 5 0
N/A 2 2 0

Referencias


Análisis realizado por TTPSEC SpA — Última revisión: 2026-03-30