sk-datafort 0.1.0__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.
@@ -0,0 +1,64 @@
1
+ Metadata-Version: 2.4
2
+ Name: sk-datafort
3
+ Version: 0.1.0
4
+ Summary: Escudo de seguridad para aplicaciones con datos masivos frente a filtraciones y accesos anómalos.
5
+ Author-email: Santiago <santiago@tuemail.com>
6
+ Project-URL: Homepage, https://github.com
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: License :: OSI Approved :: MIT License
9
+ Classifier: Operating System :: OS Independent
10
+ Classifier: Topic :: Security
11
+ Requires-Python: >=3.8
12
+ Description-Content-Type: text/markdown
13
+ Requires-Dist: cryptography>=42.0.0
14
+
15
+ # SK DataFort 🛡️
16
+
17
+ **SK DataFort** es una librería de Python de alta seguridad diseñada específicamente para aplicaciones que manejan miles o millones de registros (plataformas educativas, hospitales, universidades, comercios y servicios de IA).
18
+
19
+ Su objetivo no es solo evitar accesos no autorizados en la entrada, sino actuar como un escudo interno para impedir que errores de programación o fugas de credenciales expongan bases de datos masivas.
20
+
21
+ ## 🚀 Funciones Principales
22
+
23
+ * **Detección de Contexto Anómalo:** Monitoreo en tiempo real de direcciones IP y dispositivos (*User-Agent*) para bloquear accesos sospechosos y mitigar secuestros de sesión.
24
+ * **Control de Políticas de Datos:** Restricción estricta de exportaciones masivas (*Anti-scraping*) y validación de límites de consumo por consulta.
25
+ * **Cifrado de Campos Sensibles:** Encriptación robusta a nivel de base de datos para proteger registros críticos.
26
+ * **Logs de Auditoría Automáticos:** Registro indestructible de anomalías e intentos de hackeo en archivos de seguridad local.
27
+
28
+ ## 📦 Instalación (Modo Desarrollo)
29
+
30
+ Para clonar e instalar este escudo de seguridad de forma local en tus proyectos, ejecuta en tu terminal:
31
+
32
+ ```bash
33
+ cd libreria
34
+ pip install -e .
35
+ ```
36
+
37
+ ## 💻 Ejemplo de Uso Rápido
38
+
39
+ Así de fácil es proteger tus endpoints contra cambios drásticos de dispositivo o IP:
40
+
41
+ ```python
42
+ from sk_datafort import AnomalyDetector
43
+
44
+ detector = AnomalyDetector()
45
+
46
+ # Validar el ingreso del usuario legítimo
47
+ autorizado, mensaje = detector.verify_context(
48
+ user_id="user_123",
49
+ current_ip="192.168.1.50",
50
+ current_device="iPhone 15 Pro"
51
+ )
52
+
53
+ # Si un atacante intenta usar las credenciales desde otra IP/Dispositivo
54
+ bloqueado, mensaje = detector.verify_context(
55
+ user_id="user_123",
56
+ current_ip="185.45.22.10",
57
+ current_device="Windows Chrome"
58
+ )
59
+ # Retorna: False | Genera una alerta automática en 'seguridad_alertas.log'
60
+ ```
61
+
62
+ ## 📄 Licencia
63
+
64
+ Este proyecto está bajo la Licencia MIT.
@@ -0,0 +1,50 @@
1
+ # SK DataFort 🛡️
2
+
3
+ **SK DataFort** es una librería de Python de alta seguridad diseñada específicamente para aplicaciones que manejan miles o millones de registros (plataformas educativas, hospitales, universidades, comercios y servicios de IA).
4
+
5
+ Su objetivo no es solo evitar accesos no autorizados en la entrada, sino actuar como un escudo interno para impedir que errores de programación o fugas de credenciales expongan bases de datos masivas.
6
+
7
+ ## 🚀 Funciones Principales
8
+
9
+ * **Detección de Contexto Anómalo:** Monitoreo en tiempo real de direcciones IP y dispositivos (*User-Agent*) para bloquear accesos sospechosos y mitigar secuestros de sesión.
10
+ * **Control de Políticas de Datos:** Restricción estricta de exportaciones masivas (*Anti-scraping*) y validación de límites de consumo por consulta.
11
+ * **Cifrado de Campos Sensibles:** Encriptación robusta a nivel de base de datos para proteger registros críticos.
12
+ * **Logs de Auditoría Automáticos:** Registro indestructible de anomalías e intentos de hackeo en archivos de seguridad local.
13
+
14
+ ## 📦 Instalación (Modo Desarrollo)
15
+
16
+ Para clonar e instalar este escudo de seguridad de forma local en tus proyectos, ejecuta en tu terminal:
17
+
18
+ ```bash
19
+ cd libreria
20
+ pip install -e .
21
+ ```
22
+
23
+ ## 💻 Ejemplo de Uso Rápido
24
+
25
+ Así de fácil es proteger tus endpoints contra cambios drásticos de dispositivo o IP:
26
+
27
+ ```python
28
+ from sk_datafort import AnomalyDetector
29
+
30
+ detector = AnomalyDetector()
31
+
32
+ # Validar el ingreso del usuario legítimo
33
+ autorizado, mensaje = detector.verify_context(
34
+ user_id="user_123",
35
+ current_ip="192.168.1.50",
36
+ current_device="iPhone 15 Pro"
37
+ )
38
+
39
+ # Si un atacante intenta usar las credenciales desde otra IP/Dispositivo
40
+ bloqueado, mensaje = detector.verify_context(
41
+ user_id="user_123",
42
+ current_ip="185.45.22.10",
43
+ current_device="Windows Chrome"
44
+ )
45
+ # Retorna: False | Genera una alerta automática en 'seguridad_alertas.log'
46
+ ```
47
+
48
+ ## 📄 Licencia
49
+
50
+ Este proyecto está bajo la Licencia MIT.
@@ -0,0 +1,25 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "sk-datafort"
7
+ version = "0.1.0"
8
+ authors = [
9
+ { name="Santiago", email="santiago@tuemail.com" },
10
+ ]
11
+ description = "Escudo de seguridad para aplicaciones con datos masivos frente a filtraciones y accesos anómalos."
12
+ readme = "README.md"
13
+ requires-python = ">=3.8"
14
+ classifiers = [
15
+ "Programming Language :: Python :: 3",
16
+ "License :: OSI Approved :: MIT License",
17
+ "Operating System :: OS Independent",
18
+ "Topic :: Security",
19
+ ]
20
+ dependencies = [
21
+ "cryptography>=42.0.0",
22
+ ]
23
+
24
+ [project.urls]
25
+ "Homepage" = "https://github.com"
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,3 @@
1
+ from .detector import AnomalyDetector
2
+
3
+ __all__ = ["AnomalyDetector"]
@@ -0,0 +1,59 @@
1
+ import time
2
+ import logging
3
+ from dataclasses import dataclass
4
+ from typing import Dict, Tuple
5
+
6
+ # Configuración básica del sistema de logs de SK DataFort
7
+ logging.basicConfig(
8
+ filename="seguridad_alertas.log",
9
+ level=logging.WARNING,
10
+ format="%(asctime)s - [SK-DATAFORT] - %(levelname)s - %(message)s",
11
+ datefmt="%Y-%m-%d %H:%M:%S"
12
+ )
13
+
14
+ @dataclass
15
+ class DeviceContext:
16
+ ip: str
17
+ device_id: str
18
+ last_seen: float
19
+
20
+ class AnomalyDetector:
21
+ def __init__(self):
22
+ self.active_sessions: Dict[str, DeviceContext] = {}
23
+ self.blocked_users: Dict[str, float] = {}
24
+
25
+ def verify_context(self, user_id: str, current_ip: str, current_device: str) -> Tuple[bool, str]:
26
+ now = time.time()
27
+
28
+ if user_id in self.blocked_users:
29
+ if now - self.blocked_users[user_id] > 900:
30
+ del self.blocked_users[user_id]
31
+ else:
32
+ return False, "Usuario bloqueado por actividad sospechosa (Cambio de dispositivo no autorizado)."
33
+
34
+ if user_id not in self.active_sessions:
35
+ self.active_sessions[user_id] = DeviceContext(ip=current_ip, device_id=current_device, last_seen=now)
36
+ return True, "Acceso autorizado."
37
+
38
+ session = self.active_sessions[user_id]
39
+
40
+ # SI LAS HUELLAS DIGITALES NO COINCIDEN:
41
+ if session.ip != current_ip or session.device_id != current_device:
42
+ self.blocked_users[user_id] = now
43
+
44
+ # --- NUEVO: Guardamos el ataque en el registro oficial ---
45
+ alerta_msg = f"INTENTO DE HACKEO DETECTADO. Usuario: {user_id} intentó acceder desde IP: {current_ip} [{current_device}]. La sesión legítima pertenece a la IP: {session.ip} [{session.device_id}]."
46
+ logging.warning(alerta_msg)
47
+
48
+ return False, "ALERTA: Se detectó un cambio drástico de IP o dispositivo. Acceso congelado."
49
+
50
+ session.last_seen = now
51
+ return True, "Acceso autorizado."
52
+
53
+ def authorize_new_device(self, user_id: str, new_ip: str, new_device: str):
54
+ if user_id in self.blocked_users:
55
+ del self.blocked_users[user_id]
56
+
57
+ self.active_sessions[user_id] = DeviceContext(ip=new_ip, device_id=new_device, last_seen=time.time())
58
+ # Registramos que el cambio fue legal
59
+ logging.info(f"Usuario {user_id} actualizó exitosamente su dispositivo a IP: {new_ip}.")
@@ -0,0 +1,20 @@
1
+ from dataclasses import dataclass
2
+
3
+ @dataclass
4
+ class PolicyResult:
5
+ allowed: bool
6
+ reason: str
7
+
8
+ class DataPolicy:
9
+ def __init__(self, role: str, allow_read_own_records: bool = True, allow_bulk_export: bool = False, max_query_limit: int = 100):
10
+ self.role = role
11
+ self.allow_read_own_records = allow_read_own_records
12
+ self.allow_bulk_export = allow_bulk_export
13
+ self.max_query_limit = max_query_limit
14
+
15
+ def authorize(self, action: str, record_count: int = 1, is_owner: bool = False) -> PolicyResult:
16
+ if action in ["export_all_records", "bulk_export"] and not self.allow_bulk_export:
17
+ return PolicyResult(allowed=False, reason=f"El rol '{self.role}' tiene restringida la exportación masiva.")
18
+ if record_count > self.max_query_limit:
19
+ return PolicyResult(allowed=False, reason=f"Petición denegada: {record_count} registros exceden el límite.")
20
+ return PolicyResult(allowed=True, reason="Acción autorizada.")
@@ -0,0 +1,64 @@
1
+ Metadata-Version: 2.4
2
+ Name: sk-datafort
3
+ Version: 0.1.0
4
+ Summary: Escudo de seguridad para aplicaciones con datos masivos frente a filtraciones y accesos anómalos.
5
+ Author-email: Santiago <santiago@tuemail.com>
6
+ Project-URL: Homepage, https://github.com
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: License :: OSI Approved :: MIT License
9
+ Classifier: Operating System :: OS Independent
10
+ Classifier: Topic :: Security
11
+ Requires-Python: >=3.8
12
+ Description-Content-Type: text/markdown
13
+ Requires-Dist: cryptography>=42.0.0
14
+
15
+ # SK DataFort 🛡️
16
+
17
+ **SK DataFort** es una librería de Python de alta seguridad diseñada específicamente para aplicaciones que manejan miles o millones de registros (plataformas educativas, hospitales, universidades, comercios y servicios de IA).
18
+
19
+ Su objetivo no es solo evitar accesos no autorizados en la entrada, sino actuar como un escudo interno para impedir que errores de programación o fugas de credenciales expongan bases de datos masivas.
20
+
21
+ ## 🚀 Funciones Principales
22
+
23
+ * **Detección de Contexto Anómalo:** Monitoreo en tiempo real de direcciones IP y dispositivos (*User-Agent*) para bloquear accesos sospechosos y mitigar secuestros de sesión.
24
+ * **Control de Políticas de Datos:** Restricción estricta de exportaciones masivas (*Anti-scraping*) y validación de límites de consumo por consulta.
25
+ * **Cifrado de Campos Sensibles:** Encriptación robusta a nivel de base de datos para proteger registros críticos.
26
+ * **Logs de Auditoría Automáticos:** Registro indestructible de anomalías e intentos de hackeo en archivos de seguridad local.
27
+
28
+ ## 📦 Instalación (Modo Desarrollo)
29
+
30
+ Para clonar e instalar este escudo de seguridad de forma local en tus proyectos, ejecuta en tu terminal:
31
+
32
+ ```bash
33
+ cd libreria
34
+ pip install -e .
35
+ ```
36
+
37
+ ## 💻 Ejemplo de Uso Rápido
38
+
39
+ Así de fácil es proteger tus endpoints contra cambios drásticos de dispositivo o IP:
40
+
41
+ ```python
42
+ from sk_datafort import AnomalyDetector
43
+
44
+ detector = AnomalyDetector()
45
+
46
+ # Validar el ingreso del usuario legítimo
47
+ autorizado, mensaje = detector.verify_context(
48
+ user_id="user_123",
49
+ current_ip="192.168.1.50",
50
+ current_device="iPhone 15 Pro"
51
+ )
52
+
53
+ # Si un atacante intenta usar las credenciales desde otra IP/Dispositivo
54
+ bloqueado, mensaje = detector.verify_context(
55
+ user_id="user_123",
56
+ current_ip="185.45.22.10",
57
+ current_device="Windows Chrome"
58
+ )
59
+ # Retorna: False | Genera una alerta automática en 'seguridad_alertas.log'
60
+ ```
61
+
62
+ ## 📄 Licencia
63
+
64
+ Este proyecto está bajo la Licencia MIT.
@@ -0,0 +1,10 @@
1
+ README.md
2
+ pyproject.toml
3
+ src/sk_datafort/__init__.py
4
+ src/sk_datafort/detector.py
5
+ src/sk_datafort/policy.py
6
+ src/sk_datafort.egg-info/PKG-INFO
7
+ src/sk_datafort.egg-info/SOURCES.txt
8
+ src/sk_datafort.egg-info/dependency_links.txt
9
+ src/sk_datafort.egg-info/requires.txt
10
+ src/sk_datafort.egg-info/top_level.txt
@@ -0,0 +1 @@
1
+ cryptography>=42.0.0
@@ -0,0 +1 @@
1
+ sk_datafort