Skip to main content

Middleware y detectores de seguridad (SQLi, XSS, CSRF, DoS) para Django/Flask

Project description

Univalle Logo

Guardian Univalle Benito Yucra

Librería de seguridad web para Django basada en detección heurística, scoring de riesgo y bloqueo adaptativo.

Guardian Logo

GuardianUnivalle-Benito-Yucra es una librería de seguridad para aplicaciones web desarrollada en Python, distribuida como paquete a través de PyPI y diseñada para fortalecer aplicaciones Django frente a amenazas comunes como SQL Injection (SQLi), Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF), Denegación de Servicio (DoS) y scraping automatizado.

A diferencia de muchas soluciones tradicionales que únicamente validan o sanitizan datos, Guardian Univalle implementa una arquitectura basada en detección heurística, análisis multicapa, puntuación de riesgo (Threat Score) y bloqueo adaptativo, funcionando como una capa de protección similar a un Mini WAF (Web Application Firewall) integrado directamente dentro de la aplicación.

Cada petición HTTP es analizada en tiempo real antes de llegar a la lógica de negocio. El sistema inspecciona cabeceras, parámetros, cuerpos de solicitudes, metadatos y patrones de comportamiento para identificar actividades sospechosas, registrar eventos de auditoría y aplicar medidas de mitigación automáticas cuando el nivel de riesgo supera los umbrales configurados.


Arquitectura General

Guardian Univalle está construido bajo una arquitectura modular basada en middlewares especializados.

Cada middleware:

  • Intercepta solicitudes HTTP durante process_request.
  • Analiza cabeceras, cuerpo y metadatos.
  • Evalúa señales de riesgo mediante reglas heurísticas.
  • Calcula un score de amenaza.
  • Registra evidencias del ataque detectado.
  • Permite auditoría centralizada.
  • Puede bloquear automáticamente solicitudes maliciosas.

El objetivo es proporcionar una defensa proactiva y extensible capaz de adaptarse a distintos entornos académicos, empresariales y gubernamentales.


Características Principales

✅ Detección heurística de amenazas web.

✅ Sistema de puntuación de riesgo (Threat Score).

✅ Bloqueo adaptativo configurable.

✅ Análisis de cabeceras HTTP.

✅ Inspección de payloads GET, POST y JSON.

✅ Registro y auditoría de incidentes.

✅ Arquitectura modular basada en middlewares.

✅ Integración nativa con Django.

✅ Compatibilidad conceptual con Flask y otros frameworks WSGI.

✅ Diseño extensible para investigación y enseñanza de ciberseguridad.


Módulos de Defensa

1. CSRFDefenseMiddleware

Defensa contra Cross-Site Request Forgery (CSRF)

Detecta intentos de falsificación de solicitudes verificando:

  • Cabeceras Origin.
  • Cabeceras Referer.
  • Tokens CSRF.
  • Cookies de sesión.
  • Formularios HTML.
  • Solicitudes JSON.
  • Métodos POST, PUT, PATCH y DELETE.

Técnicas utilizadas

  • Validación semántica del origen.
  • Comparación de dominios confiables.
  • Correlación entre cabeceras y cookies.
  • Evaluación heurística de inconsistencias.

Resultado

Genera un score de riesgo y registra los detalles del incidente para auditoría o bloqueo automático.


2. XSSDefenseMiddleware

Defensa contra Cross-Site Scripting (XSS)

Analiza parámetros y contenido enviado por el usuario para detectar:

  • Etiquetas <script>.
  • javascript:
  • vbscript:
  • data:text/html
  • eval()
  • Eventos HTML peligrosos.
  • Payloads ofuscados.
  • Codificación hexadecimal o URL Encoding malicioso.

Técnicas utilizadas

  • Expresiones regulares avanzadas.
  • Heurísticas ponderadas.
  • Sanitización comparativa opcional mediante Bleach.
  • Scoring adaptativo según severidad.

Resultado

Genera:

request.xss_attack_info

con:

  • IP de origen.
  • Payload detectado.
  • Tipo de ataque.
  • Score.
  • Evidencias encontradas.

3. SQLIDefenseMiddleware

