Un ataque de diccionario es una metodología de descifrado de credenciales que se utiliza frecuentemente para comprometer los sistemas de autenticación mediante el recorrido sistemático de listas precompiladas de contraseñas potenciales. También conocido como ataque basado en diccionario, esta técnica explota la tendencia de los usuarios a seleccionar contraseñas basadas en palabras estándar, frases utilizadas frecuentemente, nombres propios o combinaciones de caracteres predecibles. Además, los atacantes utilizan con frecuencia métodos basados en diccionarios para enumerar automáticamente direcciones de correo electrónico válidas para campañas de spam.
A diferencia de los ataques de fuerza bruta, que intentan exhaustivamente cada permutación imaginable de caracteres (consumiendo importantes recursos computacionales y tiempo), los ataques de diccionario aprovechan listas de palabras predefinidas que contienen contraseñas seleccionadas o filtradas comúnmente, lo que permite intentos de compromiso más rápidos y que utilizan menos recursos.
Los diccionarios y las herramientas de software especializadas para realizar ataques de diccionario están ampliamente disponibles, tanto en forma comercial como gratuita, dentro de los recursos de la comunidad de seguridad. Los diccionarios varían en escala desde miles a millones de entradas. Los administradores de TI y los especialistas en seguridad suelen aprovechar estas herramientas y diccionarios de forma proactiva (realizando pruebas de seguridad, evaluaciones de penetración y auditorías de contraseñas) para evaluar la susceptibilidad de sus sistemas a este vector de ataque.
Una técnica de mitigación común implica aplicar políticas de creación de contraseñas que rechacen automáticamente las credenciales derivadas exclusivamente de entradas de diccionario o listas de contraseñas predecibles. Sin embargo, las políticas de filtrado de diccionario excesivamente restrictivas pueden afectar negativamente la experiencia del usuario y dificultar la selección de contraseñas compatibles. Por lo tanto, los profesionales de seguridad deben equilibrar los requisitos de complejidad de las contraseñas con consideraciones prácticas de usabilidad.
Otra política crítica es eliminar las "Cuentas Joe" (cuentas de usuario donde el nombre de usuario y la contraseña son idénticos), ya que estas cuentas son con frecuencia los objetivos principales de las herramientas de ataques de diccionario automatizados. Los administradores de seguridad deberían, como mínimo, implementar controles que prohíban la creación de cuentas Joe y aplicar pautas de complejidad de contraseñas para minimizar los intentos exitosos de adivinar credenciales.