O que é um ataque de rainbow table?
Definição de ataque de rainbow table
Um ataque de rainbow table é um tipo de ataque a senhas utilizado para quebrar hashes de senhas armazenados em bancos de dados ou outros sistemas de armazenamento. Os invasores usam rainbow tables pré-construídos, preenchidos com senhas em texto simples e seus respectivos valores de hash, para encontrar rapidamente a senha correspondente em texto simples a partir de um determinado hash.
A principal vantagem desse método é que ele exige recursos computacionais intensos e tempo — mas apenas durante o processo de geração dos hashes. Uma vez que os valores são gerados, esse método não requer grande poder de processamento nem muito tempo em comparação com os ataques de força bruta, que demandam enorme capacidade de processamento durante todo o processo do ataque.
Os ataques de rainbow table exploram senhas armazenadas com algoritmos de hash fracos (por exemplo, o algoritmo MD5). Hashes de senhas também podem ser obtidos a partir de bancos de dados vazados, frequentemente disponíveis para download em torrents ou fóruns da dark web. Isso fornece aos invasores um conjunto de hashes para comparar com os rainbow tables pré-construídos.
Como funciona um ataque de rainbow table
Tabelas pré-construídas: Os rainbow tables contêm pares de senhas sem hash e seus valores de hash correspondentes, gerados por meio de múltiplos algoritmos de hash.
Comparação de valores de hash: Os invasores recuperam hashes de senhas — geralmente a partir de bancos de dados vazados — e os comparam com as entradas do rainbow table pré-construído.
Identificação da correspondência: Quando um valor de hash correspondente é encontrado no rainbow table, a senha em texto simples associada é identificada.
Exemplo de ataque de rainbow table
Um exemplo real de ataque de rainbow table é o caso do Ubuntu Forums em 2013. Nesse incidente de segurança, os invasores conseguiram acesso não autorizado ao banco de dados do Ubuntu Forums, que continha nomes de usuário, endereços de e-mail e senhas com hash de dois milhões de usuários. Os invasores exploraram uma vulnerabilidade de injeção de SQL no vBulletin (software de gerenciamento de fóruns) utilizado pelo Ubuntu Forums à época do ataque.
As senhas armazenadas no banco de dados estavam com hash gerado pelo algoritmo MD5 — rápido, mas também suscetível a ataques de rainbow table, pois os hashes produzidos por esse algoritmo podiam ser revertidos com um rainbow table MD5 dedicado.
Após o ataque, os administradores do Ubuntu Forums enviaram e-mails a todos os usuários do fórum informando sobre o ataque e o comprometimento de suas senhas. Os usuários foram orientados não apenas a alterar suas senhas no fórum, mas também a atualizar as senhas em quaisquer outros sites onde tivessem reutilizado a mesma senha (para evitar um possível ataque de credential stuffing).
Ataque de rainbow table vs. ataque de dicionário
Embora pareçam semelhantes, os ataques de rainbow table e os ataques de dicionário são bastante diferentes no universo das técnicas de quebra de senhas — tanto no método de acesso quanto nos recursos necessários para execução.
Ataque de rainbow table | Ataque de dicionário | |
Método de acesso | Utiliza uma lista pré-construída de valores de hash de senhas. | Utiliza uma lista pré-construída de senhas potenciais. |
Velocidade | Mais lento | Mais rápido |
Taxa de sucesso | Semelhante ao ataque de dicionário, tem maior taxa de sucesso se a senha for fraca. Requer tempo considerável para quebrar senhas mais fortes e, mesmo assim, o resultado é incerto. | Tem maior taxa de sucesso se a senha for fraca e pode não funcionar se a senha for complexa. |
Recursos necessários | Exige maior poder computacional e tempo para criar a tabela. Porém, durante a execução, o consumo é significativamente menor. | Requer menos poder computacional e tempo. |
Como prevenir um ataque de rainbow table
Hash salting: O hash salting é o processo de adicionar um valor aleatório (salt) à senha em texto simples antes de aplicar o hash. Isso dificulta o uso de rainbow tables na quebra de senhas, pois o valor do salt varia para cada senha — mesmo que as senhas em si sejam idênticas.
Autenticação multifator (MFA): Ative o MFA sempre que possível. Isso adiciona uma camada extra de proteção ao exigir uma segunda forma de verificação além da senha convencional.
Implementação de um sistema de bloqueio: Implante um sistema que bloqueie automaticamente contas de usuário após uma série de tentativas de login malsucedidas. Essa medida ajuda a impedir que invasores tentem adivinhar senhas repetidamente.
Uso de senhas complexas: Evite senhas simples, fáceis de adivinhar. Isso reduz as chances de a senha já estar mapeada em um rainbow table genérico disponível online.
Uso de algoritmos de hash robustos: Utilize algoritmos de hash criptográficos robustos, como bcrypt, Argon2 ou PBKDF2. Esses algoritmos são projetados para ser lentos e exigir muitos recursos, tornando a geração de rainbow tables mais difícil e demorada para os invasores.
Bloqueie ataques de rainbow table com o ADSelfService Plus
O ADSelfService Plus da ManageEngine oferece MFA adaptativo com 20 fatores de autenticação diferentes, ajudando a manter os ataques de rainbow table sob controle. O MFA pode ser implantado para reforçar a segurança em uma variedade de aplicações e sistemas, seja on-premises ou na cloud.
O Password Policy Enforcer permite que os administradores definam padrões que impõem regras sobre caracteres especiais, limites de comprimento, repetição de caracteres e padrões. É possível ainda fazer upload de um dicionário de senhas e impedir que os usuários escolham senhas presentes nesse dicionário. Isso promove uma linha de defesa mais robusta.
Perguntas frequentes
Para que serve um rainbow table? Um rainbow table é usado em um método de ataque chamado ataque de rainbow table. Os invasores utilizam rainbow tables para acelerar o processo de reversão de hashes de senhas, por meio do pré-processamento de pares de senhas sem hash e seus respectivos valores de hash.
Um rainbow table consegue quebrar qualquer senha? Não. Os ataques de rainbow table não funcionam com senhas que foram processadas com algoritmos de hash modernos, como bcrypt ou Argon2.
Qual é o tamanho de um rainbow table? Os rainbow tables são grandes, frequentemente variando de vários gigabytes a terabytes de tamanho.
Quando os rainbow tables foram criados? Philippe Oechslin introduziu o conceito de rainbow tables em 2003 por meio de seu artigo de pesquisa intitulado Making a Faster Cryptanalytic Time-Memory Trade-Off.
Artigo traduzido. Conteúdo original escrito por Melvin Monachan.
Nota: Encontre a revenda da ManageEngine certa. Entre em contato com a nossa equipe de canais pelo e-mail latam-sales@manageengine.com.
Importante: a ManageEngine não trabalha com distribuidores no Brasil.