Este artículo está basado en un texto escrito por Alex T. Weinert para techcommunity.microsoft.com.  

https://techcommunity.microsoft.com/t5/Azure-Active-Directory-Identity/Your-Pa-word-doesn-t-matter/ba-p/731984

 
Introducción y contexto

Cuando se habla sobre qué métodos aplicar a la hora de establecer medidas seguridad en equipos informáticos domésticos y en entornos profesionales, suele decirse que el punto de partida debe ser el uso de contraseñas largas, complejas y aleatorias. Es lo primero a tener en cuenta antes de establecer las reglas del cortafuegos o asignar credenciales a los usuarios.

Se recomienda que las contraseñas sean distintas para cada servicio en el cual se realice un registro, que no hagan referencia a ningún dato personal y que deriven de la mezcla de números, letras (mayúsculas y minúsculas) y, si es posible, caracteres especiales. 

Resulta lógico, teniendo en cuenta que cualquier persona (ajena al mundo del hacking o no) que conozca el correo electrónico y algún que otro dato de su objetivo, podría acceder a un servicio en el cual hayamos creado una cuenta previamente. Todo ello sin la necesidad de conocimientos, software o hardware específico.

Un atacante que desee suplantar la identidad de alguien, debería empezar por los métodos más simples y asequibles. Solo hará cosas realmente extravagantes y creativas cuando no haya una forma más fácil de obtener los resultados deseados y se hará cuando el objetivo sea lo suficientemente jugoso como para justificar el esfuerzo adicional.

En este artículo se explican las razones por las cuales esas medidas son útiles pero no efectivas al 100%, ya que existen numerosos ataques en los que resulta indiferente el tipo de contraseña que haya sido elegido. 

Método básico para la obtención de contraseñas:

1. Acceder a la plataforma en la cual suplantar a nuestro objetivo. 

2. Introducir el correo electrónico de la víctima.

3. En el campo "password", probar contraseñas de uso habitual (escritas literalmente, invirtiendo el orden de los caracteres y mezclándolas de todas las formas posibles) hasta dar con la buena.

Por contraseñas de uso habitual se entienden aquellas claves insulsas, manidas y faltas de originalidad.

Ej: 123456, el nombre de pila escrito al revés, la fecha de nacimiento, una mezcla de las anteriores...

A no ser que el objetivo se haya esforzado un poco al crear su contraseña (o que la plataforma a la que se pretende acceder limite el número de intentos de login), con un poco de suerte y una pequeña inversión de tiempo, es posible obtener el preciado password.

4. Una vez realizado el proceso de login en el servicio en cuestión, se debe recopilar toda la información posible para determinar en qué otras plataformas, el objetivo podría tener una cuenta.

Si se ha accedido al correo electrónico de la víctima, existe la posibilidad de ver los correos de activación de n plataformas, donde figurarán las claves temporales que dichos sitios generan de manera automática al realizar el registro. Si esas claves no han sido sustituidas por el objetivo, podrán ser utilizadas sin problema. 

5. Utilizar el password o passwords obtenidos en el resto de plataformas en las cuales el objetivo tiene una cuenta de usuario, ya que hay muchas posibilidades de que el objetivo utilice siempre la misma clave o disponga de dos o tres que usa en todos los sitios a los que accede.

Otras formas de "romper" las contraseñas:

Credential Stuffing

También conocido como breach replay o list cleaning. Es un método muy usado debido a su simpleza. Consiste en comprar credenciales recopiladas de sitios que han sido violados para usarlas posteriormente en múltiples plataformas. Como se indicó anteriormente, es muy habitual la re-utilización de contraseñas para diversas aplicaciones. 

Suplantación de identidad

Este es el famoso ataque "Man-in-the-middle", también llamado credential intercepction. Está muy extendido porque se trata de un procedimiento que no requiere de conocimientos de hacking. Se basa en mandar correos electrónicos prometiendo al receptor algún tipo de beneficio o informando de una irregularidad de cualquier tipo, instándole a iniciar sesión en una web falsa. El objetivo siente curiosidad o miedo infundado por el contenido del email y acaba desvelando sus datos. 

Registro de pulsaciones de teclas / Keystroke logging

