Block Hosts: Bloqueando ataques de força-bruta (brute force) em FTP, SSH e outros

Entenda melhor este tipo de ataque e conheça as principais maneiras de evitá-lo com ajuda da ferramenta Block Hosts.

[ Hits: 40.818 ]

Por: Perfil removido em 17/11/2009


Introdução



Resumidamente, ataques de força-bruta (brute-force, em inglês) são aqueles onde o atacante tenta descobrir senhas à base de tentativa e erro. Estes ataques consistem em tentar acessar sistemas utilizando usuários e senhas aleatórias, ou mesmo utilizar um "dicionário" que contenham os usuários e senhas mais prováveis. Normalmente os serviços que mais sofrem este tipo de ataque são SSH, FTP e e-mail.

Outra característica deste tipo de ataque é que, dependendo da capacidade e da utilização do servidor atacado, este pode ficar muito lento, já que podem ser realizadas centenas de conexões simultâneas tentando acertar o usuário e senha. Esta lentidão e ocupação do número de conexões pode fazer com que usuários legítimos não consigam acessar o sistema, gerando outro tipo famoso de ataque que é o de Negação de Serviço (Denial of Service).

Como identificar se estou sendo atacado

A identificação deste tipo de ataque ocorre lendo os logs de cada serviço. É uma boa prática de segurança periodicamente fazer a leitura dos logs. Segue abaixo um exemplo de ataque a um servidor FTP:

Nov 08 16:31:41 gateway proftpd[9920] gateway (61.152.239.49[61.152.239.49]): FTP session opened.
Nov 08 16:31:42 gateway proftpd[9920] gateway (61.152.239.49[61.152.239.49]): no such user 'Administrator'
Nov 08 16:31:42 gateway proftpd[9920] gateway (61.152.239.49[61.152.239.49]): USER Administrator: no such user found from 61.152.239.49 [61.152.239.49] to 201.37.10.10:21
Nov 08 16:31:45 gateway proftpd[9920] gateway (61.152.239.49[61.152.239.49]): no such user 'Administrator'
Nov 08 16:31:45 gateway proftpd[9920] gateway (61.152.239.49[61.152.239.49]): USER Administrator: no such user found from 61.152.239.49 [61.152.239.49] to 201.37.10.10:21
Nov 08 16:31:48 gateway proftpd[9920] gateway (61.152.239.49[61.152.239.49]): no such user 'Administrator'
Nov 08 16:31:48 gateway proftpd[9920] gateway (61.152.239.49[61.152.239.49]): USER Administrator: no such user found from 61.152.239.49 [61.152.239.49] to 201.37.10.10:21
Nov 08 16:31:48 gateway proftpd[9920] gateway (61.152.239.49[61.152.239.49]): FTP session closed.

A principal característica é que as linhas de log com "erro de conexão" se repetem dezenas ou até mesmo milhares de vezes.

Como evitar este tipo de ataque na prática

Como proteger-se?

Existem diversas técnicas e recomendações para minimizar o risco de sofrer um ataque de força bruta, normalmente estas recomendações são muito difundidas para o serviço de SSH. É recomendável ler o artigo do CERT.BR, que trata do assunto, para ter um bom embasamento:

Ferramenta prática para proteção: Block Hosts

Se mesmo seguindo as práticas mais recomendadas seus servidores continuam sendo atacados, está na hora de tomar alguma atitude mais drástica, pois mais cedo ou mais tarde alguém vai acertar um usuário e senha e a segurança do seu sistema pode ficar comprometida.

A ferramenta Block Hosts tem a função de monitorar os logs dos serviços e caso existam muitas conexões inválidas de uma mesma origem ele trata de bloquear através de TCP_WRAPPERS (/etc/hosts.deny). Toda ação pode ser configurada: número máximo de erros de senha, tempo que o "atacante" deve ficar bloqueado, "Whitelist" com endereços que nunca poderão ser bloqueados, "Blacklist" etc.

Site oficial da ferramenta: http://www.aczoom.com/cms/blockhosts

A seguir os passos para instalação e configuração.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Instalação do Block Hosts
   3. Configuração e execução do Block Hosts
Outros artigos deste autor

Sistemas de arquivos para GNU/Linux

Como fazer seu programa Kylix chamar uma aplicação externa

