Skip to main content
Critical

Toma de Control de Cuentas (ATO)

CategoríaAutenticación y AccesoOWASPA07:2021 – Fallos de Identificación y AutenticaciónPrimera aparición2010Tiempo de lectura11 minVerificado2026-03-11
DEFINICIÓN

La Toma de Control de Cuentas (ATO) es un ataque en el que un actor malicioso obtiene acceso no autorizado a la cuenta de un usuario explotando credenciales robadas, autenticación débil, vulnerabilidades de sesión o ingeniería social. Una vez en control, el atacante puede robar datos, cometer fraude financiero, lanzar ataques adicionales o vender la cuenta comprometida en mercados clandestinos.

Cómo Funciona Toma de Control de Cuentas (ATO)

La toma de control de cuentas no es una técnica única sino un resultado logrado a través de múltiples vectores de ataque. El hilo común es que un atacante termina controlando una cuenta que pertenece a otra persona. Los ataques ATO han evolucionado desde la simple adivinación de contraseñas hasta campañas sofisticadas de múltiples etapas que combinan bases de datos de credenciales, infraestructura de phishing, ingeniería social y herramientas automatizadas. La economía es convincente: una cuenta comprometida con datos financieros se vende por $10-$150 en mercados de la dark web, mientras que el ataque en sí puede automatizarse completamente a escala.

1

Adquirir credenciales o vectores de acceso

El atacante obtiene credenciales a través de uno o más métodos: credential stuffing (probar pares de usuario/contraseña filtrados de brechas de datos), phishing (crear páginas de inicio de sesión falsas convincentes para capturar credenciales en tiempo real), ingeniería social (manipular al personal de soporte o mesa de ayuda para restablecer credenciales), malware (keyloggers, info-stealers como RedLine o Raccoon que exfiltran contraseñas guardadas y cookies de sesión), SIM swapping (convencer a operadores de telecomunicaciones de transferir el número de teléfono de la víctima para evadir MFA basada en SMS), o comprando credenciales verificadas en mercados clandestinos.

2

Evadir la autenticación y MFA

Si el objetivo tiene autenticación multifactor, el atacante emplea técnicas de evasión: proxies de phishing en tiempo real (Evilginx2, Modlishka) que interceptan tokens de MFA mientras se ingresan, ataques de fatiga de MFA (bombardeando al usuario con notificaciones push hasta que apruebe una), SIM swapping para MFA basada en SMS, ingeniería social al personal de soporte para deshabilitar MFA, explotación de brechas en la inscripción de MFA (cuentas creadas antes de que MFA fuera obligatoria), o robo de cookies de sesión posteriores a la autenticación para evadir MFA por completo.

3

Establecer persistencia

Una vez dentro, el atacante actúa rápidamente para mantener el acceso: cambia la dirección de correo electrónico y el número de teléfono de la cuenta a los suyos, agrega su propio dispositivo MFA, genera claves API o contraseñas de aplicación, configura reglas de reenvío (para cuentas de correo), establece autorizaciones de aplicaciones OAuth, o crea cuentas secundarias con privilegios elevados. Estos cambios aseguran el acceso continuo incluso si se detecta el compromiso original.

4

Monetizar la cuenta comprometida

El atacante extrae valor dependiendo del tipo de cuenta: las cuentas de comercio electrónico se usan para compras fraudulentas o lavado de tarjetas de regalo; las cuentas bancarias para transferencias o solicitudes de préstamos; las cuentas de correo electrónico para compromiso de correo empresarial (BEC) dirigido a los contactos de la víctima; las cuentas de redes sociales para difundir estafas o vender la cuenta; las cuentas empresariales para exfiltración de datos, despliegue de ransomware o movimiento lateral hacia objetivos de mayor valor.

5

Cubrir rastros y escalar

Los atacantes sofisticados eliminan alertas de seguridad, marcan correos de notificación como leídos, ajustan configuraciones de notificaciones y modifican registros de auditoría si es posible. La información de contacto de la cuenta comprometida, los patrones de IP y el historial de sesión se sanitizan para retrasar la detección. Mientras tanto, la información recopilada de la cuenta comprometida (contactos, conocimiento interno, credenciales adicionales) alimenta ataques contra objetivos adicionales.

Ejemplos Reales

2020

