Control de acceso roto
¿Qué es Control de acceso roto?
Control de acceso rotoClase de vulnerabilidades en la que las reglas de autorización faltan o se aplican de forma incorrecta, permitiendo a los usuarios realizar acciones o acceder a datos fuera de sus privilegios.
El control de acceso roto ascendió a la posición nº 1 del OWASP Top 10 (2021), apareciendo en el 94 % de las aplicaciones que OWASP evaluó y correspondiendo a 34 CWE, incluidas CWE-284, CWE-639 y CWE-862 (Autorización ausente). Se produce cuando una aplicación no impone de forma consistente quién puede hacer qué: comprobaciones ausentes del lado del servidor, confianza en URLs ocultas (seguridad por oscuridad), uso de la información de rol proporcionada por el cliente o exposición de referencias directas a objetos sin verificación de propiedad.
Cómo falla
La autorización debe reevaluarse en el servidor en cada petición. El fallo habitual es imponerla solo en la interfaz o en la pasarela y luego confiar en el identificador que envía el cliente. Un atacante simplemente repite la petición con un ID de objeto, un parámetro de rol o un método HTTP distinto.
flowchart TD
A[Petición: GET /api/invoice/1043] --> B{¿Autenticado?}
B -->|No| R[401 Rechazar]
B -->|Sí| C{¿Comprobación de propiedad / rol<br/>impuesta en el servidor?}
C -->|Ausente| L[Devuelve la factura 1043<br/>aunque pertenezca a otro inquilino]
C -->|Presente| D{¿El sujeto es propietario<br/>o tiene rol sobre el objeto?}
D -->|No| F[403 Prohibido]
D -->|Sí| G[200 Devuelve el recurso]
L --> X[Control de acceso roto:<br/>IDOR / divulgación de datos]Incidentes reales
La brecha de First American Financial (2019) expuso alrededor de 885 millones de documentos hipotecarios a través de un clásico IDOR: las URLs secuenciales no requerían autenticación. La brecha de Optus (2022, Australia) expuso unos 9,8 millones de registros de clientes a través de un endpoint de API sin autenticar. USPS Informed Visibility (2018) permitía a cualquier usuario autenticado consultar los datos de las cuentas de otros mediante una API sin protección.
Defensas
Usa middleware de autorización centralizado con denegación por defecto; impón la propiedad en cada acción del lado del servidor; prefiere identificadores opacos o con scope; registra los fallos de control de acceso y alerta ante anomalías; desactiva el listado de directorios; invalida el scope de JWT/sesión en el servidor; y cubre las rutas de autorización con pruebas de integración y DAST continuo en lugar de comprobaciones manuales puntuales.
● Ejemplos
- 01
Un usuario normal llama a /api/admin/users sin comprobaciones de rol y recibe las listas completas.
- 02
Cambiar el UUID de un documento en la URL para leer la factura de otro cliente.
● Preguntas frecuentes
¿Qué es Control de acceso roto?
Clase de vulnerabilidades en la que las reglas de autorización faltan o se aplican de forma incorrecta, permitiendo a los usuarios realizar acciones o acceder a datos fuera de sus privilegios. Pertenece a la categoría de Vulnerabilidades en ciberseguridad.
¿Qué significa Control de acceso roto?
Clase de vulnerabilidades en la que las reglas de autorización faltan o se aplican de forma incorrecta, permitiendo a los usuarios realizar acciones o acceder a datos fuera de sus privilegios.
¿Cómo defenderse de Control de acceso roto?
Las defensas contra Control de acceso roto combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para Control de acceso roto?
Nombres alternativos comunes: BAC, Bypass de autorización.