Un ataque de fuerza bruta es un intento de descifrar una contraseña o nombre de usuario, de buscar una página web oculta o de descubrir la clave utilizada para cifrar un mensaje, que consiste en aplicar el método de prueba y error con la esperanza de dar con la combinación correcta finalmente. Se trata de antiguo método de ataque, pero sigue siendo eficaz y goza de popularidad entre los hackers.
En función de la longitud y complejidad de la contraseña, descifrarla puede llevar desde unos segundos hasta varios años. De hecho, apunta a que algunos hackers tienen los mismos sistemas como objetivo a diario durante meses e, incluso, años.
Para adivinar la contraseña de un usuario o sitio concreto es necesario mucho tiempo, por lo que los hackers han desarrollado herramientas que agilizan esta tarea.
Los diccionarios son la herramienta más básica. Algunos hackers utilizan diccionarios íntegros y amplían palabras con ayuda de caracteres especiales y números, o bien utilizan diccionarios especiales, aunque este método de ataque secuencial resulta engorroso.
En un ataque estándar, un hacker elige un destino y combina posibles contraseñas con el nombre de usuario seleccionado. A este tipo de ataques se les denomina ataques de diccionario.
Como su nombre implica, un ataque de fuerza bruta inverso consiste en invertir la estrategia de ataque, comenzando con una contraseña conocida (como las contraseñas filtradas disponibles en línea) y buscando millones de usuarios hasta que se encuentra una coincidencia.
También hay disponibles algunas herramientas automatizadas que pueden ayudar en los ataques de fuerza bruta, como Brutus, Medusa, THC Hydra, Ncrack, John The Ripper, Aircrack-ng y Rainbow. Muchos de ellos pueden descifrar una contraseña consistente en una única palabra que pertenezca a un diccionario en un segundo.
Estas herramientas se ejecutan contra muchos protocolos informáticos (por ejemplo FTP, MySQL, SMPT y Telnet) y permiten a los hackers piratear módems inalámbricos, identificar contraseñas débiles, descifrar contraseñas en almacenamientos cifrados, traducir palabras a leetspeak (por ejemplo, "don't'hackme'" se convierte en "d0n7H4cKm3"), probar todas las combinaciones de caracteres posibles y ejecutar ataques de diccionario.
Algunas herramientas analizan tablas Rainbow previamente calculadas en busca de las entradas y salidas de las funciones hash conocidas (el método de cifrado basado en algoritmos utilizado para traducir contraseñas en largas series de longitud fija compuestas de letras y números).
La combinación de la CPU y la unidad de procesamiento de gráficos (GPU) acelera la potencia informática, puesto que añade al procesamiento miles de núcleos informáticos de la GPU para que el sistema pueda gestionar varias tareas de forma simultánea. El procesamiento de GPU se utiliza para aplicaciones de análisis, ingeniería y otras aplicaciones que hacen un uso intensivo de la informática y puede descifrar las contraseñas unas 250 veces más rápido que una CPU independiente.
Con un ejemplo, una contraseña de seis caracteres que incluye números tiene aproximadamente 2000 millones de combinaciones posibles. Para descifrarla con una CPU potente que pruebe 30 contraseñas por segundo, sería necesario más de dos años. Añadiendo una sola tarjeta GPU potente, el mismo equipo puede probar 7100 contraseñas por segundo y descifrarla en 3,5 días.
Para dificultar el éxito de los ataques de fuerza bruta, los administradores del sistema deben asegurarse de que las contraseñas de los sistemas están cifradas con las tasas de cifrado más altas posibles, como el cifrado de 256 bits. Cuanto mayor sea el número de bits en el esquema de cifrado, más difícil será descifrar la contraseña.
Los administradores también deben añadir sal al hash , es decir, distribuir de forma aleatoria los hashes de las contraseñas mediante la adición de una cadena aleatoria de letras y números (sal) a la propia contraseña. Esta cadena deberá estar almacenada en una base de datos independiente y poder recuperarla y añadirla antes del hash. De esta manera, los usuarios con la misma contraseña tendrán hash diferentes. Además, los administradores pueden solicitar la autenticación en dos pasos e instalar un sistema de detección de intrusiones que detecte los ataques de fuerza bruta.
Al limitar el número de intentos también se reduce la susceptibilidad de los ataques de fuerza bruta. Si solo se permiten, por ejemplo, tres intentos para introducir la contraseña correcta antes de bloquear al usuario durante varios minutos, se pueden causar retrasos significativos, lo que haría que los hackers apuntaran hacia un blanco más fácil.
Si es posible, los usuarios deben elegir contraseñas de 10 caracteres que incluyan números o símbolos. De esta manera se crean 171.3 trillones (1.71 x 1020) de posibilidades. Con un procesador de GPU que pruebe 10,3 mil millones de hashes por segundo, descifrar la contraseña llevaría aproximadamente 526 años, aunque un superordenador podría descifrarla en varias semanas.
Aun así, no todos los sitios aceptan contraseñas tan largas, lo que implica que los usuarios deben elegir frases de contraseña complejas en lugar de palabras independientes. Es importante evitar las contraseñas más comunes y cambiarlas con frecuencia.
La instalación de un automatiza su gestión, lo que permite a los usuarios acceder a todas sus cuentas iniciando sesión previamente en el gestor de contraseñas. De esta manera, pueden crear contraseñas extremadamente largas y complejas para todos los sitios que se visiten, almacenarlas de forma segura y solo es necesario que recuerden la contraseña del gestor de contraseñas.
Para probar la fortaleza de la frase de contraseña, los usuarios pueden visitar https://password.kaspersky.com.