Toma de control de cuentas VIP de Twitter

Los atacantes usaron ingeniería social y spear-phishing telefónico contra empleados de Twitter para acceder a herramientas de administración internas, tomando control de 130 cuentas de alto perfil incluyendo Barack Obama, Joe Biden, Elon Musk, Bill Gates y Apple. Los atacantes publicaron estafas de criptomonedas, recaudando más de $120,000 en Bitcoin en horas. El incidente expuso debilidades en los controles de acceso internos y la autenticación de empleados, resultando en investigaciones de la SEC y daño reputacional significativo para Twitter.

2021

Toma de control de cuentas de EA Games vía Slack

Los atacantes compraron cookies robadas de la cuenta de Slack de un empleado de EA en un mercado de la dark web por $10. Usando el acceso a Slack, realizaron ingeniería social al soporte de TI de EA para que les otorgara un token de autenticación multifactor, y luego accedieron a la red interna de EA. Robaron 780 GB de código fuente incluyendo el motor del juego FIFA 21 y el motor Frostbite. La brecha demostró cómo una sola toma de control de cuenta puede escalar en un robo masivo de propiedad intelectual.

2023

Compromiso del sistema de soporte de Okta

Los atacantes usaron credenciales robadas para acceder al sistema de gestión de casos de soporte al cliente de Okta. Dado que los clientes rutinariamente suben archivos HAR (que pueden contener tokens de sesión) a los casos de soporte, los atacantes usaron estos tokens para secuestrar sesiones de clientes de Okta incluyendo Cloudflare, 1Password y BeyondTrust. El impacto en cascada mostró cómo un ATO contra un proveedor de identidad puede comprometer miles de organizaciones posteriores.

Impacto y Evaluación de Riesgo

La toma de control de cuentas es uno de los ataques cibernéticos más destructivos financieramente, con pérdidas globales que superan los $20 mil millones anuales. Para individuos, el ATO conduce a fraude financiero, robo de identidad, daño reputacional y angustia emocional. Para empresas, el impacto incluye pérdidas financieras directas (transacciones fraudulentas, contracargos), abandono de clientes (hasta el 38% de las víctimas de ATO abandonan el servicio), sanciones regulatorias bajo GDPR, CCPA y PCI DSS, y costos operativos de respuesta a incidentes y recuperación de cuentas. El ATO empresarial tiene un impacto aún mayor: una sola cuenta de empleado comprometida puede llevar a brechas de datos, despliegue de ransomware, ataques a la cadena de suministro y esquemas de compromiso de correo empresarial que cuestan a las organizaciones millones. El Informe de Delitos en Internet 2024 del FBI identificó el BEC (un efecto posterior del ATO) como la forma más costosa de ciberdelincuencia, con más de $2.9 mil millones en pérdidas reportadas.

Cómo Detectar Toma de Control de Cuentas (ATO)

Implementar detección de ATO multicapa combinando señales en tiempo real y analítica de comportamiento. Monitorear: intentos de inicio de sesión desde nuevos dispositivos, ubicaciones geográficas inusuales o direcciones IP asociadas con VPNs/proxies/Tor; múltiples intentos de inicio de sesión fallidos seguidos de uno exitoso; cambios en la configuración de la cuenta (correo, teléfono, MFA) inmediatamente después de iniciar sesión desde un nuevo dispositivo; viaje imposible (inicios de sesión desde ubicaciones distantes en plazos físicamente imposibles); anomalías de comportamiento como patrones de navegación diferentes, velocidad de escritura, movimiento del ratón o patrones de transacción comparados con la línea base del usuario legítimo. Desplegar huellas digitales de dispositivos para rastrear dispositivos confiables y marcar los no reconocidos. Monitorear la exposición de credenciales en bases de datos de brechas usando servicios como HaveIBeenPwned. Alertar sobre acciones masivas que indiquen explotación automatizada: compra rápida de tarjetas de regalo, envío masivo de mensajes o exportación masiva de datos.

Cómo Prevenir Toma de Control de Cuentas (ATO)

