Ataques de força bruta quebram a segurança dos dados ao tentar todas as combinações possíveis, como um ladrão que invade um cofre testando todos os números para abrir a fechadura.
Após ler este artigo, você será capaz de:
Conteúdo relacionado
O que é um bot?
O que é gerenciamento de bots?
Content scraping
O que é preenchimento de credenciais?
O que é Robots.txt?
Assine o theNET, uma recapitulação mensal feita pela Cloudflare dos insights mais populares da internet.
Copiar o link do artigo
A tentativa de quebra de senha com força bruta é um método de tentativa e erro utilizado para decodificar dados confidenciais. As aplicações mais comuns das tentativas de quebra de senha com força bruta são a quebra de senhas e de chaves de criptografia (continue lendo para saber mais sobre chaves de criptografia). Outros alvos comuns das tentativas de quebra de senha com força bruta são as chaves de API e logins via SSH. Geralmente, as tentativas de quebra de senha com força bruta são executadas por scripts ou bots que têm como alvo a página de login de um site.
O que diferencia os ataques de força bruta de outros métodos de quebra de segurança é que os ataques de força bruta não utilizam uma estratégia intelectual, simplesmente fazem várias tentativas usando diferentes combinações de caracteres até encontrar a combinação correta. É como um ladrão tentando arrombar um cofre experimentando todas as combinações de números possíveis até conseguir abrir o cofre.
A grande vantagem dos ataques de força bruta é que são ataques relativamente simples de executar e, se houver tempo suficiente e nenhuma estratégia de mitigação para o alvo, eles sempre funcionam. Todos os sistemas existentes baseados em senha e em chave de criptografia podem ser quebrados com o uso de um ataque de força bruta. De fato, a quantidade de tempo que um ataque de força bruta necessita para invadir um sistema é uma métrica útil para medir o nível de segurança desse sistema.
Por outro lado, os ataques de força bruta são muito lentos, pois podem ter que testar todas as combinações de caracteres possíveis antes de atingir seu objetivo. Essa lentidão é agravada à medida que o número de caracteres na string de destino aumenta (uma string é apenas uma combinação de caracteres). Por exemplo, uma senha de quatro caracteres leva muito mais tempo para ser quebrada por um ataque de força bruta do que uma senha de três caracteres, e uma senha de cinco caracteres leva muito mais tempo para ser quebrada do que uma senha de quatro caracteres. Quando a contagem de caracteres ultrapassa um certo ponto, o ataque de força bruta para quebrar uma senha gerada de forma apropriadamente aleatória se torna inviável.
Se a string de destino for suficientemente longa, poderá levar dias, meses ou até anos para um invasor de força bruta decodificar uma senha gerada de forma apropriadamente aleatória. Como consequência da tendência atual de exigir senhas e chaves de criptografia mais longas, os ataques de força bruta ficaram um pouco mais difíceis. Quando são utilizadas senhas e criptografia adequadas, os invasores geralmente tentam outros métodos de quebra de código, como os ataques de engenharia social ou on-path.
Os desenvolvedores que gerenciam sistemas de autorização podem adotar medidas como bloquear endereços de IP que geraram muitos logins com falha e incorporar um atraso ao seu software de verificação de senha. Até mesmo um atraso de alguns segundos pode prejudicar bastante a eficácia de um ataque de força bruta.
Os usuários de serviços da web podem reduzir sua vulnerabilidade aos ataques de força bruta escolhendo senhas mais longas e mais complexas. Também é recomendável habilitar a autenticação de dois fatores e usar senhas exclusivas para cada serviço. Se um invasor conseguir executar um ataque de força bruta à senha de um usuário para um determinado serviço, ele poderá tentar reciclar o mesmo login e senha em vários outros serviços mais utilizados. Esse método é conhecido como preenchimento de credenciais.
Os usuários também devem evitar inserir senhas ou informações pessoais, como números de cartão de crédito ou informações bancárias, em qualquer serviço da web que não proteja seus dados com chaves de criptografia fortes.
Chaves de criptografia são strings aleatórias de bits gerados para embaralhar e desembaralhar dados. Depois de codificados, os dados aparecem como uma string de caracteres aleatórios e misturados, até serem decodificados com a chave de criptografia correta. Assim como as senhas, as chaves de criptografia podem ser quebradas por meio de ataques de força bruta, mas hoje estão em uso chaves de criptografia que levariam tanto tempo para serem quebradas com o uso de computadores modernos que são consideradas praticamente invioláveis.
Uma chave de criptografia mais longa é exponencialmente mais segura que uma mais curta. Por exemplo, em uma chave de criptografia de 128 bits, existem 2128 combinações possíveis que um invasor usando o método de ataque de força bruta precisaria testar. No caso de uma criptografia de 256 bits, um invasor precisaria testar 2256 combinações diferentes, o que exigiria 2128 vezes mais capacidade computacional para quebrar essa chave do que para quebrar uma chave de 128 bits! (2128 = 340.282.366.920.938,463.463.374.607.431.768.211.456 combinações possíveis).
Para se ter uma ideia do que esses números significam, um computador poderoso com capacidade para verificar trilhões de combinações por segundo ainda precisaria de bem mais do que seis decilhões de anos para quebrar uma chave de criptografia de 256 bits (seis decilhões correspondem ao número 1 seguido de 96 zeros).
Como as chaves de criptografia com números maiores de bits são praticamente imunes aos ataques de força bruta atuais, é recomendável que todos os serviços da web que coletam informações dos usuários criptografem seus dados e suas comunicações usando chaves de criptografia de 256 bits. A Cloudflare usa a melhor criptografia TLS da categoria para prevenir ataques de força bruta e trabalhou em métodos à prova de mudanças futuras com relação à computação quântica.