Um ataque de dicionário é uma metodologia de quebra de credenciais frequentemente utilizada para comprometer sistemas de autenticação por meio de um ciclo sistemático de listas pré-compiladas de possíveis senhas. Também conhecido como ataque baseado em dicionário, essa técnica explora a tendência dos usuários de selecionar senhas com base em palavras padrão, frases usadas com frequência, nomes próprios ou combinações previsíveis de caracteres. Além disso, os invasores frequentemente usam métodos baseados em dicionário para enumerar automaticamente endereços de e-mail válidos para campanhas de spam.
Diferentemente dos ataques de força bruta, que tentam exaustivamente todas as permutações concebíveis de caracteres (consumindo recursos computacionais e tempo significativos), os ataques de dicionário aproveitam listas de palavras predefinidas contendo senhas comumente selecionadas ou vazadas, permitindo tentativas de comprometimento mais rápidas e com maior eficiência de recursos.
Dicionários e ferramentas de software especializadas para executar ataques de dicionário estão amplamente disponíveis, tanto comercialmente quanto gratuitamente em recursos da comunidade de segurança. Os dicionários variam em escala de milhares a milhões de entradas. Administradores de TI e especialistas em segurança geralmente utilizam essas ferramentas e dicionários proativamente — realizando testes de segurança, avaliações de penetração e auditorias de senhas — para avaliar a suscetibilidade de seus sistemas a esse vetor de ataque.
Uma técnica comum de mitigação envolve a aplicação de políticas de criação de senhas que rejeitam automaticamente credenciais derivadas exclusivamente de entradas de dicionário ou listas de senhas previsíveis. No entanto, políticas de filtragem de dicionário excessivamente restritivas podem afetar negativamente a experiência do usuário e criar dificuldades na seleção de senhas compatíveis. Os profissionais de segurança devem, portanto, equilibrar os requisitos de complexidade de senha com considerações práticas de usabilidade.
Outra política crítica é eliminar as "Contas Joe" — contas de usuários em que o nome de usuário e a senha são idênticos — já que essas contas são frequentemente os principais alvos de ferramentas automatizadas de ataques de dicionário. Os administradores de segurança devem, no mínimo, implementar controles que proíbam a criação de contas de Joe e aplicar diretrizes de complexidade de senhas para minimizar tentativas bem-sucedidas de adivinhação de credenciais.