Requerir autenticación multifactor para todas las cuentas, preferiblemente métodos resistentes al phishing (llaves de hardware FIDO2/WebAuthn, passkeys). Implementar autenticación adaptativa que aumente los requisitos de seguridad según señales de riesgo — dispositivos desconocidos, ubicaciones inusuales u operaciones de alto valor deben activar autenticación adicional. Verificar contraseñas contra listas de brechas conocidas durante el registro y la rotación periódica. Desplegar detección de bots en endpoints de inicio de sesión y registro para bloquear pruebas automatizadas de credenciales. Implementar procedimientos de recuperación de cuentas que verifiquen la identidad a través de múltiples canales e incluyan períodos de espera antes de que los cambios sensibles surtan efecto. Usar gestión de sesiones basada en riesgo: tiempos de vida de sesión más cortos para cuentas de alto privilegio, re-autenticación para operaciones sensibles y vinculación de sesión a características del dispositivo. Educar a los usuarios sobre phishing, reutilización de contraseñas e ingeniería social. Para entornos empresariales, implementar gestión de acceso privilegiado (PAM), aprovisionamiento de acceso justo a tiempo y monitoreo continuo de cuentas administrativas.

Ejemplos de Código

ATO detection: Impossible travel analysis
from math import radians, cos, sin, asin, sqrt
from datetime import datetime

def haversine(lat1, lon1, lat2, lon2):
"""Calculate distance between two coordinates in km"""
lat1, lon1, lat2, lon2 = map(radians, [lat1, lon1, lat2, lon2])
dlat = lat2 - lat1
dlon = lon2 - lon1
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
return 2 * 6371 * asin(sqrt(a))

def detect_impossible_travel(user_id, current_login):
"""Flag logins that are geographically impossible"""
MAX_TRAVEL_SPEED_KMH = 1200 # Fastest commercial flight

last_login = get_last_login(user_id)
if not last_login:
return False

distance_km = haversine(
last_login['lat'], last_login['lon'],
current_login['lat'], current_login['lon']
)

time_diff_hours = (
current_login['timestamp'] - last_login['timestamp']
).total_seconds() / 3600

if time_diff_hours == 0:
return distance_km > 50 # Same second, different city

required_speed = distance_km / time_diff_hours

if required_speed > MAX_TRAVEL_SPEED_KMH:
log_security_event(
'impossible_travel',
user_id=user_id,
distance_km=round(distance_km),
time_hours=round(time_diff_hours, 2),
speed_kmh=round(required_speed)
)
return True

return False
ATO prevention: Adaptive authentication
from enum import IntEnum

class RiskLevel(IntEnum):
LOW = 0
MEDIUM = 1
HIGH = 2
CRITICAL = 3

def calculate_login_risk(user_id, request):
"""Score login risk based on multiple signals"""
risk_score = 0
signals = []

# Device recognition
device_fp = compute_device_fingerprint(request)
if not is_known_device(user_id, device_fp):
risk_score += 2
signals.append('new_device')

# Geographic analysis
geo = geolocate(request.remote_addr)
if not is_usual_location(user_id, geo):
risk_score += 2
signals.append('unusual_location')

if detect_impossible_travel(user_id, geo):
risk_score += 4
signals.append('impossible_travel')

# IP reputation
if is_vpn_or_proxy(request.remote_addr):
risk_score += 1
signals.append('vpn_proxy')

if is_tor_exit_node(request.remote_addr):
risk_score += 3
signals.append('tor_exit')

# Credential exposure
if is_credential_exposed(user_id):
risk_score += 3
signals.append('exposed_credentials')

# Behavioral signals
if is_outside_normal_hours(user_id):
risk_score += 1
signals.append('unusual_time')

# Determine risk level and required authentication
if risk_score >= 7:
level = RiskLevel.CRITICAL
action = 'block_and_notify' # Deny + alert user
elif risk_score >= 5:
level = RiskLevel.HIGH
action = 'step_up_auth' # Require additional verification
elif risk_score >= 3:
level = RiskLevel.MEDIUM
action = 'require_mfa' # Force MFA even if not mandatory
else:
level = RiskLevel.LOW
action = 'allow' # Normal authentication

return {
'risk_level': level,
'risk_score': risk_score,
'action': action,
'signals': signals
}
Post-login monitoring: Detect account changes
// Monitor critical account changes that indicate ATO persistence
const SENSITIVE_ACTIONS = [
'email_change',
'phone_change',
'mfa_disable',
'mfa_device_add',
'password_change',
'api_key_create',
'oauth_app_authorize',
'recovery_email_change',
];

