Existem dois métodos para se infiltrar em uma organização: explorar os erros humanos ou adivinhar. Há diversas maneiras de explorar os erros humanos, como o phishing (erro de usuário), tirar vantagem dos erros de configuração (erro do administrador), ou aproveitar vulnerabilidades do tipo zero-day (erro do desenvolvedor). Por outro lado, a adivinhação abrange um único tipo de ataque: força bruta.
Mais comum, o ataque de força bruta é usado para descobrir credenciais, embora seja usado para descobrir outras informações, como URLs.
O clássico ataque de força bruta é a tentativa de adivinhar senhas na base do invasor, uma vez que o atacante obteve senhas criptografadas. Isso permite que hackers usem computadores que permitam testar um grande número de senhas sem correr o risco de ser descoberto. Por outro lado, até mesmo o ataque de força bruta não pode ser o primeiro passo de ataque, já que o hacker precisa ter uma relação das senhas criptografadas da vítima.
Já no online, a variante em tempo real do hacker tenta ‘chutar’ opções de login ou utilizam softwares descobrem credenciais. Desse modo, não há necessidade de o hacker possuir as senhas criptografadas em primeiro lugar. Com essa técnica, os hackers podem tentar invadir sistemas sem ter uma posição prévia.
Ataques de força bruta online ainda acontecem?
Tentar adivinhar usuário e senha ao mesmo tempo está cada vez mais difícil. Como a maioria dos sistemas não aponta qual informação está errada, se é o usuário ou a senha, numa falha de login, a primeira alternativa para o hacker é tentar atacar usuários conhecidos. Hackers podem encontrar nomes de usuários utilizando uma fonte aberta inteligente: muitas organizações, por instância, têm nomes de usuários previsíveis, com base nos nomes dos funcionários. Uma simples pesquisa no LinkedIn revelará uma grande quantidade de nomes de usuários.
Dito isso, esse tipo clássico online de ataque de força bruta (pelo menos para sistemas bem estabelecidos) é mais um mito do que realidade. A razão é simples – a maioria dos sistemas modernos possui uma contramedida embutida: bloqueio. Se o usuário errar o login algumas vezes (o número de tentativas é definido pelo administrador), a conta é bloqueada e, para voltar a acessá-la, é necessário o desbloqueio de um administrador. Atualmente, esses bloqueios geram mais dores de cabeça ao departamento de TI do que os ataques de força bruta, pois o monitoramento dos bloqueios passou a ser mais importante que a identificação de ataque.
A exceção para isso são as aplicações feitas sob medida. Apesar do tradicional login do Windows não ser mais explorável para os cibercriminosos, uma nova aplicação da web desenvolvida especialmente para uma próxima campanha de marketing, por exemplo, pode ser.
Como se proteger desses ataques
Até agora, assumimos que os eventos usados para análise são claros: qualquer evento de falha de login é claramente rotulado como “login”, o resultado é claramente identificado como sucesso ou falha, e o nome de usuário está sempre no mesmo formato.
Na realidade, processar um fluxo de eventos para se preparar para detectar e analisar um ataque de força bruta é um desafio à parte a considerar.
Vamos usar o Windows como exemplo, a mais onipresente fonte de ataques. A tentativa de login bem sucedida (evento ID 4624) e a tentativa falha de login (evento ID 4625) são registradas localmente em cada computador. Isso faz com que seja mais difícil de coletá-los. E o atacante, que pode ter acesso ao computador, também poderia impedir que as informações fossem recebidas. O controlador de domínio registra a autenticação, que poderá ser usada como proxy em uma tentativa de login.
Uma vez que se sabe quais eventos rastrear, ainda é preciso saber qual como identificar qual foi bem-sucedido e qual teve falha. O login com falha e o login bem-sucedido são eventos separados, enquanto, para o controlador de domínio de autenticações, estes são identificados como ações dentro de um só evento.
Identificação por meio de Cyber Kill Chain
O exemplo de ataque de força bruta deixa claro que detectá-lo não é tão simples. Nenhum dos métodos de detecção é ‘a prova de balas’, e os atacantes continuam melhorando seus métodos de prevenir detecção.
Para detectar um ataque, é necessário profundo conhecimento em ambas as técnicas de ataque e o comportamento dos sistemas de monitoramento. Isso também requer atualizações e melhorias contínuas. É imprescindível que qualquer sistema usado para detectar ataques de força bruta inclua algoritmos e atualizações para esses algoritmos de detecção. Simplesmente fornecer meios para identificar eventos e criar regras ou algoritmos, que deixa o usuário como responsável pela implementação e a lógica de detecção, não é o bastante. É recomendado que o usuário entenda como o sistema funciona.