Instalando o Slackware sem sofrimento (parte 2)

Prevenção e rastreamento de um ataque

Armazenamento de arquivos em Linux: um estudo de caso

Leitura recomendada

Os 5 princípios básicos de segurança para empresas

Wireshark - Artigo

Como recuperar a senha de root usando uma live distro

Mecanismo de firewall e seus conceitos

Elastic SIEM - Instalação e Configuração do LAB (Parte I)

  
Comentários
[1] Comentário enviado por magnolinux em 17/11/2009 - 07:31h

Parabens.. otimo artigo...



[2] Comentário enviado por luizvieira em 17/11/2009 - 08:31h

Bom artigo!
Apenas um adendo: uma ferramenta boa pra verificar ataques à serviços é um IDS (Snort, por exemplo).
Valeu!

[3] Comentário enviado por removido em 17/11/2009 - 09:21h

Obrigado pelos comentários! Como nosso amigo Luiz comentou, é muito importante ter um IDS na sua rede também.

[4] Comentário enviado por cleysinhonv em 17/11/2009 - 10:09h

Olá,
Parabéns pelo artigo está bem explicado e isso é importante, fiquei só na dúvida sobre, se os serviços que ele bloqueia é ssh e o FTP são por padrão, ou se se eu quiser adicionar um outro serviço como o faço.
Esse foi para FAVORITOS.

[5] Comentário enviado por removido em 17/11/2009 - 10:52h

Obrigado pelo comentário José Cleydson! Para adicionar outros serviços, você precisa apenas saber lidar com Expressões Regulares. Verifique no arquivo de configuração a diretiva "ALL_REGEXS", nela que são determinados as linhas do LOG que devem ser monitoradas. Por padrão o BlockHosts monitora os serviços ssh, proftpd, vsftpd, pure-ftpd, ftpd-Solaris, ipop3d, dovecot, qpopper, postfix, mas nada impede de você adicionar tantos outros quanto você queira. Boa sorte!

[6] Comentário enviado por grandmaster em 17/11/2009 - 20:15h

Muito bom, guardado também

---
Renato de Castro Henriques
CobiT Foundation 4.1 Certified ID: 90391725
http://www.renato.henriques.nom.br

[7] Comentário enviado por valterrezendeeng em 21/11/2009 - 19:21h

Muito bom o Artigo

Parabens !!!



[8] Comentário enviado por jucaetico em 27/11/2009 - 09:29h

Valeu! show esse artigo!

[9] Comentário enviado por jucaetico em 27/11/2009 - 10:01h

cara só uma dúvida, fiz uns testes aqui.. olha meu "/var/log/blockhosts.log":

blockhosts 2.4.0 started: 2009-11-27 10:55:01 BRST
... loaded /etc/hosts.deny, starting counts: blocked 0, watched 2
... loading log file /var/log/auth.log, offset: 27431
... discarding all host entries older than 2009-11-25 10:55:01 BRST
... final counts: blocked 0, watched 3

arquivo "hosts.deny":

#---- BlockHosts Additions
#bh: ip: 192.X.X.X : 4 : 2009-11-27 10:55:01 BRST
#bh: ip: 192.X.X.X : 5 : 2009-11-27 10:50:01 BRST
#bh: ip: 10.X.X.X : 4 : 2009-11-27 10:50:01 BRST

#bh: logfile: /var/log/auth.log
#bh: offset: 30060
#bh: first line:Nov 24 14:55:37 SERVIDOR login[2334]: pam_unix(login:session): session opened for user root by LOGIN(uid=0)

#---- BlockHosts Additions

Esses ips que estão em "hosts.deny" são os ips que eu forcei o login via ssh por mais de 7 vezes. porque não foram bloqueados?

Valeu

[10] Comentário enviado por andrezc em 29/12/2009 - 12:02h

O artigo ficou com uma explicação bem completa, do inicio ao fim.

Outra ferramenta boa para evitar esse tipo de ataque em vários serviços é o Fail2ban, outro dia postei uma dica ensinando a instalar, configurar e usar. Além do SSH, o Fail2ban monitora também os arquivos de log do apache e também tentativas de acesso ao servidor de e-mails (postfix) ou ao servidor FTP.

Ótimo artigo :)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts