Backup de Base de Datos Expuesto
Archivos de dump de base de datos (.sql, .dump, .bak) commiteados al repositorio exponen el esquema completo y datos, incluyendo credenciales de usuarios y registros sensibles.
Cómo Funciona
Los desarrolladores a veces incluyen archivos de backup de base de datos en sus repositorios por conveniencia — datos seed, desarrollo local o referencia de migraciones. Estos archivos frecuentemente contienen esquemas de tablas completos, registros de usuarios con passwords hasheados o en texto plano, correos electronicos y datos criticos del negocio. Incluso si el repo es privado, estos archivos son accesibles para todos los colaboradores y persisten en el historial de git. Los atacantes que encuentran estos archivos obtienen conocimiento completo de la estructura de la base de datos y potencialmente todos los datos almacenados. Los repos publicos con archivos .sql son descubiertos rutinariamente por scanners automatizados.
# Files committed to repository:
# /backups/production-2024-01-15.sql
# /seed/users.dump
# /data/migrate.bak
git add backups/ seed/ data/
git commit -m 'add database files'# .gitignore
*.sql
*.dump
*.bak
*.sqlite
/backups/
/seed/*.sql
# Use migrations instead of raw dumps
npx prisma migrate dev --name initEjemplo Real
En 2020, investigadores descubrieron que miles de repositorios publicos de GitHub contenian dumps de base de datos con datos de produccion. Un archivo .sql expuesto de una empresa de salud contenia 150,000 registros de pacientes incluyendo numeros de seguro social y diagnosticos medicos.
Cómo Prevenirlo
- Agrega *.sql, *.dump, *.bak y *.sqlite al .gitignore global
- Usa herramientas de migracion (Prisma Migrate, Flyway) en vez de dumps SQL crudos
- Escanea repositorios con truffleHog o gitleaks para detectar backups commiteados
- Almacena backups en almacenamiento cloud encriptado con acceso restringido, nunca en repos
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Cadena de Conexion Expuesta
criticalURLs de conexion a base de datos con usuario y password hardcodeadas en el codigo fuente, dejando las credenciales accesibles a cualquiera con acceso al repositorio.
Queries Crudos en ORMs
highUsar metodos de SQL crudo como $queryRaw de Prisma o query() de Sequelize con interpolacion de strings bypasea la proteccion contra SQL injection del ORM.
Deserializacion Insegura
highDeserializar datos no confiables con librerias como node-serialize o yaml.load de Python permite a los atacantes ejecutar codigo arbitrario en el servidor.
Queries N+1 Explotables
lowLa expansion de relaciones sin limites en queries de ORM permite a los atacantes disparar miles de queries a la base de datos con un solo request de API, causando denegacion de servicio.