Segurança contra ataques de Força Bruta

Uma das maiores ameaças dos ultimos tempos é o sequestro de dados. Conhecido como ataques do tipo “ransomware”, no qual os cybercriminosos criptografam os dados da vitima e solicitam pagamento de resgate, geralmente em forma de criptomoedas. Este ataque está constantemente atrelado à falhas de segurança (sejam sistemicas ou operacionais).

No caso de falhas sistemicas, podemos considerar como: base de dados desatualizadas, patches de correção não instalados nos softwares e sistemas operacionais e eventuais falhas de desenvolvimento, bugs encontrados, vulnerabilidades de softwares, etc.

No caso das falhas operacionais podemos considerar erros causados principalmente por Administradores de sistemas e responsáveis pelas áreas de segurança.

Um servidor de arquivos geralmente é o “Alvo” destes ataques, por conter grande parte de informações tangíveis e importantes para os negócios. Neste caso a recomendação é que a segurança seja redobrada neste ponto e que haja backups constantes destes arquivos em locais seguros, se possível com cópias fora da corporação ou que de certa forma o invasor não consiga ter acesso aos backups também.

Primeiramente é preciso responder os seguintes questionamentos:

  • O Servidor tem acesso direto à internet?
  • O servidor precisa ser acessado externamente?
  • É necessária a exposição?

Se para todos os questionamentos, ou parte deles a resposta for “Sim”, será preciso verificar as formas mais seguras de garantir estes acessos.

No caso de acesso externo via Remote Desktop, com um IP publicado na internet ou um port forward de um Firewall para a porta RDP (3389), abre brecha para scans de rede identificar as portas abertas e possibilitar ataques do tipo “força bruta”.

Os ataques de força bruta são simples de entender, mas difíceis de proteger. Estes ataques são baseados em calculos matemáticos. A medida que os computadores cada vez mais tem poder de calculos, isto torna possivel (e mais rápido) a resolução de ataques.

Como funciona este tipo de ataque?

Um invasor possui um arquivo criptografado, por exemplo, um banco de dados de senhas. Este invasor sabe que este arquivo contém dados importantes, e sabe que existe uma chave que o desbloqueia. Para descriptografar, ele pode tentar todas as senhas possíveis, e isto pode ser feito automaticamente através de programas, de modo que a velocidade aumenta à medida que o hardware do computador seja cada vez mais rápido, capaz de fazer mais cálculos por segundo. O ataque de força bruta provavelmente começaria com senhas de um dígito, por exemplo, depois senhas de dois dígitos e assim por diante, tentando todas as combinações possíveis até que uma funcione.

Um “ataque de dicionário” é semelhante e tenta palavras de um dicionário ou de uma lista de senhas comuns, pré-definidas. Isso pode ser muito eficaz, pois muitas pessoas usam senhas comuns e conhecidas.

Por exemplo, muitas ferramentas de força bruta HTTP podem utilizar uma lista de servidores proxy abertos. Como cada solicitação parece vir de um endereço IP diferente, você não pode bloquear esses ataques simplesmente bloqueando o endereço IP de origem.

E como se proteger de ataques deste tipo?

Uma maneira de bloquear ataques de força bruta seria simplesmente bloquear as contas após um número definido de tentativas de senha incorretas. Os bloqueios de conta podem durar um tempo específico, tipo uma hora, ou elas podem permanecer bloqueadas até que o Administrador desbloqueie-as. No entanto, este método nem sempre é a melhor solução, porque no caso de um ataque, o invasor poderia bloquear centenas de contas de usuários, o que poderia gerar um aumento significativo de “retrabalho” em chamados de suporte para desbloqueio de contas, por exemplo, além de uma série de outros problemas como por exemplo a indisponibilidade do servidor (DDoS).

Outra técnica é usar um “teste de resposta de desafio” para evitar que robôs ou sistemas automatizados “testem” o sistema, por exemplo. Existem ferramentas como o reCAPTCHA podem ser usadas para exigir que o usuário digite uma combinação, um código ou resolva um simples problema de matemática, desta forma garantindo que o usuário em questão relamente é um “ser humano” e não uma maquina.

Uma maneira de proteger os usuarios e evitar que criem senhas fracas, é utilizando programas geradores de senhas, de forma aleatória e combinando caracteres e que não possuam qualquer padrão. Desta forma, um ataque de dicionarios “nunca” irá conseguir decifrar uma senha deste tipo, pelo menos não em curto tempo até que se detecte o ataque.

Outra maneira de acesso “seguro” seria prover um acesso via VPN (Client-to-Site ou Site-to-Site) da estação cliente para o Servidor.

Ainda uma outra maneira de se proteger, – acredito que seja uma das mais eficazes – seria utilizando Autenticação de dois fatores (Two-factor Authentication).

Este método já é antigo porém tem se aprimorado e é bastante utilizado, principalmente em instituições financeiras. Existem alguns métodos de autenticação de dois fatores: Token (físico e virtual), frase secreta, códigos, entre outros.

Esses tokens geralmente exibem uma senha diferente para cada login. A senha (ou PIN) nunca se repete. Existem alguns sistemas baseados na autenticação de dois fatores, alguns são serviços disponiveis na web, outros combinam software, como a aplicação da DUO, ou o Token físico da Yubico (da YubiKey), o Etoken da Aladdin ou token SecurID da RSA, o Authy (para Android e iOS), entre muitos outros, basta escolher o que atende seus propósitos e que esteja dentro do budget da empresa.

Desta maneira, ainda que o invasor consiga ganhar acesso através da credencial (de alguma maneira ele conseguiu obter estas credenciais), ele deverá ainda passar pelo segundo critério de autenticação;

Isto com certeza dificultará e muito a atividade do invasor, fazendo-o buscar por vítimas menos preparadas.

Segue um link com uma série de softwares com este objetivo: https://www.pcmag.com/feature/358289/two-factor-authentication-who-has-it-and-how-to-set-it-up/26

Em um próximo post darei mais detalhes de como configurar um ambiente com “Two-Factor Authentication”.

 

 

Leave a Reply

O seu endereço de email não será publicado. Campos obrigatórios marcados com *