What is a brute force attack?

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.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Saiba diferenciar ataques de força bruta de ataques mais sofisticados
  • Defina os pontos fortes e os pontos fracos dos ataques de força bruta
  • Explique as melhores formas de se proteger contra ataques de força bruta

Copiar o link do artigo

O que é um ataque de força bruta?

O ataque de força bruta é um método de tentativa e erro utilizado para decodificar dados confidenciais. As aplicações mais comuns dos ataques de 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 dos ataques de força bruta são as chaves de API e logins via SSH. Geralmente, os ataques de força bruta às senhas são executados 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.

Quais são os pontos fortes e os pontos fracos dos ataques de força bruta?

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.

Tempos de quebra de senha por força bruta

If the target string is sufficiently long, then it could take a brute force attacker days, months, or even years to decode a properly randomized password. As a result of the current trend of requiring longer passwords and encryption keys, brute force attacks are quite a bit more difficult. When good passwords and encryption are utilized, attackers typically try other methods of code breaking such as social engineering or on-path attacks.

Como se proteger contra ataques de força bruta

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.

Users of web services can decrease their vulnerability to brute force attacks by choosing longer, more complex passwords. It is also recommended to enable two-factor authentication and use unique passwords for each service. If an attacker is able to brute force a user’s password for one service, that attacker may try recycling the same login and password on many other popular services. This is known as credential stuffing.

Users should also avoid entering passwords or personal information such as credit card numbers or banking information with any web service that doesn’t protect their data with strong encryption keys.

O que é uma chave de criptografia?

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.

Qual a diferença entre a criptografia de 128 bits e a de 256 bits?

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.