Documentación

DataSentry

Auditoría de cumplimiento de privacidad y protección de datos estática para desarrolladores.

Última actualización: 2026-07-15

DataSentry es un escáner de privacidad estático, modular y local (offline-first) diseñado para auditar repositorios de software y esquemas de bases de datos. Permite identificar de manera automatizada riesgos de cumplimiento normativo frente a regulaciones como la Ley N° 21.719 de Chile, la LFPDPPP de México, la Ley 1581 de Colombia y la LGPD de Brasil, con soporte en desarrollo para el GDPR de la UE, CCPA/CPRA de California y PIPEDA de Canadá.


Cómo Funciona (Sensores)

El escáner ejecuta de forma recursiva tres sensores especializados sobre el directorio de su proyecto:

1. Analizador de Esquema de Base de Datos

Inspecciona archivos de definición de base de datos (.sql) en busca de campos que contengan datos personales (como contraseñas, correos electrónicos, datos de salud o biométricos) sin cifrar, y valida si existen procedimientos declarados de retención o seudonimización.

2. Analizador de Código Fuente

Inspecciona arquivos de código (.py, .js, .ts, .go, etc.) para detectar:

  • Secretos o claves de API hardcodeadas.
  • Algoritmos criptográficos débiles (MD5, SHA1).
  • Protocolos de comunicación inseguros (HTTP, FTP, Telnet).
  • Fugas de información personal en logs de consola.
  • Presencia de endpoints relacionados con los Derechos ARCO (Acceso, Rectificación, Supresión y Portabilidad).

3. Analizador de Transparencia y Consentimiento

Inspecciona plantillas HTML y documentación para verificar que exista una política de privacidad y detectar patrones oscuros de consentimiento, como casillas pre-marcadas.


Opciones de Configuración

Puede configurar el comportamiento del escáner declarativamente colocando un archivo datasentry-project.properties en la raíz de su proyecto.

Parámetros Disponibles:

ParámetroValor por defectoDescripción
datasentry.projectKeydefault_projectIdentificador único de su proyecto en SafeData.
datasentry.organizationdefault_orgNombre de su organização.
datasentry.sources.Directorio raíz para iniciar el escaneo.
datasentry.exclusionsvenv/**,**/node_modules/**Lista separada por comas de patrones de exclusión (glob).
datasentry.privacyPolicyPathPRIVACY.mdRuta esperada del documento de Política de Privacidad.
datasentry.lawsallLeyes activas para validar (chile-21719, mexico-lfpdppp, colombia-1581, brazil-lgpd, all).
datasentry.log.levelINFONivel de detalle de la consola (DEBUG, INFO, WARN, ERROR).

Ejemplo de Archivo de Configuración:

# datasentry-project.properties
datasentry.projectKey=mi_proyecto_auditoria
datasentry.organization=mi_empresa
datasentry.sources=.
datasentry.exclusions=venv/**,**/__pycache__/**,**/node_modules/**,**/dist/**
datasentry.privacyPolicyPath=docs/privacy.md
datasentry.laws=chile-21719,mexico-lfpdppp,colombia-1581,brazil-lgpd
datasentry.log.level=INFO

Cómo Ejecutar el Escáner

1. Ejecución con Python CLI

Instale las dependencias de su proyecto y ejecute la herramienta:

python3 main.py analyze --target /ruta/al/proyecto --laws all

2. Ejecución con Docker (Recomendado)

Para una ejecución aislada que no requiere configuración local, use la imagen de Docker montando el código del proyecto en el volumen /src:

# Construir la imagen local
docker build -t datasentry-scanner:local -f Dockerfile.local .

# Ejecutar el escaneo
docker run --rm -v "/ruta/a/mi-codigo:/src" datasentry-scanner:local analyze --target /src

Archivo .privacyignore

Si desea omitir archivos o directorios específicos del análisis de privacidad (por ejemplo, archivos de pruebas o mocks), cree un archivo .privacyignore en la raíz de su proyecto con el formato estándar de exclusiones:

# .privacyignore
tests/fixtures/mock_data.sql
src/legacy/auth_test.py