GuardianUnivalle-Benito-Yucra 0.1.35__tar.gz → 0.1.37__tar.gz
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.
Potentially problematic release.
This version of GuardianUnivalle-Benito-Yucra might be problematic. Click here for more details.
- guardianunivalle_benito_yucra-0.1.37/GuardianUnivalle_Benito_Yucra/auditoria/registro_auditoria.py +40 -0
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/GuardianUnivalle_Benito_Yucra/detectores/detector_dos.py +20 -20
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/GuardianUnivalle_Benito_Yucra.egg-info/PKG-INFO +1 -1
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/PKG-INFO +1 -1
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/pyproject.toml +1 -1
- guardianunivalle_benito_yucra-0.1.35/GuardianUnivalle_Benito_Yucra/auditoria/registro_auditoria.py +0 -9
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/GuardianUnivalle_Benito_Yucra/__init__.py +0 -0
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/GuardianUnivalle_Benito_Yucra/criptografia/cifrado_aead.py +0 -0
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/GuardianUnivalle_Benito_Yucra/criptografia/intercambio_claves.py +0 -0
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/GuardianUnivalle_Benito_Yucra/criptografia/kdf.py +0 -0
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/GuardianUnivalle_Benito_Yucra/detectores/detector_csrf.py +0 -0
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/GuardianUnivalle_Benito_Yucra/detectores/detector_keylogger.py +0 -0
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/GuardianUnivalle_Benito_Yucra/detectores/detector_sql.py +0 -0
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/GuardianUnivalle_Benito_Yucra/detectores/detector_xss.py +0 -0
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/GuardianUnivalle_Benito_Yucra/middleware_web/middleware_web.py +0 -0
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/GuardianUnivalle_Benito_Yucra/mitigacion/limitador_peticion.py +0 -0
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/GuardianUnivalle_Benito_Yucra/mitigacion/lista_bloqueo.py +0 -0
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/GuardianUnivalle_Benito_Yucra/puntuacion/puntuacion_amenaza.py +0 -0
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/GuardianUnivalle_Benito_Yucra/utilidades.py +0 -0
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/GuardianUnivalle_Benito_Yucra.egg-info/SOURCES.txt +0 -0
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/GuardianUnivalle_Benito_Yucra.egg-info/dependency_links.txt +0 -0
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/GuardianUnivalle_Benito_Yucra.egg-info/requires.txt +0 -0
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/GuardianUnivalle_Benito_Yucra.egg-info/top_level.txt +0 -0
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/LICENSE +0 -0
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/README.md +0 -0
- {guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/setup.cfg +0 -0
guardianunivalle_benito_yucra-0.1.37/GuardianUnivalle_Benito_Yucra/auditoria/registro_auditoria.py
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import datetime
|
|
3
|
+
import json
|
|
4
|
+
|
|
5
|
+
LOG_FILE = "auditoria_guardian.log"
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def registrar_evento(
|
|
9
|
+
tipo: str,
|
|
10
|
+
descripcion: str = "",
|
|
11
|
+
severidad: str = "MEDIA",
|
|
12
|
+
extra: dict | None = None,
|
|
13
|
+
):
|
|
14
|
+
try:
|
|
15
|
+
evento = {
|
|
16
|
+
"fecha": datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
|
|
17
|
+
"tipo": tipo,
|
|
18
|
+
"descripcion": descripcion,
|
|
19
|
+
"severidad": severidad,
|
|
20
|
+
"extra": extra or {},
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
# ✅ Crear carpeta solo si hay directorio en la ruta
|
|
24
|
+
log_dir = os.path.dirname(LOG_FILE)
|
|
25
|
+
if log_dir:
|
|
26
|
+
os.makedirs(log_dir, exist_ok=True)
|
|
27
|
+
|
|
28
|
+
with open(LOG_FILE, "a", encoding="utf-8") as f:
|
|
29
|
+
f.write(json.dumps(evento, ensure_ascii=False) + "\n")
|
|
30
|
+
|
|
31
|
+
except Exception as e:
|
|
32
|
+
print(f"[Auditoría] Error al registrar evento: {e}")
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def generar_reporte() -> str:
|
|
36
|
+
"""Devuelve todo el contenido del archivo de auditoría."""
|
|
37
|
+
if not os.path.exists(LOG_FILE):
|
|
38
|
+
return "No hay registros aún."
|
|
39
|
+
with open(LOG_FILE, "r", encoding="utf-8") as f:
|
|
40
|
+
return f.read()
|
|
@@ -1,23 +1,3 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Detector de ataques de tipo DoS (Denial of Service)
|
|
3
|
-
====================================================
|
|
4
|
-
|
|
5
|
-
Este módulo forma parte del sistema de detección de amenazas.
|
|
6
|
-
Detecta tasas de petición anómalas en base a límites configurables,
|
|
7
|
-
captura datos del atacante (IP, agente, cabeceras)
|
|
8
|
-
y registra los incidentes para su auditoría.
|
|
9
|
-
|
|
10
|
-
Componentes:
|
|
11
|
-
- DOSDefenseMiddleware: Middleware principal de detección.
|
|
12
|
-
- detectar_dos(): Evalúa si la tasa supera el umbral permitido.
|
|
13
|
-
- calcular_nivel_amenaza_dos(): Calcula la severidad proporcional.
|
|
14
|
-
- registrar_evento(): Registra los incidentes en auditoría.
|
|
15
|
-
|
|
16
|
-
Algoritmos relacionados:
|
|
17
|
-
* Rate Limiting basado en ventana deslizante.
|
|
18
|
-
* Cálculo de score: S_dos = w_dos * (tasa_peticion / limite)
|
|
19
|
-
"""
|
|
20
|
-
|
|
21
1
|
from __future__ import annotations
|
|
22
2
|
import time
|
|
23
3
|
import logging
|
|
@@ -94,6 +74,7 @@ def detectar_dos(ip: str, tasa_peticion: int, limite: int = LIMITE_PETICIONES) -
|
|
|
94
74
|
descripcion=f"Alta tasa de peticiones desde {ip}: {tasa_peticion} req/min (límite {limite})",
|
|
95
75
|
severidad="ALTA",
|
|
96
76
|
)
|
|
77
|
+
|
|
97
78
|
limitar_peticion() # Acción de mitigación
|
|
98
79
|
return True
|
|
99
80
|
return False
|
|
@@ -164,3 +145,22 @@ S_dos = w_dos * (tasa_peticion / limite)
|
|
|
164
145
|
S_dos = 0.6 * (150 / 100)
|
|
165
146
|
donde w_dos es peso asignado a DoS y tasa_peticion / limite es la proporción de la tasa actual sobre el límite.
|
|
166
147
|
"""
|
|
148
|
+
"""
|
|
149
|
+
Detector de ataques de tipo DoS (Denial of Service)
|
|
150
|
+
====================================================
|
|
151
|
+
|
|
152
|
+
Este módulo forma parte del sistema de detección de amenazas.
|
|
153
|
+
Detecta tasas de petición anómalas en base a límites configurables,
|
|
154
|
+
captura datos del atacante (IP, agente, cabeceras)
|
|
155
|
+
y registra los incidentes para su auditoría.
|
|
156
|
+
|
|
157
|
+
Componentes:
|
|
158
|
+
- DOSDefenseMiddleware: Middleware principal de detección.
|
|
159
|
+
- detectar_dos(): Evalúa si la tasa supera el umbral permitido.
|
|
160
|
+
- calcular_nivel_amenaza_dos(): Calcula la severidad proporcional.
|
|
161
|
+
- registrar_evento(): Registra los incidentes en auditoría.
|
|
162
|
+
|
|
163
|
+
Algoritmos relacionados:
|
|
164
|
+
* Rate Limiting basado en ventana deslizante.
|
|
165
|
+
* Cálculo de score: S_dos = w_dos * (tasa_peticion / limite)
|
|
166
|
+
"""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GuardianUnivalle-Benito-Yucra
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.37
|
|
4
4
|
Summary: Middleware y detectores de seguridad (SQLi, XSS, CSRF, DoS, Keylogger) para Django/Flask
|
|
5
5
|
Author-email: Andres Benito Calle Yucra <benitoandrescalle035@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GuardianUnivalle-Benito-Yucra
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.37
|
|
4
4
|
Summary: Middleware y detectores de seguridad (SQLi, XSS, CSRF, DoS, Keylogger) para Django/Flask
|
|
5
5
|
Author-email: Andres Benito Calle Yucra <benitoandrescalle035@gmail.com>
|
|
6
6
|
License: MIT
|
{guardianunivalle_benito_yucra-0.1.35 → guardianunivalle_benito_yucra-0.1.37}/pyproject.toml
RENAMED
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "GuardianUnivalle-Benito-Yucra" # usar mayúsculas consistente
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.37"
|
|
8
8
|
description = "Middleware y detectores de seguridad (SQLi, XSS, CSRF, DoS, Keylogger) para Django/Flask"
|
|
9
9
|
authors = [
|
|
10
10
|
{ name = "Andres Benito Calle Yucra", email = "benitoandrescalle035@gmail.com" }
|
guardianunivalle_benito_yucra-0.1.35/GuardianUnivalle_Benito_Yucra/auditoria/registro_auditoria.py
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import datetime
|
|
2
|
-
|
|
3
|
-
def registrar_evento(tipo: str, mensaje: str):
|
|
4
|
-
with open("auditoria_guardian.log", "a", encoding="utf-8") as f:
|
|
5
|
-
f.write(f"[{datetime.datetime.now()}] {tipo}: {mensaje}\n")
|
|
6
|
-
|
|
7
|
-
def generar_reporte() -> str:
|
|
8
|
-
with open("auditoria_guardian.log", "r", encoding="utf-8") as f:
|
|
9
|
-
return f.read()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|