En el sector de ciberseguridad, la velocidad es un factor clave. Algunos grupos de ransomware pueden cifrar por completo la información de una organización en cuestión de segundos, lo que dificulta una respuesta a la misma velocidad del atacante, incluso cuando el ataque es detectado a tiempo. Por otro lado, la capacidad de respuesta ante incidentes es crucial, y las organizaciones deben contar con equipos capacitados para aplicar las primeras medidas de mitigación y reforzar los controles de seguridad en los minutos iniciales tras un ataque. En este contexto, la velocidad no solo es una herramienta, sino también un arma.
Es fundamental destacar que las contraseñas siguen siendo la primera línea de defensa contra accesos no autorizados a las cuentas de los usuarios. No obstante, las mejores prácticas para su creación y protección evolucionan constantemente. Hoy en día, se prioriza la longitud sobre la complejidad para mejorar su seguridad. Aun así, el uso de hashes sigue siendo esencial. Incluso las frases de contraseña más largas y seguras deben ser protegidas mediante hashing para evitar su exposición total en caso de una filtración de datos, y jamás deben almacenarse en texto plano.
Sin embargo, la velocidad sigue siendo un factor crítico. ¿Cuánto tiempo les toma a los atacantes descifrar los algoritmos de hash modernos? ¿Está su organización preparada para implementar los controles de seguridad adecuados y resistir intentos de descifrado cada vez más rápidos?
Los ciberatacantes cuentan con diversas herramientas y técnicas para descifrar contraseñas protegidas, muchas de ellas extremadamente rápidas. Entre los métodos más comunes se encuentran los ataques de fuerza bruta, los ataques de diccionario, los ataques híbridos y los ataques con patrones predefinidos (mask attacks).
Un ataque de fuerza bruta consiste en realizar intentos repetitivos y sistemáticos para adivinar una contraseña mediante prueba y error. Los ciberdelincuentes utilizan herramientas especializadas que generan y prueban múltiples combinaciones hasta encontrar la correcta. Aunque este método no es particularmente sofisticado, puede ser altamente efectivo cuando se emplea software de descifrado avanzado y hardware de alto rendimiento, como tarjetas gráficas (GPU), que aceleran el proceso de cálculo.
Un ataque de diccionario consiste en probar sistemáticamente palabras y combinaciones predefinidas para descifrar una contraseña. Estos diccionarios pueden incluir términos comunes, listas de palabras específicas, combinaciones de palabras y variaciones con caracteres alfanuméricos y símbolos (por ejemplo, reemplazar una “a” por “@”). Además, estos ataques suelen aprovechar contraseñas filtradas en violaciones de datos anteriores, aumentando significativamente sus probabilidades de éxito.
Un ataque híbrido de contraseñas combina la fuerza bruta con estrategias basadas en diccionarios para aumentar su velocidad y efectividad. Por ejemplo, un atacante puede emplear una lista de credenciales comúnmente utilizadas y aplicar variaciones que incluyen números y caracteres especiales, incrementando así las probabilidades de éxito.
En ciertos casos, los atacantes pueden conocer patrones o requisitos específicos de las contraseñas, lo que les permite optimizar sus intentos de descifrado mediante ataques de máscara. Este método aplica la fuerza bruta de manera más eficiente al enfocarse únicamente en combinaciones que cumplen con un formato predefinido, como contraseñas de ocho caracteres que inician con una letra mayúscula y terminan con un número o símbolo especial. Al reducir el número de intentos necesarios, los ataques con patrones predefinidos aumentan la velocidad y efectividad del descifrado.
Pero entonces ¿cómo protegen los algoritmos de hash contra los métodos de descifrado?
Los algoritmos de hash son fundamentales en diversas aplicaciones de seguridad, desde la verificación de la integridad de archivos hasta las firmas digitales y el almacenamiento de contraseñas. Aunque no ofrecen una protección absoluta, el uso de hashing es significativamente más seguro que almacenar contraseñas en texto plano. Al aplicar un algoritmo de hash, incluso si los atacantes logran acceder a una base de datos de credenciales, no podrán leer ni utilizar las contraseñas de forma inmediata, dificultando su explotación.
Los algoritmos de hash están diseñados para dificultar en gran medida el descifrado de contraseñas, funcionando como una barrera clave contra los atacantes. Al hacer que el proceso de descifrado requiera una cantidad considerable de tiempo y recursos, el hash desincentiva los intentos de ataque, aumentando la probabilidad de que los ciberdelincuentes opten por objetivos más vulnerables.
No obstante, dado que los algoritmos de hash son funciones unidireccionales, la única forma de comprometer las contraseñas hash es mediante ataques de fuerza bruta. Los ciberdelincuentes utilizan hardware especializado, como GPU, junto con software de descifrado como Hashcat, L0phtcrack o John The Ripper, para llevar a cabo ataques a gran escala, probando millones o incluso miles de millones de combinaciones simultáneamente.
A pesar de contar con estas herramientas avanzadas, los tiempos para descifrar contraseñas pueden variar considerablemente dependiendo del algoritmo de hash utilizado y la complejidad de la contraseña, tanto en longitud como en combinación de caracteres. Por ejemplo, las contraseñas largas y complejas pueden tardar miles de años en ser descifradas, mientras que las contraseñas cortas y simples pueden ser vulneradas al instante.
En cuanto a los algoritmos de hash más utilizados en ciberseguridad para proteger contraseñas y datos, podemos mencionar que MD5, alguna vez considerado un algoritmo de hash robusto, ahora se considera criptográficamente débil debido a sus vulnerabilidades, aunque sigue siendo uno de los más utilizados, como en el CMS Wordpress. Con herramientas de GPU y software de descifrado accesibles, los atacantes pueden descifrar rápidamente contraseñas numéricas de 13 caracteres o menos protegidas por MD5. Por otro lado, SHA256, parte del grupo SHA-2 diseñado por la NSA, es considerado un algoritmo seguro y resistente a ataques de fuerza bruta, especialmente con contraseñas largas y complejas. Sin embargo, las contraseñas más simples de 9 caracteres con SHA256 pueden ser descifradas rápidamente. Bcrypt, al igual que SHA256, es altamente seguro, pero su uso de sal y factor de costo hace que sea aún más resistente a los ataques de diccionario y fuerza bruta, aunque contraseñas simples o muy cortas aún pueden ser vulneradas rápidamente.
Independientemente del algoritmo de hash utilizado, la vulnerabilidad más frecuente radica en las contraseñas cortas y simples. Las contraseñas largas y complejas, que incluyen números, letras mayúsculas y minúsculas, y símbolos, son clave para garantizar su solidez y resistencia. Sin embargo, la reutilización de contraseñas sigue siendo un problema significativo; incluso una contraseña segura, si se comparte y se almacena en texto plano en un sitio web o servicio vulnerable, puede proporcionar a los ciberdelincuentes acceso a cuentas sensibles.
Como resultado, los atacantes cibernéticos tienen más probabilidades de obtener credenciales comprometidas y listas de contraseñas filtradas de la dark web, en lugar de intentar descifrar contraseñas largas y complejas protegidas con algoritmos de hash modernos. Descifrar una contraseña larga protegida con bcrypt es casi imposible, incluso con herramientas especializadas. Sin embargo, utilizar una contraseña comprometida previamente es un método instantáneo y efectivo.
Para mejorar la seguridad de las contraseñas, se recomienda seguir varias prácticas clave: en primer lugar, priorizar la longitud de las contraseñas sobre la complejidad para fortalecer su resistencia; en segundo lugar, utilizar algoritmos de hashing para proteger las contraseñas, incluso si son largas y complejas, evitando su exposición en caso de una filtración; además, es crucial no almacenar contraseñas en texto plano en ningún momento; también es importante actualizar regularmente las contraseñas y evitar la reutilización de las mismas en múltiples servicios; finalmente, se debe educar a los usuarios sobre la importancia de generar contraseñas únicas y robustas para proteger sus cuentas.
* Víctor Ruiz. Fundador de SILIKN | Emprendedor Tecnológico | (ISC)² Certified in Cybersecurity℠ (CC) | Cyber Security Certified Trainer (CSCT™) | EC-Council Ethical Hacking Essentials (EHE) | EC-Council Certified Cybersecurity Technician (CCT) | Cisco Ethical Hacker | Líder del Capítulo Querétaro de OWASP.
Twitter: https://twitter.com/silikn
Instagram: https://www.instagram.com/silikn
YouTube: https://www.youtube.com/@silikn7599