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 OWASP — CyberSec Events Tracker

Evaluación del proyecto contra OWASP Top 10:2021 y controles relevantes.

Contexto: Este proyecto es un CLI de scraping + generador de sitio estático (GitHub Pages). No es una aplicación web con autenticación, base de datos SQL ni API dinámica. Muchas categorías OWASP tienen aplicabilidad limitada.

OWASP Top 10:2021

ID Categoría Aplica Controles implementados Pendiente
A01 Broken Access Control ⚪ Baja No hay sistema de autenticación ni roles. El repo es público. GitHub Actions usa permisos mínimos (contents: write)
A02 Cryptographic Failures ⚪ Baja No se almacenan datos sensibles. Sin credenciales, tokens ni PII. JSON contiene solo datos públicos de eventos
A03 Injection 🟡 Media Sin SQL (JSON file-based). Sin eval()/exec(). Sin os.system() con input externo. Datos scrapeados se tratan como texto plano. Regex con validación de longitud (5-200 chars) y rango de fechas (2024-2030) Considerar sanitización adicional de títulos scrapeados para edge cases de Markdown injection
A04 Insecure Design ⚪ Baja Arquitectura simple: scrape → JSON → Markdown → GitHub Pages. Sin lógica de negocio compleja. Deduplicación por hash MD5
A05 Security Misconfiguration 🟡 Media GitHub Actions con permisos restringidos. Sin secrets expuestos. .gitignore excluye archivos sensibles. Dependencies pinned con versiones mínimas en requirements.txt Considerar pinear versiones exactas en requirements.txt
A06 Vulnerable and Outdated Components 🟡 Media 3 dependencias directas: requests>=2.31.0, beautifulsoup4>=4.12.0, lxml>=5.1.0. Todas mantenidas activamente Implementar Dependabot o renovate para actualizaciones automáticas
A07 Identification and Authentication Failures ⚪ N/A No hay autenticación. Proyecto es público y de solo lectura para usuarios finales
A08 Software and Data Integrity Failures 🟡 Media GitHub Actions usa acciones oficiales con tags versionados (@v4, @v5). Sin ejecución de código de fuentes externas Considerar usar hashes SHA en lugar de tags para actions
A09 Security Logging and Monitoring Failures ⚪ Baja Logging a stdout con emojis para cada fuente scrapeada. Errores capturados y reportados. GitHub Actions mantiene logs de cada ejecución
A10 Server-Side Request Forgery (SSRF) ⚪ Baja URLs de scraping están hardcodeadas en FUENTES[]. No se aceptan URLs de input externo. Timeout de 15s por request

Resumen de riesgo

Nivel Categorías Descripción
🟡 Media A03, A05, A06, A08 Controles implementados, mejoras recomendadas
⚪ Baja/N/A A01, A02, A04, A07, A09, A10 No aplica o riesgo mínimo por arquitectura
🔴 Alta Ninguna

Recomendaciones de hardening

Para deployment actual (GitHub Pages)

  1. Dependabot: Habilitar para actualizaciones automáticas de dependencias Python
  2. Pin actions por SHA: Usar hashes en lugar de tags para GitHub Actions
  3. requirements.txt: Considerar versiones exactas (==) en lugar de mínimas (>=)
  4. Branch protection: Habilitar reglas de protección en main (require PR, no force push)

Para futuras extensiones

Si el proyecto evoluciona hacia una API o aplicación web:

  1. Implementar rate limiting en endpoints
  2. Agregar autenticación para endpoints de escritura
  3. Sanitizar output HTML con librería dedicada (e.g., bleach)
  4. Implementar CSP headers
  5. Agregar SAST en pipeline (e.g., bandit para Python)

Referencias


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