Brute Force: cuando las contraseñas se sirven en bandeja de plata

Aunque Apple nunca lo confirmó oficialmente, se asume que en 2014 el gigante tecnológico fue víctima de un pequeño, pero desastroso, fallo de seguridad en su servicio de almacenamiento iCloud. Hay razones para suponer que la falta de protección contra ataques de fuerza bruta permitió el robo de fotos privadas de varias celebridades, hecho que fue suficiente para que Apple, poco después de que se produjeran los ataques, pusiera en práctica medidas de protección. El mecanismo de seguridad consiste, desde entonces, en que los usuarios tienen un máximo de diez intentos para introducir su contraseña; de no ser así, la cuenta se bloquea y se notifica al titular de la cuenta. Antes de la filtración de las fotos, no había un límite para introducir contraseñas incorrectas, por lo que diseñar un ataque de fuerza bruta fue solo cuestión de tiempo.

¿Qué es exactamente brute force?

El término brute force se traduce como fuerza bruta y hace referencia a un método de resolución de problemas en los campos de la informática, la criptografía y la teoría de juegos. El método de fuerza bruta recibe este nombre porque está basado en probar todas las soluciones posibles o muchas de ellas, siendo conocido también como búsqueda exhaustiva y utilizado, especialmente, cuando no hay otros algoritmos disponibles. Esta técnica es utilizada por hackers para descifrar contraseñas y, de este modo, obtener acceso a datos externos. Para ello se utiliza un software con un algoritmo simple que realiza la sucesión de varias combinaciones de caracteres compuestos por dígitos, espacios y letras hasta una longitud máxima definida.

Cuanto más cortas sean las contraseñas, más rápido serán descubiertas por el método de fuerza bruta. Es por esto que, por lo general, siempre se recomienda utilizar contraseñas que incluyan diferentes caracteres y por lo que la mayoría de sistemas de cifrado de contraseñas utilizan claves muy largas. Debido a que los requerimientos técnicos para los ataques de fuerza bruta son cada vez más fáciles de conseguir, es posible realizar un mayor número de intentos por unidad de tiempo, lo que hace de un sistema de protección contra los llamados brute force attacks una necesidad.

¿Por qué no debes tomarte los ataques de fuerza bruta a la ligera?

Dada la naturaleza primitiva del método, se esperaría que se aplicaran medidas de seguridad apropiadas, desafortunadamente no siempre es así. Potencialmente, cualquier sistema conectado a Internet puede verse comprometido por estos ataques. Una vez un hacker ha pasado desapercibido y se ha enganchado a un sistema (algo que puede suceder más rápido de lo que se cree) descifrar sus contraseñas no será complicado. La mayoría de los sistemas operativos ejecutan archivos y bases de datos donde se almacenan los identificadores y las contraseñas de sus usuarios. Por ejemplo, en los sistemas Windows, las contraseñas se encuentran en el archivo .sam y en los sistemas unixoides en el archivo .psswd o .shadow.

Aunque las contraseñas en estos archivos no están en formato de texto, pues han sido codificadas previamente utilizando algoritmos criptográficos, el atacante puede acceder a los archivos si estos no están protegidos contra accesos no autorizados. Este puede crear una copia del archivo y ejecutar en ella diferentes ataques de fuerza bruta sin tener que mantener la conexión con el sistema. Actualmente, en principio, solo existen tres variables que facilitan que el atacante cumpla su cometido:

  • La duración de cada paso de la verificación
  • La longitud de la contraseña
  • La complejidad de la contraseña

La duración de cada paso de verificación, es decir, el tiempo utilizado para el intento con cada posible contraseña, depende de la potencia de cálculo que el atacante tenga a su disposición. A más potencia, mayor velocidad de sucesión de los intentos. La longitud y la complejidad determinan el número de posibles combinaciones de caracteres que pueden componer una contraseña y, por lo tanto, el número de opciones que deben ser utilizadas durante el ataque de fuerza bruta. A continuación, ejemplificamos cómo afecta la longitud y la complejidad de las contraseñas a la duración:

Número de caracteres 26 caracteres 72 caracteres
Tipo de caracteres Minúsculas Minúsculas y mayúsculas, caracteres especiales, números
Longitud máxima de la contraseña 8 caracteres 8 caracteres
Posibles combinaciones Aprox. 209 millones Aprox. 722 billones
Potencia de cálculo Aprox. 100 millones de funciones hash por segundo Aprox. 100 millones de funciones hash por segundo
Duración de la búsqueda exhaustiva Aprox. 35 minutos Aprox. 83 días