async function monitorAccountChanges(userId, action, request) {
if (!SENSITIVE_ACTIONS.includes(action)) return;

const session = await getSession(request);
const loginAge = Date.now() - session.loginTime;
const isNewDevice = !session.knownDevice;

// Flag: sensitive changes shortly after login from new device
if (isNewDevice && loginAge < 30 * 60 * 1000) { // 30 minutes
await createSecurityAlert({
type: 'potential_ato',
severity: 'high',
userId,
action,
loginAge: Math.round(loginAge / 1000),
ip: request.ip,
device: session.deviceFingerprint,
message: `Sensitive action '${action}' performed ${Math.round(loginAge/60000)}min after login from new device`,
});

// Require re-authentication for critical changes
if (['email_change', 'mfa_disable', 'password_change'].includes(action)) {
await notifyUser(userId, {
channel: 'original_email', // Use ORIGINAL contact info
message: `A ${action} was requested from a new device. ` +
`If this wasn't you, secure your account immediately.`,
});
}
}
}

Fortalece tus defensas contra Toma de Control de Cuentas (ATO) con PowerWAF.

Seguridad integral para aplicaciones web con WAF, rate limiting y monitoreo de amenazas en tiempo real.

Los cupos del plan gratuito son limitados

Preguntas Frecuentes

La toma de control de cuentas compromete una cuenta existente robando credenciales o sesiones — el atacante usa la cuenta de la víctima como si fuera ella. El robo de identidad crea nuevas cuentas o servicios usando la información personal de la víctima (SSN, fecha de nacimiento, dirección). El ATO es más rápido y dirigido; el robo de identidad es más amplio y frecuentemente se descubre más tarde. Ambos pueden ocurrir juntos — los datos robados a través de ATO (información personal, datos financieros) pueden alimentar el robo de identidad posterior.
La MFA estándar (códigos SMS, aplicaciones de autenticación, notificaciones push) bloquea aproximadamente el 99.9% de los ataques automatizados de credenciales. Sin embargo, los atacantes dirigidos pueden evadir estos métodos a través de proxies de phishing en tiempo real, fatiga de MFA, SIM swapping e ingeniería social. La MFA resistente al phishing (llaves de hardware FIDO2, passkeys) es significativamente más fuerte porque la autenticación está vinculada al dominio del sitio web legítimo, haciendo ineficaces los ataques de proxy de phishing. Para cuentas de alto valor, se recomienda encarecidamente la MFA resistente al phishing.
Las investigaciones muestran que los atacantes actúan en minutos a horas después de obtener acceso. En cuentas financieras, las transacciones fraudulentas típicamente ocurren dentro de los 30 minutos. Las configuraciones de la cuenta (correo, teléfono, MFA) se cambian dentro de la primera hora para establecer persistencia. En entornos empresariales, los atacantes pueden moverse más lentamente — realizando reconocimiento durante días o semanas antes de la exfiltración de datos — para evitar activar alertas de comportamiento.
Un WAF puede ayudar a prevenir algunos vectores de ATO — específicamente credential stuffing, ataques de fuerza bruta y abuso automatizado de inicio de sesión — detectando patrones de solicitudes automatizadas e imponiendo límites de tasa. Sin embargo, el ATO es fundamentalmente más amplio que el análisis de tráfico web. La ingeniería social, el SIM swapping, el malware y los proxies de phishing en tiempo real operan fuera de la visibilidad del WAF. La prevención efectiva del ATO requiere combinar la protección del WAF con MFA, analítica de comportamiento del usuario y seguridad de identidad integral.
Contacte inmediatamente al proveedor del servicio para reportar el compromiso y congelar la cuenta. Cambie las contraseñas de la cuenta comprometida y de cualquier otra cuenta que use la misma contraseña. Active MFA en todas las cuentas si no está ya activa. Revise la actividad de la cuenta, configuraciones y aplicaciones conectadas en busca de cambios no autorizados. Verifique reglas de reenvío, autorizaciones OAuth y claves API que el atacante pueda haber creado. Monitoree estados financieros e informes crediticios en busca de actividad fraudulenta. Presente denuncias ante las autoridades pertinentes (FTC, IC3) si hay fraude financiero involucrado.