Es un método menos habitual que los dos anteriores. Un malware registra y transmite los nombres de usuario y las contraseñas ingresadas, aparte de todo aquello que es tecleado. Lo malo de este método es que hay que estudiar la información recopilada para poder determinar qué conjunto de caracteres podrían pertenecer a una contraseña. 

Para lograr hacerlo funcionar, es necesario transmitir un malware haciendo que el objetivo haga click en un enlace que le enviemos. 

Descubrimiento local / Local discovery

El dumpster diving, reconocimiento físico o escaneo de red, consiste en localizar post-its, cuadernos, libretas o cualquier papel en el cual hayan sido apuntadas las claves del objetivo. Es un método poco utilizado, pese a ser muy eficaz. Se puede usar información aparentemente inocente como una lista de teléfonos, un calendario o un organigrama para ayudar a un atacante en sus labores de ingeniería social. 

Extorsión / Blackmail, insider threat

Tras obtener información comprometida de la víctima, (fotos embarazosas, el rastro de una infidelidad, pruebas de una evasión de impuestos...), tan sólo hay que hacérselo saber y pedir que nos de sus credenciales a cambio de  no revelar esos datos.

Spray de constraseña / Password spray

Representa el 16% de los ataques. Supone cientos de miles de ataques al día y millones de intentos. 

Consiste en probar de forma desatendida, mediante software, la misma contraseña en un gran número de nombres de usuario. Conviene cambiar la cadencia entre intentos y distribuirlos a través de distintas direcciones IP para evitar la detección. 

La mayoría de los ataques requieren de unas 10 contraseñas, aunque el número puede oscilar entre 2 y 50. Lo malo de este método es que es detectable y el servidor de inicio de sesión podría detener el proceso. Por eso, los atacantes necesitan maximizar su impacto antes de ser detectados, por lo que utilizan histogramas de fugas existentes y los usan para generar sus ataques. 

Las principales contraseñas utilizadas en estos ataques son: 

123456, password, 000000, 1qaz2wsx, a123456, abc123, abcd1234, 1234qwer, qwe123123qwe.

Se suelen utilizar a menudo porque son simples de teclear y recordar. La contraseña puede ser comprometida solo si está incluida en la lista que el atacante está utilizando.

Fuerza bruta /  Brute Force

Consiste en crackear bases de datos.  Resulta sencillo si la organización objetivo tienen una defensa poco estricta, pero será complicado si se ha defendido apropiadamente. La dificultad también puede variar en función a la encriptación empleada, ya que se busca crackear el hash de los passwords.  

De todos los casos anteriores, el uso de una buena contraseña cobrará sentido únicamente en los métodos password spray y brute force. Para el resto, es indiferente que se hayan usado contraseñas seguras o no. 

Extracción y crackeado de la base de datos

Por último se encuentran las personas que realmente crean contraseñas complicadas. ¿Qué pasa si se da el caso de que han extraído la base de datos? Se trata de un ataque popular y que da miedo. No se disponen de datos fiables acerca de con qué frecuencia se llevan acabo estos ataques en los directorios activos. La mayoría de las empresas están bastante sensibilizadas con el riesgo de este tipo de ataques. Las grandes brechas de seguridad que han sufrido diversos sistemas a lo largo de los años, hacen que exista precaución ya que no es descabellado que puedan llegar a producirse.

Algunos de los métodos que se utilizan en criptografía son:

  • Hashing, es un método de transformar una contraseña para que no sea recuperable. Se utiliza SHA256, método por el que se transforma una contraseña en una cadena de caracteres de 256 bits.
  • Se utilizan iteraciones o lo que es lo mismo, repetición de un algoritmo hasta que se da con lo que se busca.
  • También se utiliza una técnica conocida como 'salt' que consiste en añadir texto a la contraseña antes de encriptarla, para que resulte otro hash diferente y hacerla más difícil de descifrar.

Para extraer datos de un entorno de directorio activo, un atacante necesita extraer ficheros del controlador de dominio, lo que significaría que ha conseguido acceso con privilegios de administración en la red. Los métodos de seguridad que se disponen para los directorios activos hacen que un atacante requiera de una gran cantidad de trabajo para poder acceder. ¿Porqué poner tanto esfuerzo cuando pueden hacer uso de contraseñas encontradas, intentar adivinarlas o simplemente pedirlas amablemente mediante phishing?

