Pular para o conteúdo

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.
Perfil removido removido
Hits: 42.134 Categoria: Linux Subcategoria: Segurança
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Introdução
   2. Instalação do Block Hosts
   3. Configuração e execução do Block Hosts

Banco de dados e Cloud Computing, melhor opção?

Ingressando estações de trabalho Ubuntu no AD com Closed In Directory

Usando o SlackPorts

1º Fórum da Internet no Brasil

Como otimizar o desempenho do vídeo Intel com o driver i915

Autenticação por desafio e resposta no SSH

Gerenciamento de segurança da informação com open source (parte 1)

Snort - The Open Source Network Intrusion Detection System

Carnivore e Altivore: Os predadores do FBI

Snort em modo defensivo com Flex Response 2

#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!
#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

Entre na sua conta para comentar.