Procesamiento 100% local
El Analizador de extractos bancarios opera como una biblioteca sin estado dentro de su entorno de ejecución local. No se realizan llamadas a API, no se conecta con servicios en la nube ni se envía telemetría. Los analizadores XML están reforzados con no_network=True, bloqueando todo acceso saliente a nivel del parser. Sus datos financieros nunca abandonan su infraestructura.
Protección contra vulnerabilidades XML (XXE)
Los ataques de entidades externas XML (XXE) son uno de los vectores más comunes contra los analizadores XML. El Analizador de extractos bancarios utiliza lxml con la siguiente configuración de seguridad:
resolve_entities=False-- las entidades XML no se resuelvenno_network=True-- se bloquea todo acceso a la red durante el análisisload_dtd=False-- no se cargan definiciones de tipo de documento externas
Adicionalmente, defusedxml proporciona una capa de protección contra ataques de expansión de entidades (billion laughs).
Seguridad en el procesamiento de ZIP
iter_secure_xml_entries() valida cada miembro del archivo ZIP antes de la extracción:
- Tope de tamaño de entrada (10 MB por entrada por defecto)
- Tope de tamaño total descomprimido (50 MB por defecto)
- Límite de ratio de compresión (100:1 por defecto) para prevenir bombas ZIP
- Rechazo de entradas cifradas
- Prevención de path traversal -- lista de bloqueo de patrones peligrosos y resolución de enlaces simbólicos
No se escribe ningún archivo en disco. Los bytes XML pasan directamente al analizador mediante from_bytes().
Enmascaramiento de PII
Los campos sensibles se ocultan antes de llegar a la lógica de su aplicación:
- Nombres de deudores y acreedores
- IBANs y números de cuenta
- Direcciones postales
Estos campos se reemplazan con ***REDACTED*** en la salida de consola y en modo streaming. El enmascaramiento está activo por defecto. Las exportaciones de archivos (CSV, JSON, Excel) conservan los datos sin enmascarar para el procesamiento posterior. Active la visualización completa con --show-pii en la CLI o redact_pii=False en la API.
Validación de entrada
- Límites de tamaño de archivo (100 MB por defecto)
- Validación de extensión y formato -- solo se aceptan formatos reconocidos
- Prevención de path traversal -- resolución de rutas absolutas y detección de enlaces simbólicos
Seguridad de la cadena de suministro
- Dependencias con hash bloqueado -- todas las dependencias tienen versiones con SHA-256 verificado
- SBOM CycloneDX -- inventario completo de componentes en cada versión
- Atestación de procedencia de compilación -- procedencia verificable de GitHub Actions
- Commits firmados -- obligatorios en la integración continua
- Registro SOUP -- todas las dependencias documentadas con niveles de riesgo y seguimiento de fin de vida
Informar vulnerabilidades
Si descubre una vulnerabilidad de seguridad, por favor repórtela de forma responsable enviando un correo a contact@bankstatementparser.com. No abra un issue público para vulnerabilidades de seguridad.