Sin MFA/2FA
Sin autenticación multifactor, una contraseña robada o adivinada es todo lo que se necesita para comprometer completamente una cuenta.
Cómo Funciona
MFA requiere un segundo factor (código TOTP, SMS, llave de hardware) además de la contraseña. Aunque un atacante tenga la contraseña de un usuario de una brecha, no puede iniciar sesión sin el segundo factor. Microsoft reportó en 2023 que MFA bloquea el 99.9% de los ataques de compromiso de cuentas.
// MAL: autenticación de un solo factor
async function login(email: string, password: string) {
const user = await verifyPassword(email, password);
if (!user) throw new Error('Credenciales inválidas');
return createSession(user); // un factor = comprometido si la contraseña se filtra
}// BIEN: requiere TOTP como segundo factor para cuentas sensibles
async function login(email: string, password: string, codigoTotp?: string) {
const user = await verifyPassword(email, password);
if (!user) throw new Error('Credenciales inválidas');
if (user.mfaEnabled) {
if (!codigoTotp || !verifyTOTP(user.totpSecret, codigoTotp))
throw new Error('Código MFA requerido');
}
return createSession(user);
}Ejemplo Real
El hackeo de Twitter de 2020 comprometió 130 cuentas de alto perfil (Obama, Musk, Biden). Las herramientas de administración interna de Twitter no tenían requisito de MFA. Una llamada de ingeniería social a un empleado dio a los atacantes control total.
Cómo Prevenirlo
- Ofrece 2FA basado en TOTP (Google Authenticator, Authy) — es gratis de implementar con speakeasy u otplib
- Requiere MFA para cuentas de admin y cuentas con acceso a datos sensibles
- Ofrece WebAuthn/passkeys como alternativa resistente a phishing al TOTP
- Muestra a los usuarios cuántas sesiones activas tienen y haz la configuración de 2FA fácil y visible en ajustes
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Sin Política de Contraseñas
mediumAceptar cualquier contraseña — incluyendo '123' o 'a' — hace las cuentas de usuarios trivialmente vulnerables a credential stuffing y ataques de fuerza bruta.
Sin Rate Limit en Login
mediumUn endpoint de login sin rate limiting puede ser forzado por fuerza bruta miles de veces por segundo hasta encontrar una contraseña válida.
Sin Verificación de Email
mediumPermitir cuentas con email no verificado deja que atacantes se registren con la dirección de email de otra persona, potencialmente bloqueándolos o suplantándolos.
Reset de Contraseña Sin Expiración
mediumLos links de reset de contraseña que nunca expiran permanecen válidos indefinidamente — un email antiguo en una brecha le da a los atacantes una ruta permanente para tomar control de la cuenta.