GuardianUnivalle-Benito-Yucra 1.1.18__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,279 @@
1
+ Metadata-Version: 2.4
2
+ Name: GuardianUnivalle-Benito-Yucra
3
+ Version: 1.1.18
4
+ Summary: Middleware y detectores de seguridad (SQLi, XSS, CSRF, DoS) para Django/Flask
5
+ Author-email: Andres Benito Calle Yucra <benitoandrescalle035@gmail.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://pypi.org/project/guardianunivalle-benito-yucra/
8
+ Project-URL: Bug_Tracker, https://github.com/Andyyupy/guardianunivalle-benito-yucra/issues
9
+ Keywords: security,django,flask,sqli,xss,csrf,middleware
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Topic :: Security
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Framework :: Django
16
+ Classifier: Framework :: Flask
17
+ Requires-Python: >=3.8
18
+ Description-Content-Type: text/markdown
19
+ License-File: LICENSE
20
+ Requires-Dist: redis>=4.0
21
+ Requires-Dist: django>=3.2
22
+ Dynamic: license-file
23
+
24
+ <!-- Información de la librería -->
25
+ <table align="center" style="width: 100%; text-align: center; border-collapse: collapse; background-color: #f4f4f9; border-radius: 15px; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); padding: 20px;">
26
+ <tr>
27
+ <td style="border: none; padding: 10px 20px;">
28
+ <img src="https://res.cloudinary.com/dsbgmboh1/image/upload/v1761866594/Andres_Benito_Calle_Yucra_nxyqee.png"
29
+ alt="Univalle Logo" width="300"
30
+ style="transition: transform 0.3s ease-in-out;"
31
+ onmouseover="this.style.transform='scale(1.1)'"
32
+ onmouseout="this.style.transform='scale(1)'">
33
+ </td>
34
+ <td style="border: none; padding: 10px 20px; text-align: center;">
35
+ <h1 style="font-size: 50px; margin: 0; color: #c62828; font-family: 'Arial', sans-serif; text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);">
36
+ Guardian Univalle Benito Yucra
37
+ </h1>
38
+ <p style="margin: 5px 0 0 0; font-size: 18px; color: #444; font-family: 'Segoe UI', sans-serif;">
39
+ Framework de detección y defensa de amenazas web para Django.
40
+ </p>
41
+ </td>
42
+ <td style="border: none; padding: 10px 20px;">
43
+ <img src="https://res.cloudinary.com/dsbgmboh1/image/upload/v1761864884/GuardianUnivalle_imeegq.png"
44
+ alt="Django Logo" width="300"
45
+ style="transition: transform 0.3s ease-in-out;"
46
+ onmouseover="this.style.transform='scale(1.1)'"
47
+ onmouseout="this.style.transform='scale(1)'">
48
+ </td>
49
+ </tr>
50
+ </table>
51
+
52
+ `Guardian Univalle` es un sistema de seguridad modular desarrollado para fortalecer aplicaciones Django frente a ataques web comunes como **XSS**, **CSRF**, **inyección SQL**, **ataques DoS** y **scraping automatizado**.
53
+ Cada módulo opera mediante **middlewares independientes** que analizan el tráfico HTTP en tiempo real, aplican heurísticas inteligentes y registran eventos sospechosos para auditoría y bloqueo adaptativo.
54
+
55
+ ---
56
+
57
+ ## Arquitectura general
58
+
59
+ Guardian Univalle está diseñado bajo una **arquitectura modular y extensible**, donde cada tipo de amenaza se gestiona mediante un middleware especializado.
60
+ Cada middleware:
61
+
62
+ - Se ejecuta en la fase inicial del request (`process_request`).
63
+ - Analiza cabeceras, cuerpo y metadatos de la petición.
64
+ - Evalúa indicadores de ataque según patrones heurísticos y reglas configurables.
65
+ - Calcula una puntuación de riesgo (score) para cada evento.
66
+ - Anexa la información al objeto `request` (por ejemplo, `request.xss_attack_info`) para que otros módulos (como el de auditoría) la procesen.
67
+
68
+ ---
69
+
70
+ ## Módulos de defensa incluidos
71
+
72
+ ### 1. CSRFDefenseMiddleware
73
+
74
+ **Defensa contra Cross-Site Request Forgery (CSRF)**
75
+
76
+ Este módulo detecta intentos de falsificación de peticiones mediante:
77
+
78
+ - Verificación de cabeceras **Origin** y **Referer** contra el host real.
79
+ - Validación de **tokens CSRF** en cookies, cabeceras o formularios.
80
+ - Análisis del **tipo de contenido** (`Content-Type`) y parámetros sensibles.
81
+ - Detección de peticiones JSON o formularios enviados desde dominios externos.
82
+ - Asignación de un **score de riesgo** proporcional al número y severidad de señales encontradas.
83
+
84
+ **Algoritmos utilizados:** heurísticas basadas en cabeceras HTTP, validación semántica de origen y detección de anomalías en métodos `POST`, `PUT`, `DELETE` y `PATCH`.
85
+
86
+ ---
87
+
88
+ ### 2. XSSDefenseMiddleware
89
+
90
+ **Defensa contra Cross-Site Scripting (XSS)**
91
+
92
+ Analiza los datos enviados en el cuerpo y querystring, detectando vectores de inyección HTML/JS mediante:
93
+
94
+ - Patrones de alto riesgo (`<script>`, `javascript:`, `onload=`, `eval()`).
95
+ - Ofuscaciones con entidades (`&#x3C;`, `%3Cscript`).
96
+ - Detección de atributos de eventos (`onmouseover`, `onfocus`, etc.).
97
+ - Análisis de URIs maliciosas (`data:text/html`, `vbscript:`).
98
+ - Scoring ponderado por severidad (de 0.3 a 0.95).
99
+
100
+ **Algoritmos utilizados:** expresiones regulares avanzadas con pesos heurísticos y uso opcional de la librería **Bleach** para sanitización comparativa.
101
+
102
+ **Salida:** agrega `request.xss_attack_info` con los detalles de detección, IP de origen, descripción, payload y score total.
103
+
104
+ ---
105
+
106
+ ### 3. SQLIDefenseMiddleware
107
+
108
+ **Defensa contra Inyección SQL (SQLi)**
109
+
110
+ Identifica intentos de inyección SQL en parámetros enviados a través de:
111
+
112
+ - Palabras clave peligrosas (`UNION`, `SELECT`, `DROP`, `INSERT`, `UPDATE`).
113
+ - Uso de comentarios (`--`, `#`, `/* ... */`).
114
+ - Concatenaciones o subconsultas sospechosas.
115
+ - Comportamientos anómalos en parámetros GET, POST o JSON.
116
+
117
+ **Algoritmos utilizados:** heurísticas sintácticas + patrones combinados con contextos.
118
+ Evalúa combinaciones de operadores y palabras reservadas para minimizar falsos positivos.
119
+
120
+ **Resultado:** registra el intento en `request.sql_injection_info` con score calculado y parámetros comprometidos.
121
+
122
+ ---
123
+
124
+ ### 4. DOSDefenseMiddleware
125
+
126
+ **Detección de ataques de Denegación de Servicio (DoS)**
127
+
128
+ Monitorea la frecuencia de peticiones por IP y calcula una métrica adaptativa:
129
+
130
+ - Detecta exceso de solicitudes en intervalos cortos.
131
+ - Analiza `User-Agent`, patrones repetitivos y tamaño de payloads.
132
+ - Aplica límites configurables (`MAX_REQUESTS_PER_WINDOW`).
133
+ - Marca IPs sospechosas para registro y bloqueo temporal.
134
+
135
+ **Algoritmos utilizados:** Sliding Window con conteo adaptativo, controlado por señales de frecuencia e intensidad.
136
+
137
+ ---
138
+
139
+ ### 5. ScrapingDefenseMiddleware (opcional)
140
+
141
+ **Detección de scraping y bots automatizados**
142
+
143
+ Evalúa características típicas de scraping:
144
+
145
+ - User-Agent anómalo o ausente.
146
+ - Patrón de navegación repetitivo o excesivamente rápido.
147
+ - Ausencia de cabeceras humanas como `Accept-Language` o `Referer`.
148
+ - Combinación con heurísticas de DoS para detectar scrapers agresivos.
149
+
150
+ **Algoritmos utilizados:** análisis estadístico de cabeceras + patrones de comportamiento a corto plazo.
151
+
152
+ ---
153
+
154
+ ## Integración y uso
155
+
156
+ ### Instalación
157
+
158
+ ```bash
159
+ pip install guardian-univalle
160
+ ```
161
+
162
+ ### Configuración en settings.py
163
+
164
+ ```bash
165
+ MIDDLEWARE = [
166
+ # Middlewares personalizados
167
+ "GuardianUnivalle_Benito_Yucra.detectores.detector_dos.DOSDefenseMiddleware",
168
+ "GuardianUnivalle_Benito_Yucra.detectores.detector_sql.SQLIDefenseMiddleware",
169
+ "GuardianUnivalle_Benito_Yucra.detectores.detector_xss.XSSDefenseMiddleware",
170
+ "GuardianUnivalle_Benito_Yucra.detectores.detector_csrf.CSRFDefenseMiddleware",
171
+ "users.middleware.AuditoriaMiddleware",
172
+ "users.auditoria_servidor.AuditoriaServidorMiddleware",
173
+ ]
174
+
175
+ ```
176
+
177
+ ```bash
178
+ ALLOWED_HOSTS = [
179
+ "192.168.0.3",
180
+ "127.0.0.1",
181
+ "localhost",
182
+ ]
183
+
184
+ ```
185
+
186
+ ### Parámetros de defensa avanzada
187
+
188
+ ```bash
189
+ # --- DoS Defense ---
190
+ DOS_LIMITE_PETICIONES = 120
191
+ DOS_VENTANA_SEGUNDOS = 60
192
+ DOS_PESO = 0.6
193
+ DOS_LIMITE_ENDPOINTS = 80
194
+ DOS_TIEMPO_BLOQUEO = 300
195
+ DOS_TRUSTED_IPS = ["127.0.0.1", "192.168.0.3"]
196
+
197
+ # Score total de bloqueo
198
+ DOS_PESO_BLACKLIST = 0.3
199
+ DOS_PESO_HEURISTICA = 0.1
200
+ DOS_UMBRAL_BLOQUEO = 0.8
201
+
202
+ # Configuración general
203
+ DOS_DEFENSE_MAX_REQUESTS = 100
204
+ DOS_DEFENSE_BLOCK_TIME = 300
205
+ DOS_DEFENSE_TRUSTED_IPS = ["127.0.0.1", "192.168.0.3"]
206
+
207
+ ```
208
+
209
+ ```bash
210
+ # --- SQL Injection Defense ---
211
+ SQLI_DEFENSE_TRUSTED_IPS = ["127.0.0.1", "192.168.0.3"]
212
+
213
+ # --- XSS Defense ---
214
+ XSS_DEFENSE_TRUSTED_IPS = ["127.0.0.1", "192.168.0.3"]
215
+ XSS_DEFENSE_SANITIZE_INPUT = False
216
+ XSS_DEFENSE_BLOCK = True
217
+ XSS_DEFENSE_EXCLUDED_PATHS = ["/health", "/internal"]
218
+
219
+ # --- CSRF Defense ---
220
+ CSRF_DEFENSE_TRUSTED_IPS = ["127.0.0.1", "192.168.0.3"]
221
+ CSRF_DEFENSE_BLOCK = True
222
+ CSRF_DEFENSE_LOG = True
223
+
224
+ ```
225
+
226
+ ### Auditoría y correlación de eventos
227
+
228
+ ```bash
229
+ request.xss_attack_info = {
230
+ "ip": "192.168.1.10",
231
+ "tipos": ["XSS"],
232
+ "descripcion": ["Etiqueta <script> detectada"],
233
+ "payload": {"field": "comentario", "snippet": "<script>alert(1)</script>"},
234
+ "score": 0.92,
235
+ "url": "/comentarios/enviar/",
236
+ }
237
+
238
+ ```
239
+
240
+ ### Filosofía del proyecto
241
+
242
+ Guardian Univalle – Benito & Junkrat busca proporcionar una capa de defensa proactiva para entornos Django universitarios y empresariales, combinando:
243
+
244
+ #Detección heurística.
245
+
246
+ #Análisis semántico de cabeceras y payloads.
247
+
248
+ #Escalamiento de score basado en señales múltiples.
249
+
250
+ ## Su diseño es didáctico y extensible, ideal tanto para proyectos reales como para enseñanza de ciberseguridad aplicada.
251
+
252
+ ### Estructura del paquete
253
+
254
+ ```bash
255
+ guardian_univalle/
256
+
257
+ ├── detectores/
258
+ │ ├── csrf_defense.py
259
+ │ ├── xss_defense.py
260
+ │ ├── sql_defense.py
261
+ │ ├── dos_defense.py
262
+ │ ├── scraping_defense.py
263
+
264
+ ├── auditoria/
265
+ │ └── auditoria_middleware.py
266
+
267
+ └── __init__.py
268
+
269
+ ```
270
+
271
+ ### Licencia
272
+
273
+ Este proyecto se distribuye bajo la licencia MIT, permitiendo libre uso y modificación con atribución.
274
+
275
+ 📘 Universidad Privada del Valle – Sede La Paz
276
+
277
+ 👨‍💻 Desarrollado por: Benito Yucra
278
+
279
+ 📅 Año: 2025
@@ -0,0 +1,19 @@
1
+ GuardianUnivalle_Benito_Yucra/__init__.py,sha256=lbIRb8fCFYfAdyJV6NsYVZJ5pKYSJZKhhK-En9g_1M8,762
2
+ GuardianUnivalle_Benito_Yucra/utilidades.py,sha256=lFNVnlyTSYmQ1CqtmHx6aefK5uNw0wsMdHRQyxAIZy0,120
3
+ GuardianUnivalle_Benito_Yucra/auditoria/registro_auditoria.py,sha256=NnKBOeRWkXVGaMBeQRYU528rWlaBDBPmTAzfji9n8fw,1135
4
+ GuardianUnivalle_Benito_Yucra/criptografia/cifrado_aead.py,sha256=wfoRpaKvOqPbollNQsDNUNWClYJlXYTKTYvv0qcR6aI,962
5
+ GuardianUnivalle_Benito_Yucra/criptografia/intercambio_claves.py,sha256=9djnlzb022hUhrDbQyWz7lWLbkn_vQZ4K7qar1FXYmo,829
6
+ GuardianUnivalle_Benito_Yucra/criptografia/kdf.py,sha256=_sbepEY1qHEKga0ExrX2WRg1HeCPY5MC5CfXZWYyl-A,709
7
+ GuardianUnivalle_Benito_Yucra/detectores/detector_csrf.py,sha256=ox5HShSbkyv3kVe96dDtNeP-edlXhB_G4FExOlG9KrQ,20747
8
+ GuardianUnivalle_Benito_Yucra/detectores/detector_dos.py,sha256=Jy4fhI-6n9wQR0quzpondcUyCA2447lDq4fmOFeM1jA,14989
9
+ GuardianUnivalle_Benito_Yucra/detectores/detector_sql.py,sha256=Cuhny6EXsyEwIMWdMWGSO-uUmcxGsH6f6vDqWaozETQ,29814
10
+ GuardianUnivalle_Benito_Yucra/detectores/detector_xss.py,sha256=zZXbymY2OjBwV1iQbHSP9ErVE9vzY4-_bKBGM8NuzUI,27494
11
+ GuardianUnivalle_Benito_Yucra/middleware_web/middleware_web.py,sha256=23pLLYqliUoMrIC6ZEwz3hKXeDjWfHSm9vYPWGmDDik,495
12
+ GuardianUnivalle_Benito_Yucra/mitigacion/limitador_peticion.py,sha256=ipMOebYhql-6mSyHs0ddYXOcXq9w8P_IXLlpiIqGncw,246
13
+ GuardianUnivalle_Benito_Yucra/mitigacion/lista_bloqueo.py,sha256=6AYWII4mrmwCLHCvGTyoBxR4Oasr4raSHpFbVjqn7d8,193
14
+ GuardianUnivalle_Benito_Yucra/puntuacion/puntuacion_amenaza.py,sha256=Wx5XfcII4oweLvZsTBEJ7kUc9pMpP5-36RfI5C5KJXo,561
15
+ guardianunivalle_benito_yucra-1.1.18.dist-info/licenses/LICENSE,sha256=5e4IdL542v1E8Ft0A24GZjrxZeTsVK7XrS3mZEUhPtM,37
16
+ guardianunivalle_benito_yucra-1.1.18.dist-info/METADATA,sha256=azGLDH_hF9vp23sJznuQDwQ2iA1ep1jeXDbAkV_S0ZU,9988
17
+ guardianunivalle_benito_yucra-1.1.18.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
18
+ guardianunivalle_benito_yucra-1.1.18.dist-info/top_level.txt,sha256=HTWfZM64WAV_QYr5cnXnLuabQt92dvlxqlR3pCwpbDQ,30
19
+ guardianunivalle_benito_yucra-1.1.18.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1 @@
1
+ <!-- Licencia (MIT por ejemplo) -->
@@ -0,0 +1 @@
1
+ GuardianUnivalle_Benito_Yucra