ShFlow — Dossier Técnico de Cumplimiento ENS y RGPD
Versión evaluada: 1.8.0
Autor: Luis GuLo
Licencia: GPLv3
Ubicación del código: Servidor GIT privado
Fecha de evaluación: Noviembre 2025
1. Introducción
ShFlow es un sistema modular de automatización declarativa en Shell, orientado a tareas reproducibles, trazables y seguras. Su arquitectura permite ejecutar playbooks YAML sobre hosts remotos, con interpolación de variables, cifrado de secretos y control granular de salida.
Este documento evalúa el cumplimiento de ShFlow frente al Esquema Nacional de Seguridad (ENS) y el Reglamento General de Protección de Datos (RGPD), con el objetivo de facilitar su adopción en entornos públicos, comerciales o sensibles.
2. Cumplimiento ENS
2.1 Clasificación del sistema
- Nivel aplicable: Medio
- Justificación: ShFlow puede operar sobre sistemas que gestionan datos personales, credenciales, configuraciones sensibles o infraestructura crítica. Su uso en entornos públicos o empresariales requiere trazabilidad, control de acceso y protección frente a errores o código malicioso.
2.2 Medidas técnicas aplicadas (Anexo II del RD 311/2022)
| Categoría ENS | Medida aplicada en ShFlow |
|---|---|
| Control de acceso | SSH por usuario (REMOTE_USER), vault cifrado, separación por host |
| Trazabilidad | Logs por host, por tarea, por módulo (echolog, capture_log, register) |
| Protección frente a errores | set -euo pipefail, validación defensiva de argumentos ("${arg:-}") |
| Protección frente a código malicioso | Módulos aislados, ejecución controlada, sin eval dinámica ni sustitución insegura |
| Gestión de vulnerabilidades | Refactor modular, pruebas regresivas (tests/), control de versiones |
| Disponibilidad y recuperación | Ejecución paralela (parallelism: true), aislamiento por host, logs temporales (/tmp) |
| Seguridad en el ciclo de vida | Documentación bilingüe, changelogs trazables, validación por versión (expected/) |
2.3 Evidencias de cumplimiento
echolog()con control por nivel (TASK_VERBOSITY,SHFLOW_VERBOSITY)- Validación defensiva de argumentos:
if [[ -z "${2:-}" || "${2:-}" == -* ]]; then
echo " Falta argumento tras $1"
exit 1
fi- Vault cifrado:
secret=$(gpg --quiet --batch --yes --passphrase-file "$VAULT_KEY" -d "$VAULT_DIR/$key.gpg")- Captura de salida:
- name: Verificar usuario
module: run
args: { cmd: "whoami" }
capture_log: user_check
register: user_output- Trazabilidad por host:
Host: servidor1
Ejecutando tarea: "Verificar usuario"
Comando interpolado: whoami3. Cumplimiento RGPD
3.1 Rol del software
ShFlow no almacena datos personales directamente, pero puede operar sobre sistemas que los gestionan. Su rol es el de herramienta auxiliar, y debe ser evaluado en función del contexto de uso.
3.2 Medidas de protección de datos
- Cifrado de secretos: Vault con GPG y clave externa (
VAULT_KEY) - Interpolación segura: sin persistencia de datos sensibles
- Control de acceso: ejecución por usuario remoto (
REMOTE_USER) - Captura controlada:
capture_log,capture_err,register
3.3 Trazabilidad y rectificación
- Variables registradas accesibles por clave (
shflow_vars["user_output"]) - Logs por host y por tarea, exportables
- Posibilidad de anonimización en módulos personalizados
3.4 Evaluación de impacto (EIPD)
Plantilla de Evaluación de Impacto RGPD para ShFlow:
### Evaluación de Impacto sobre la Protección de Datos (EIPD)
**Sistema evaluado:** ShFlow
**Responsable del tratamiento:** [Nombre de la entidad usuaria]
**Finalidad del tratamiento:** Automatización de tareas sobre sistemas que pueden contener datos personales
**Tipo de datos tratados:** Credenciales, logs, configuraciones, variables interpoladas
**Medidas de seguridad aplicadas:**
- Vault cifrado con GPG
- Control de acceso por usuario remoto
- Trazabilidad por host y por tarea
- Captura controlada de errores y salida
**Riesgos identificados:**
- Ejecución sobre sistemas con datos personales sin cifrado
- Exposición de trazas si no se configura correctamente la verbosidad
**Medidas de mitigación:**
- Uso obligatorio de `--quiet` en entornos sensibles
- Revisión de logs antes de exportar
- Documentación de buenas prácticas
**Conclusión:** ShFlow puede usarse en entornos con datos personales siempre que se configure adecuadamente y se documente su uso.4. Documentación y anexos
docs/engine/verbosity.md: sistema de trazas por niveldocs/tests/README.md: lote de pruebas funcionalesvault/: ejemplo de cifrado y recuperaciónlogs/: ejemplos de trazas por host y por tareaexpected/: resultados esperados por versióndocs/compliance/ENS-RGPD.md: este documento
5. Recomendaciones finales
- Realizar auditoría externa ENS si se busca certificación oficial
- Incluir cláusulas RGPD en contratos si se comercializa o integra en SaaS
- Refuerzo de trazabilidad en módulos críticos (
run,vault,assert) - Validación continua con lote de pruebas tras cada release
- Documentar el ciclo de vida del software y sus cambios