Ataque de fuerza bruta (brute force attack)
En los ataques contra credenciales, la fuerza bruta consiste en probar valores hasta que uno funciona. También se le llama ataque de fuerza bruta, ataque fuerza bruta o ataque por fuerza bruta, y son el mismo concepto. La búsqueda exhaustiva es la definición de manual y casi nadie la practica: los ataques reales tiran de diccionarios, reglas de mutación y material filtrado, así que la pregunta práctica nunca es el tamaño del espacio de claves, sino a qué velocidad se puede comprobar cada intento.
Cómo funciona un ataque de fuerza bruta
Un ataque de fuerza bruta tiene dos escenarios, y sus economías no se parecen en nada. En línea, contra un servicio vivo, cada intento es una petición que se puede contar, retrasar, bloquear o registrar, así que al atacante lo limita el objetivo y le conviene no hacer ruido. Fuera de línea, contra hashes ya recuperados, no hay nada que se entere ni nada que lo frene salvo el algoritmo que produjo el hash, así que el ritmo pasa a ser una propiedad del hardware y de una decisión de diseño que el defensor tomó mucho antes.
Esa decisión es la partida entera. Un hash de propósito general es rápido por diseño, que es justo la propiedad equivocada para una contraseña, y una función de derivación de clave moderna es deliberadamente lenta y exigente en memoria, para que cada intento cueste recursos de verdad. Un salt impide que una sola tirada de cracking cubra muchas cuentas a la vez; no ralentiza nada.
Fuerza bruta contra contraseñas: qué sale mal
Los consejos se siguen escribiendo para el modelo exhaustivo. Los requisitos de complejidad que exigen una mayúscula, un dígito y un símbolo producen transformaciones previsibles de una palabra de diccionario, y los motores de reglas de las herramientas de cracking modelan esas transformaciones directamente, así que la norma que pretendía ampliar el espacio de búsqueda acaba estrechándolo. Lo que cambia el resultado es la longitud y lo impredecible; las clases de caracteres, en general, no.
El segundo problema es defender en el sitio equivocado. Bloquear la cuenta a los cinco intentos evita que se machaque una cuenta concreta y no hace nada contra el password spraying, que manda una sola contraseña a diez mil cuentas y no llega a cinco intentos en ninguna, ni contra el credential stuffing, que llega con la contraseña correcta al primer intento. Un bloqueo agresivo se convierte además en una denegación de servicio que un atacante puede provocar a propósito.
Y tercero: el caso fuera de línea se decide mucho antes de que empiece el ataque. Una vez que alguien tiene el hash, ninguna política se aplica. Solo cuentan el algoritmo, sus parámetros y la longitud de la contraseña.
Dónde aparece la fuerza bruta en una auditoría
En un test interno no estimamos la fortaleza de las contraseñas: la medimos. Con el acuerdo del cliente se recuperan los hashes, se procesan en condiciones controladas y se informa del porcentaje recuperado, de los patrones que aparecieron y de cuántos correspondían a cuentas privilegiadas. Las contraseñas recuperadas no aparecen nunca en el cuerpo del informe. El hallazgo se redacta contra la elección de algoritmo de hash y contra las cuentas, y el número más útil suele ser cuántas cuentas privilegiadas cayeron en la primera hora. Esto forma parte de cómo se mide de verdad la fortaleza de las contraseñas en un test interno.