Modo ECB
Usar modo ECB (Electronic Codebook) para encriptacion produce bloques de texto cifrado identicos para bloques de texto plano identicos, revelando patrones en los datos encriptados.
Cómo Funciona
El modo ECB encripta cada bloque de texto plano independientemente usando la misma llave. Esto significa que bloques de texto plano identicos siempre producen bloques de texto cifrado identicos. Un atacante analizando el texto cifrado puede detectar patrones repetidos, determinar que bloques son iguales y potencialmente reconstruir la estructura de los datos originales. La demostracion clasica es el pinguino ECB — encriptar una imagen con modo ECB preserva el contorno visual porque bloques de color identicos producen bloques cifrados identicos. En la practica, ECB filtra informacion sobre campos encriptados de base de datos (valores duplicados producen texto cifrado duplicado), tokens de API encriptados (prefijos comunes son visibles) y cualquier dato estructurado donde los bloques se repiten.
const crypto = require('crypto');
function encrypt(text, key) {
const cipher = crypto.createCipheriv('aes-256-ecb', key, null);
let encrypted = cipher.update(text, 'utf8', 'hex');
encrypted += cipher.final('hex');
return encrypted;
}const crypto = require('crypto');
function encrypt(text, key) {
const iv = crypto.randomBytes(16);
const cipher = crypto.createCipheriv('aes-256-gcm', key, iv);
let encrypted = cipher.update(text, 'utf8', 'hex');
encrypted += cipher.final('hex');
const tag = cipher.getAuthTag().toString('hex');
return iv.toString('hex') + ':' + encrypted + ':' + tag;
}Ejemplo Real
La brecha de Adobe en 2013 expuso 153 millones de passwords de usuarios encriptados con 3DES en modo ECB. Como ECB produce texto cifrado identico para texto plano identico, los investigadores podian identificar los passwords mas comunes contando valores duplicados de texto cifrado. Las pistas de password (almacenadas en texto plano) hacian trivial confirmar las suposiciones.
Cómo Prevenirlo
- Nunca uses modo ECB — siempre usa GCM, CBC con HMAC o modo CTR
- Usa AES-256-GCM que provee tanto encriptacion como autenticacion
- Genera un IV aleatorio unico para cada operacion de encriptacion
- Usa librerias de encriptacion bien probadas en vez de implementar modos de cifrado manualmente
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
IV/Nonce Estatico
highUsar un Vector de Inicializacion (IV) o nonce hardcodeado o constante para encriptacion anula el proposito del IV y permite a los atacantes detectar patrones y desencriptar datos.
Tamano de Llave Debil
mediumUsar llaves criptograficas mas cortas que los minimos recomendados (RSA menor a 2048 bits, AES menor a 128 bits) hace la encriptacion vulnerable a ataques de fuerza bruta con hardware moderno.
Validacion de Certificado Deshabilitada
criticalDeshabilitar la validacion de certificados TLS con NODE_TLS_REJECT_UNAUTHORIZED=0 o rejectUnauthorized: false permite ataques man-in-the-middle en todas las conexiones HTTPS.
PRNG Debil para Seguridad
highUsar Math.random() o Date.now() para generar tokens, IDs de sesion o codigos de reset produce valores predecibles que los atacantes pueden adivinar o reproducir.