block hosts: bloqueando ataques de força bruta (brute force) em ftp, ssh e outros

6
Block Hosts: Bloqueando ataques de força-bruta (brute force) em FTP, SSH e outros Autor: Alexandro Corrêa <alex.linux at gmail.com> Data: 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 Block Hosts: Bloqueando ataques de força-bruta (b... http://www.vivaolinux.com.br/artigos/impressora.... 1 de 6 06-12-2009 12:53

Upload: felipe-santos

Post on 26-Jun-2015

2.055 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Outros

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

Autor: Alexandro Corrêa <alex.linux at gmail.com>Data: 17/11/2009

Introdução

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

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

Como identificar se estou sendoatacadoA 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. Segueabaixo 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

Block Hosts: Bloqueando ataques de força-bruta (b... http://www.vivaolinux.com.br/artigos/impressora....

1 de 6 06-12-2009 12:53

Page 2: Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Outros

(61.152.239.49[61.152.239.49]): USER Administrator: no such user foundfrom 61.152.239.49 [61.152.239.49] to 201.37.10.10:21Nov 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 foundfrom 61.152.239.49 [61.152.239.49] to 201.37.10.10:21Nov 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 foundfrom 61.152.239.49 [61.152.239.49] to 201.37.10.10:21Nov 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" serepetem dezenas ou até mesmo milhares de vezes.

Como evitar este tipo de ataque napráticaComo proteger-se?

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

Sugestões para defesa contra ataques de força bruta para SSH

Ferramenta prática para proteção:Block HostsSe mesmo seguindo as práticas mais recomendadas seus servidores continuamsendo atacados, está na hora de tomar alguma atitude mais drástica, pois maiscedo ou mais tarde alguém vai acertar um usuário e senha e a segurança do seu

Block Hosts: Bloqueando ataques de força-bruta (b... http://www.vivaolinux.com.br/artigos/impressora....

2 de 6 06-12-2009 12:53

Page 3: Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Outros

sistema pode ficar comprometida.

A ferramenta Block Hosts tem a função de monitorar os logs dos serviços e casoexistam muitas conexões inválidas de uma mesma origem ele trata de bloquearatravé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 ficarbloqueado, "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.

Instalação do Block Hosts

Para descrever a instalação está sendo considerado como base um sistemaDebian Linux versão 5.0.3 com Kernel 2.6.26-2-486. Segue abaixo descriçãopasso-a-passo em 4 itens.

PASSO 1: Faça download do arquivo ZIP da última versão do Block Hostsdisponível em:

http://www.aczoom.com/cms/blockhosts/download

Hoje a última versão disponível é 2.4.0.

PASSO 2: Instale os pacotes que são requisitos básicos necessários para ofuncionamento. São eles:

logwatchpythonpython-optcomplete

No Debian, utilize o comando "apt-get install logwatch python python-optcomplete", que irá instalar tudo automaticamente para você. Para outrossistemas, basta adaptar o processo de instalação destes pacotes.

PASSO 3: Edite o arquivo "/etc/hosts.deny" e insira no início do arquivo duaslinhas, conforme descrito abaixo:

Block Hosts: Bloqueando ataques de força-bruta (b... http://www.vivaolinux.com.br/artigos/impressora....

3 de 6 06-12-2009 12:53

Page 4: Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Outros

#---- BlockHosts Additions

#---- BlockHosts Additions

Esta é a marcação de qual parte do arquivo "hosts.deny" o Block Hosts vaiinserir suas entradas de bloqueio de IPs.

PASSO 4: Descompacte o arquivo "BlockHosts-2.4.0.zip" ou equivalente à suaversão e acesse o diretório descompactado.

Para executar a instalação, rode o seguinte comando como root:

# python setup.py install --force

Este comando instalará automaticamente todos os arquivos necessários.

Se não ocorreu nenhuma mensagem de erro, a instalação está finalizada! Agorabasta configurar.

Configuração e execução do Block Hosts

Toda a configuração está concentrada no arquivo /etc/blockhosts.cfg. O arquivode configuração tem muitos comentários e explicação de cada item (em inglês).Na prática você precisa apenas remover o caractere de comentário (#) emodificar o valor de cada item conforme sua necessidade. Mesmo assim voucomentar os principais itens:

HOSTS_BLOCKFILE = "/etc/hosts.deny"-> Onde está localizado o arquivo 'hosts.deny'

HOST_BLOCKLINE = ["ALL: ", " : deny"]-> Esta precisa apenas remover o comentário e deixar padrão, é a linha debloqueio que será inserida no arquivo 'hosts.deny'.

VERBOSE = Log.MESSAGE_LEVEL_INFO-> Define o nível de log. Para minhas necessidades o nível "info" é suficiente.

COUNT_THRESHOLD = 7-> Número de vezes que o usuário pode errar a senha. Neste caso, se errar 7vezes, será bloqueado.

AGE_THRESHOLD = 48

Block Hosts: Bloqueando ataques de força-bruta (b... http://www.vivaolinux.com.br/artigos/impressora....

4 de 6 06-12-2009 12:53

Page 5: Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Outros

-> Quanto tempo o IP de origem ficará bloqueado. Neste caso, 48 horas.

WHITELIST = [ "127.0.0.1", "192\.168\..*\..*", ]-> Lista de IPs ou range de IPs que nunca serão bloqueados. Na maioria dasvezes é interessante listar aqui a sua rede interna. Podem ser utilizadasexpressões regulares para a definição. Para saber mais sobre expressõesregulares, acesse: http://www.vivaolinux.com.br/artigo/Iniciando-no-mundo-das-expressoes-regulares-%28parte-1%29/

BLACKLIST = [ "192.168.10.1", "10\..*", ]-> Se deseja manter um IP ou range de IPs sempre bloqueados, este é o local.Também podem ser utilizadas expressões regulares.

LOGFILES = [ "/var/log/auth.log", "/var/log/proftpd/proftpd.log", ]-> Aqui você define quais serão os logs analisados. Neste caso está verificandoo log do SSH e do ProFTPd.

LOCKFILE = "/tmp/blockhosts.lock"-> Arquivo temporário de lock. Pode deixar o padrão.

Este é o básico da configuração... o restante pode ficar na configuração padrãoque já vai funcionar muito bem!

Agora o último passo... rodando via cron!

Executando o Block HostsPara execução do Block Hosts você deve adicionar uma linha no agendador detarefas Cron. Para isto edite o arquivo /etc/crontab e insira no final dele asseguintes linhas:

# Executa Block Hosts a cada 5 minutos*/5 * * * * root /usr/bin/blockhosts.py --verbose >> /var/log/blockhosts.log2>&1

Após isto basta monitorar o arquivo de log armazenado em "/var/log/blockhosts.log" que tudo deve estar funcionando corretamente! Se tudo deucerto, pode respirar aliviado, você já está mais seguro...

Espero que seja útil!

Block Hosts: Bloqueando ataques de força-bruta (b... http://www.vivaolinux.com.br/artigos/impressora....

5 de 6 06-12-2009 12:53

Page 6: Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Outros

Att,Alexandro Corrêa - Porto Alegre - RS

http://www.vivaolinux.com.br/artigo/Block-Hosts-Bloqueando-ataques-de-forcabruta-(brute-force)-em-FTP-SSH-e-outros

Voltar para o site

Block Hosts: Bloqueando ataques de força-bruta (b... http://www.vivaolinux.com.br/artigos/impressora....

6 de 6 06-12-2009 12:53