Defensa contra SQL Injection

Analiza parámetros GET, POST y JSON para identificar:

  • UNION SELECT.
  • DROP TABLE.
  • INSERT.
  • UPDATE.
  • DELETE.
  • Comentarios SQL (--, #, /* */).
  • Subconsultas sospechosas.
  • Concatenaciones maliciosas.
  • Operadores lógicos utilizados para evasión.

Técnicas utilizadas

  • Análisis sintáctico.
  • Correlación contextual.
  • Heurísticas de palabras reservadas.
  • Scoring basado en patrones combinados.

Resultado

Genera:

request.sql_injection_info

incluyendo:

  • Parámetros afectados.
  • Evidencias.
  • Nivel de riesgo.
  • Score final.

4. DOSDefenseMiddleware

Defensa contra Denegación de Servicio (DoS)

Supervisa continuamente la actividad por dirección IP para detectar:

  • Frecuencia excesiva de solicitudes.
  • Picos de tráfico.
  • Comportamientos repetitivos.
  • Accesos automatizados.
  • Sobrecarga de endpoints específicos.

Técnicas utilizadas

  • Sliding Window.
  • Rate Limiting adaptativo.
  • Detección de patrones repetitivos.
  • Correlación de actividad temporal.

Capacidades

  • Bloqueo temporal.
  • Lista blanca de IPs confiables.
  • Umbrales configurables.
  • Registro de incidentes.

5. ScrapingDefenseMiddleware

Defensa contra Scraping Automatizado

Detecta bots y sistemas de extracción masiva mediante:

  • User-Agent anómalo.
  • Ausencia de cabeceras humanas.
  • Navegación excesivamente rápida.
  • Accesos secuenciales repetitivos.
  • Patrones compatibles con crawlers.

Técnicas utilizadas

  • Análisis estadístico.
  • Correlación de cabeceras.
  • Heurísticas de comportamiento.
  • Integración con el detector DoS.

Sistema de Scoring de Amenazas

Uno de los componentes más importantes de Guardian Univalle es su sistema de puntuación de riesgo.

Cada indicador detectado aporta una ponderación específica al score global.

Ejemplo:

Indicador Score
Script Tag 0.30
javascript: 0.40
eval() 0.50
UNION SELECT 0.70
Origen CSRF inválido 0.60
Exceso de peticiones 0.80

El score acumulado permite:

  • Clasificar amenazas.
  • Reducir falsos positivos.
  • Aplicar bloqueos automáticos.
  • Priorizar incidentes de seguridad.

Instalación

pip install guardian-univalle

Configuración en Django

MIDDLEWARE = [
    "GuardianUnivalle_Benito_Yucra.detectores.detector_dos.DOSDefenseMiddleware",
    "GuardianUnivalle_Benito_Yucra.detectores.detector_sql.SQLIDefenseMiddleware",
    "GuardianUnivalle_Benito_Yucra.detectores.detector_xss.XSSDefenseMiddleware",
    "GuardianUnivalle_Benito_Yucra.detectores.detector_csrf.CSRFDefenseMiddleware",
    "users.middleware.AuditoriaMiddleware",
    "users.auditoria_servidor.AuditoriaServidorMiddleware",
]
ALLOWED_HOSTS = [
    "127.0.0.1",
    "localhost",
    "192.168.0.3",
]

Configuración Avanzada

# DoS Defense

DOS_LIMITE_PETICIONES = 120
DOS_VENTANA_SEGUNDOS = 60
DOS_PESO = 0.6
DOS_LIMITE_ENDPOINTS = 80
DOS_TIEMPO_BLOQUEO = 300
DOS_TRUSTED_IPS = ["127.0.0.1", "192.168.0.3"]

DOS_PESO_BLACKLIST = 0.3
DOS_PESO_HEURISTICA = 0.1
DOS_UMBRAL_BLOQUEO = 0.8

DOS_DEFENSE_MAX_REQUESTS = 100
DOS_DEFENSE_BLOCK_TIME = 300
DOS_DEFENSE_TRUSTED_IPS = ["127.0.0.1", "192.168.0.3"]

# SQL Injection

SQLI_DEFENSE_TRUSTED_IPS = [
    "127.0.0.1",
    "192.168.0.3"
]

# XSS

XSS_DEFENSE_TRUSTED_IPS = [
    "127.0.0.1",
    "192.168.0.3"
]

XSS_DEFENSE_SANITIZE_INPUT = False
XSS_DEFENSE_BLOCK = True
XSS_DEFENSE_EXCLUDED_PATHS = [
    "/health",
    "/internal"
]

# CSRF

CSRF_DEFENSE_TRUSTED_IPS = [
    "127.0.0.1",
    "192.168.0.3"
]

CSRF_DEFENSE_BLOCK = True
CSRF_DEFENSE_LOG = True

Auditoría de Eventos

Ejemplo de incidente registrado:

request.xss_attack_info = {
    "ip": "192.168.1.10",
    "tipos": ["XSS"],
    "descripcion": ["Etiqueta <script> detectada"],
    "payload": {
        "field": "comentario",
        "snippet": "<script>alert(1)</script>"
    },
    "score": 0.92,
    "url": "/comentarios/enviar/"
}

La auditoría permite:

  • Correlación de eventos.
  • Análisis forense.
  • Métricas de seguridad.
  • Reportes institucionales.
  • Seguimiento histórico de incidentes.

Filosofía del Proyecto

Guardian Univalle Benito Yucra busca proporcionar una capa adicional de seguridad para aplicaciones web modernas mediante:

  • Detección heurística.
  • Análisis semántico de cabeceras.
  • Inspección profunda de payloads.
  • Correlación de múltiples señales.
  • Scoring adaptativo.
  • Bloqueo automático basado en riesgo.

Su enfoque combina principios de los sistemas IDS, IPS y WAF, pero integrados directamente en la aplicación web.


Estructura del Paquete

GuardianUnivalle_Benito_Yucra/
│
├── detectores/
│   ├── detector_csrf.py
│   ├── detector_xss.py
│   ├── detector_sql.py
│   ├── detector_dos.py
│   ├── detector_scraping.py
│
├── auditoria/
│   └── auditoria_middleware.py
│
├── configuracion/
│
└── __init__.py

Clasificación Técnica

GuardianUnivalle-Benito-Yucra puede clasificarse como:

✅ Paquete Python (Python Package)

✅ Librería de seguridad web

✅ Conjunto de middlewares de seguridad

✅ Sistema de detección heurística de amenazas

✅ Mini WAF integrado a nivel de aplicación

✅ Framework modular de defensa para Django


Licencia

Licencia MIT.

Uso, modificación y distribución permitidos con atribución correspondiente.


📘 Universidad Privada del Valle – Sede La Paz

👨‍💻 Desarrollado por: Andres Benito Calle Yucra

📅 Año: 2025

🔐 Guardian Univalle Benito Yucra — Seguridad inteligente para aplicaciones web mediante detección heurística, scoring de amenazas y bloqueo adaptativo.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

guardianunivalle_benito_yucra-1.1.44.tar.gz (29.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file guardianunivalle_benito_yucra-1.1.44.tar.gz.

File metadata

File hashes

Hashes for guardianunivalle_benito_yucra-1.1.44.tar.gz
Algorithm Hash digest
SHA256 562fd16db8fdaff0cbe8a0303d956449b989d98d3585552ab075579e987b49a5
MD5 8a9b967c9ee771c9228f531ee719d809
BLAKE2b-256 14627650233490245e554bd5f6bf82e6d7b65a8e11e7275c5f2ef825010a8be1

See more details on using hashes here.

File details

Details for the file guardianunivalle_benito_yucra-1.1.44-py3-none-any.whl.

File metadata

File hashes

Hashes for guardianunivalle_benito_yucra-1.1.44-py3-none-any.whl
Algorithm Hash digest
SHA256 61960a6ffcc01f7692bcb5a5600c29b08179e8f2b2a5dbc866a95cc5340e8aa2
MD5 139409e608f6efcc9b308976bdb6b204
BLAKE2b-256 b78e407da3e6f03b8069b442eb54e8f14a66d44f5f71ebc07823182367fdd1f2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page