La tabla muestra que, con una contraseña simple y utilizando 26 caracteres, un PC moderno comprobaría todas las combinaciones posibles en tan solo 35 minutos. Si la secuencia se extiende a 72 caracteres, con la misma potencia de cálculo, el método brute force tardaría unos 83 días en completarse. Sin embargo, no conviene confiarse, pues métodos de cracking como el ataque de diccionario (combinaciones de palabras) o el uso de tablas arcoíris (secuencias contiguas de contraseñas) puede acelerar la duración de un ataque de fuerza bruta.

¿Cómo protegerse de estos ataques?

Independientemente de si un ataque de fuerza bruta tiene como objetivo el archivo central de contraseñas de un sistema o, como en el caso de iCloud, el atacante cuenta con el Apple ID de la víctima, los precedentes prueban la importancia de protegerse de este penetrante método para descifrar contraseñas. Por lo general, la mayoría de usuarios conoce los principios básicos para crear contraseñas seguras: se deben utilizar combinaciones compuestas por diferentes tipos de caracteres; en el mejor de los casos, se usan mayúsculas y minúsculas, así como también números y caracteres especiales. Y, por supuesto, cuanto más larga sea la contraseña, más difícil será hackearla.

El panorama para la creación de contraseñas para servicios online es un poco más complicado, pues está sujeto a las condiciones dispuestas por el proveedor. Los requisitos típicos son una longitud máxima de entre ocho y diez caracteres y, con frecuencia, un número limitado de números y letras, algo que sin las medidas de seguridad adicionales no resulta muy satisfactorio. En estos casos es necesario que estés al tanto de las precauciones y medidas de los operadores del proyecto web en lo que respecta a los ataques de fuerza bruta. Si eres el administrador de una página web con un mecanismo de inicio de sesión, toda esta responsabilidad recaerá sobre tus hombros. Para ello cuentas con dos posibles enfoques:

  • Garantizar la protección del mecanismo de contraseñas
  • Establecer un método de autenticación multifactor

Proteger el mecanismo de contraseñas debería ser un componente estándar en las máscaras de acceso, sin embargo, como lo demuestra el ya mencionado escándalo de iCloud, este no siempre es el caso. Este proceso de protección hace referencia a implementar estrategias que dificulten el trabajo al software de brute force. Así, en caso de que el usuario o atacante introduzca una contraseña incorrecta, la opción para introducir otra contraseña aparecerá solo después de un corto periodo de tiempo. También es posible aumentar el lapso de tiempo de espera a medida que aumentan los intentos fallidos. Para ir un paso más allá, como lo hizo Apple después del ataque, es posible bloquear la cuenta del usuario completamente después de un cierto número de intentos de registro.

A menudo, los métodos de autenticación multifactor son ofrecidos de manera opcional por muchos proveedores. Con estos, estás dificultando un poco más el proceso de registro, pues además de la contraseña, es necesario que el usuario introduzca un componente adicional. Este componente puede ser la respuesta a una pregunta secreta, un PIN o el llamado captcha. Estos últimos son pequeñas pruebas que permitirán a la autoridad notificante determinar si se trata de un usuario humano o, como es típico en los ataques de fuerza bruta, de un robot.

Unir fuerzas para combatir a la fuerza bruta

Además de las medidas anteriormente mencionadas, existen algunos trucos adicionales para prevenir ataques de fuerza bruta. Por lo general, todo software de brute force trabaja con diferentes patrones de identificación, lo que se convierte en un obstáculo, por ejemplo, cuando los mensajes de error estándar no son enviados de vuelta al navegador, sino desviados a un sistema externo (p. ej., a otra página web). Otro factor que puede representar problemas a algunas herramientas de hacking es utilizar diferentes nombres para los campos y textos que aparecen después de un intento fallido de inicio de sesión. En cualquier caso, si quieres aumentar la seguridad de tu web y de tus contraseñas siempre es recomendable implementar, a la vez, varias medidas de protección contra ataques de fuerza bruta.

Para algunas plataformas y aplicaciones existen plugins o extensiones específicas para prevenir ataques de fuerza bruta. El add on Jetpack, que, en principio, facilita la administración de páginas web en WordPress, tiene integrado, por ejemplo, un módulo para prevenir ataques peligrosos que se basa en una lista de direcciones IP bloqueadas. Las direcciones IP recogidas en esta lista están relacionadas de alguna forma con todos los ataques de fuerza bruta realizados a webs de WordPress.