Skip to content

fix(security): endurecimiento de seguridad mediante limitación de tasa en autenticación y alertas - #65

Closed
Ochoa-Stack wants to merge 1 commit into
developfrom
fix/security-hardening-round-one
Closed

fix(security): endurecimiento de seguridad mediante limitación de tasa en autenticación y alertas#65
Ochoa-Stack wants to merge 1 commit into
developfrom
fix/security-hardening-round-one

Conversation

@Ochoa-Stack

Copy link
Copy Markdown
Owner

fix/security-hardening-round-one

Descripción

En este ciclo, elevamos la postura de seguridad de la plataforma implementando controles de limitación de tráfico (rate limiting) y cuotas operativas sobre rutas críticas. Estas medidas previenen ataques de fuerza bruta, saturación de envío de correos y el agotamiento deliberado de los recursos del motor de notificaciones.

Detalles técnicos que integramos:

  • Limitación en Autenticación (fix): Intervenimos auth_bp.py inyectando restricciones de frecuencia sobre el flujo de restablecimiento de contraseña (reset-password). Esto mitiga vectores de ataque orientados a la enumeración invasiva o al bombardeo de correos electrónicos (email spam/bombing).
  • Cuotas de Creación de Alertas (fix): Modificamos alerts_bp.py para establecer un límite estricto en la creación de alertas por usuario. Esta barrera protege la infraestructura contra la saturación del orquestador de ingesta y evaluación.
  • Cobertura de Integración (test): Actualizamos el módulo de pruebas test_alerts_endpoints.py para certificar empíricamente el rechazo de peticiones (típicamente mediante el código de estado 429 Too Many Requests o 403 según el diseño de cuota) una vez que un cliente excede el umbral seguro.

Tipo de cambio

  • feat
  • fix
  • refactor
  • chore
  • docs
  • test
  • ci

Cómo probar

  1. Tras el merge, sincronizamos la rama base en nuestro entorno local.
  2. En la raíz del backend (cd backend), activamos el entorno virtual.
  3. Ejecutamos la validación automatizada para confirmar la integridad de los nuevos límites de seguridad:
    pytest tests/integration/test_alerts_endpoints.py -v
  4. Levantamos el servidor de desarrollo local (flask run).
  5. Prueba de Autenticación: Mediante un cliente HTTP (ej. Thunder Client, Postman o curl), enviamos múltiples peticiones consecutivas al endpoint de reset-password. Confirmamos que, tras superar el umbral definido, la API comienza a rechazar las solicitudes para ese identificador/IP.
  6. Prueba de Cuotas: Con un usuario autenticado, ejecutamos peticiones de creación de alerta hasta alcanzar el límite máximo permitido por cuenta. Confirmamos que la API aborta las creaciones adicionales.

Checklist

  • Sigue las convenciones de commits del proyecto (separación atómica)
  • Los flujos de recuperación de credenciales están protegidos contra abuso de tráfico
  • El motor de alertas cuenta con cuotas de creación para prevenir agotamiento de recursos
  • La suite de pruebas verifica los rechazos tras el incumplimiento de los límites operativos

… limit

Co-authored-by: Oscar Soriano <neko.dev@outlook.com>
Co-authored-by: Aylin Chavira <aylinchavirachv@gmail.com>
Co-authored-by: Alejandro Balderrama <alejandro64.bp@gmail.com>
@codecov-commenter

Copy link
Copy Markdown

Welcome to Codecov 🎉

Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.

ℹ️ You can also turn on project coverage checks and project coverage reporting on Pull Request comment

Thanks for integrating Codecov - We've got you covered ☂️

@Ochoa-Stack
Ochoa-Stack deleted the fix/security-hardening-round-one branch July 28, 2026 06:00
@Ochoa-Stack
Ochoa-Stack restored the fix/security-hardening-round-one branch July 28, 2026 06:02
@Ochoa-Stack
Ochoa-Stack deleted the fix/security-hardening-round-one branch July 28, 2026 06:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants