Ataque de Fuerza Bruta
Un ataque de fuerza bruta es un método de prueba y error utilizado para adivinar credenciales de inicio de sesión, claves de cifrado o páginas ocultas probando sistemáticamente todas las combinaciones posibles hasta encontrar la correcta. Los atacantes usan herramientas automatizadas para probar miles o millones de combinaciones de usuario/contraseña por minuto, explotando aplicaciones que carecen de limitación de velocidad o mecanismos de bloqueo de cuentas.
Cómo Funciona Ataque de Fuerza Bruta
Los ataques de fuerza bruta dependen del poder computacional en lugar de la inteligencia. El atacante automatiza intentos de inicio de sesión contra un objetivo, iterando a través de combinaciones hasta que la autenticación tiene éxito. Las variantes incluyen ataques de diccionario (usando contraseñas comunes), credential stuffing (usando credenciales filtradas) y fuerza bruta inversa (probando una contraseña contra muchos nombres de usuario).
Seleccionar el objetivo y recopilar información
El atacante identifica un endpoint de inicio de sesión (formulario web, SSH, API) y recopila nombres de usuario a través de OSINT, brechas de datos o enumeración. Muchas aplicaciones revelan nombres de usuario válidos mediante diferentes mensajes de error para usuarios válidos vs. inválidos.
Preparar listas de palabras para el ataque
Se compilan listas de contraseñas a partir de contraseñas comunes (rockyou.txt), bases de datos de credenciales filtradas, o se generan basándose en patrones específicos del objetivo (nombre de empresa + año, contraseñas estacionales como Verano2025!).
Automatizar los intentos de inicio de sesión
Herramientas como Hydra, Burp Suite Intruder o scripts personalizados envían solicitudes rápidas de inicio de sesión al objetivo. Los ataques avanzados distribuyen las solicitudes entre múltiples IPs e introducen retrasos aleatorios para evadir la limitación de velocidad básica.
Explotar las credenciales exitosas
Una vez encontradas las credenciales válidas, el atacante obtiene acceso a la cuenta, realiza movimiento lateral, escala privilegios o exfiltra datos. Las credenciales comprometidas frecuentemente se venden en mercados de la dark web.
Ejemplos Reales
Brecha de datos de Alibaba
Los atacantes usaron una base de datos de 99 millones de credenciales robadas para realizar fuerza bruta contra cuentas de Taobao. 20.6 millones de cuentas fueron comprometidas exitosamente durante varios meses antes de ser detectados.
Ataques de credenciales a Dunkin' Donuts
Los ataques de fuerza bruta y credential stuffing comprometieron las cuentas de recompensas DD Perks, permitiendo a los atacantes robar información de pago almacenada y puntos de recompensa de miles de clientes.
Campañas de password spray contra Microsoft 365
Atacantes patrocinados por estados realizaron password spraying a gran escala contra tenants de Microsoft 365 a nivel global, comprometiendo organizaciones en los sectores de gobierno, defensa y tecnología. La campaña usó proxies residenciales para evadir el bloqueo basado en IP.
Impacto y Evaluación de Riesgo
Los ataques de fuerza bruta exitosos conducen a acceso no autorizado a cuentas, robo de datos, fraude financiero y pueden servir como punto de entrada inicial para brechas mayores. A escala, los intentos de fuerza bruta consumen recursos del servidor y pueden causar denegación de servicio. Las cuentas comprometidas en entornos empresariales permiten el movimiento lateral y la escalación de privilegios. Las consecuencias regulatorias incluyen multas del GDPR por controles de acceso inadecuados.
Cómo Detectar Ataque de Fuerza Bruta
Monitorear los logs de autenticación en busca de altos volúmenes de intentos de inicio de sesión fallidos desde IPs individuales o contra cuentas individuales. Alertar sobre intentos de inicio de sesión desde ubicaciones geográficamente imposibles. Rastrear la relación de inicios de sesión fallidos a exitosos. Vigilar ataques distribuidos que muestran patrones a través de múltiples cuentas. Implementar activación de CAPTCHA después de fallos consecutivos. Usar análisis de WAF para identificar patrones de solicitudes automatizadas (temporización consistente, ausencia de huellas digitales del navegador).
Cómo Prevenir Ataque de Fuerza Bruta
Implementar limitación de velocidad progresiva en los endpoints de inicio de sesión (retroceso exponencial después de fallos). Desplegar políticas de bloqueo de cuentas con desbloqueo automático después de un período de enfriamiento. Requerir CAPTCHA después de 3-5 intentos fallidos. Aplicar políticas de contraseñas fuertes (mínimo 12 caracteres, requisitos de complejidad). Habilitar autenticación multifactor (MFA) — esto por sí solo neutraliza la mayoría de los ataques de fuerza bruta. Usar bcrypt/argon2 para el hashing de contraseñas para ralentizar los ataques offline. Desplegar un WAF con detección de bots para bloquear herramientas automatizadas de inicio de sesión.
Ejemplos de Código
from flask import Flask
from flask_limiter import Limiter
from flask_limiter.util import get_remote_address
app = Flask(__name__)
limiter = Limiter(get_remote_address, app=app)
@app.route('/login', methods=['POST'])
@limiter.limit('5 per minute') # Max 5 attempts per IP per minute
def login():
# Authentication logic here
pass
const MAX_ATTEMPTS = 5;
const LOCKOUT_MINUTES = [1, 5, 15, 60]; // Progressive lockout
async function handleLogin(username, password) {
const attempts = await getFailedAttempts(username);
if (attempts.count >= MAX_ATTEMPTS) {
const lockIndex = Math.min(attempts.lockouts, LOCKOUT_MINUTES.length - 1);
const lockUntil = attempts.lastFail + LOCKOUT_MINUTES[lockIndex] * 60000;
if (Date.now() < lockUntil) {
throw new Error('Account temporarily locked. Try again later.');
}
}
const valid = await verifyCredentials(username, password);
if (!valid) {
await incrementFailedAttempts(username);
throw new Error('Invalid credentials');
}
await resetFailedAttempts(username);
return createSession(username);
}
PowerWAF bloquea automáticamente Ataque de Fuerza Bruta antes de que llegue a tu servidor.
Implementa en minutos. Sin cambios de código. Plan gratuito disponible.
Los cupos del plan gratuito son limitados