En el caso de que los atacantes hayan accedido a una base de datos de hashes. ¿Cómo procederían?

  1. Conseguir una plataforma de crackeo. En el mercado negro se han visto sistemas capaces de crackear más de 100 mil millones de contraseñas por segundo contra SHA256 por 20.000$.
  2. Hacer los deberes y verificar las reglas específicas de contraseñas que tiene cada empresa.
  3. Construir una lista de contraseñas para probar. Empiezan tomando los más de 500 millones de contraseñas ya publicadas en anteriores brechas de seguridad.
  4. Probar cada una de las contraseñas de la lista en la cuenta objetivo. Con este método se consiguen más del 70% de las contraseñas de los usuarios. Con el sistema de crackeo mencionado anteriormente se podría conseguir en 5 ms, es decir, tomaría tan solo un segundo probar la lista completa contra 200 cuentas.
  5. En el improbable caso de que la cuenta objetivo no se haya crackeado todavía, se puede crear una lista de frases populares, textos de canciones, titulares de noticias o cualquier cosa que se pueda encontrar con un motor de búsqueda. Esto conseguiría vulnerar entre un 5-7% de las cuentas restantes.
  6. Si todavía no ha sido posible, un atacante puede llevar a cabo un ataque de fuerza bruta con cada una de las combinaciones posibles, lo que terminará rompiendo todas las contraseñas posibles. La única limitación es el tiempo que lleva. Dependiendo de la longitud de la contraseña tenemos la siguiente tabla para hacernos a la idea del tiempo que puede llevar:

Longitud de contraseña

Combinaciones posibles

Tiempo en segundos

Tiempo en minutos

Tiempo en horas

Tiempo en días

6

782,757,789,696

8

0.13

0.002

0.00009

7

75,144,747,810,816

751

12.52

0.21

0.01

8

7,213,895,789,838,340

72,139

1,202.32

20.04

0.83

9

692,533,995,824,480,000

6,925,340

115,422.33

1,923.71

80.15

10

66,483,263,599,150,100,000

664,832,636

11,080,543.93

184,675.73

7,694.82

n atacante puede usar también patrones predictivos para crear un subconjunto de contraseñas que puedan ser adivinadas con alta probabilidad.

  1. Un atacante puede usar también patrones predictivos para crear un subconjunto de contraseñas que puedan ser adivinadas con alta probabilidad.
  2. Debido al método 'salt', todo lo anterior sirve tan solo para una cuenta, eso sí con un 85% de probabilidades de éxito.

La cuestión es que, en caso de brecha de seguridad, el grado de complicación de tu contraseña simplemente no importa a menos que sea mayor de 12 caracteres y nunca antes haya sido utilizada, lo que implicaría haber sido generada por un gestor de contraseñas. Aunque no es para todo el mundo, es muy recomendable el uso de gestores de contraseñas. Aunque tienen sus propios problemas, a la hora de generar contraseñas y poder recordarlas, marcan la diferencia.

Otra opción es simplemente habilitar MFA (doble factor de autenticación), lo que solucionaría los problemas expuestos con anterioridad. Estos sistemas permiten incluso saber cuando alguien está intentando entrar en el sistema con nuestras credenciales. Les impediría el acceso y nos permitiría cambiar las claves de acceso.

Conclusiones

Excepto para el tipo de ataque de spray de contraseñas, la dificultad de tu contraseña no importa. Para evitar este tipo de ataques, intenta no utilizar contraseñas débiles como pueden ser el top de contraseñas adivinadas por los diccionarios. Para los ataques de fuerza bruta, genera contraseñas largas, de más de 8 caracteres, con números y caracteres especiales, o puedes hacer uso de gestores de contraseñas.

Hay que evitar malas prácticas como re-utilización de contraseñas y también tratar de identificar el phishing que intenta robarnos las credenciales haciéndose pasar por sitios legítimos. La mejor forma de evitar que nos roben las credenciales es MFA. Los estudios indican que mediante esta técnica tu cuenta tiene un 99.9% menos de probabilidades de ser comprometida.