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

  • 1,954 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • muito bom
    Are you sure you want to
    Your message goes here
    Be the first to like this
No Downloads

Views

Total Views
1,954
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
22
Comments
1
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Block Hosts: Bloqueando ataques de força-bruta (b... http://www.vivaolinux.com.br/artigos/impressora.... 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 1 de 6 06-12-2009 12:53
  • 2. Block Hosts: Bloqueando ataques de força-bruta (b... http://www.vivaolinux.com.br/artigos/impressora.... (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: Sugestões para defesa contra ataques de força bruta para SSH 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 2 de 6 06-12-2009 12:53
  • 3. Block Hosts: Bloqueando ataques de força-bruta (b... http://www.vivaolinux.com.br/artigos/impressora.... 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. Instalação do Block Hosts Para descrever a instalação está sendo considerado como base um sistema Debian Linux versão 5.0.3 com Kernel 2.6.26-2-486. Segue abaixo descrição passo-a-passo em 4 itens. PASSO 1: Faça download do arquivo ZIP da última versão do Block Hosts disponí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 o funcionamento. São eles: logwatch python python-optcomplete No Debian, utilize o comando "apt-get install logwatch python python- optcomplete", que irá instalar tudo automaticamente para você. Para outros sistemas, basta adaptar o processo de instalação destes pacotes. PASSO 3: Edite o arquivo "/etc/hosts.deny" e insira no início do arquivo duas linhas, conforme descrito abaixo: 3 de 6 06-12-2009 12:53
  • 4. Block Hosts: Bloqueando ataques de força-bruta (b... http://www.vivaolinux.com.br/artigos/impressora.... #---- BlockHosts Additions #---- BlockHosts Additions Esta é a marcação de qual parte do arquivo "hosts.deny" o Block Hosts vai inserir suas entradas de bloqueio de IPs. PASSO 4: Descompacte o arquivo "BlockHosts-2.4.0.zip" ou equivalente à sua versã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! Agora basta configurar. Configuração e execução do Block Hosts Toda a configuração está concentrada no arquivo /etc/blockhosts.cfg . O arquivo de 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 (#) e modificar o valor de cada item conforme sua necessidade. Mesmo assim vou comentar 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 de bloqueio 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 7 vezes, será bloqueado. AGE_THRESHOLD = 48 4 de 6 06-12-2009 12:53
  • 5. Block Hosts: Bloqueando ataques de força-bruta (b... http://www.vivaolinux.com.br/artigos/impressora.... -> 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 das vezes é interessante listar aqui a sua rede interna. Podem ser utilizadas expressões regulares para a definição. Para saber mais sobre expressões regulares, 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á verificando o 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ão que já vai funcionar muito bem! Agora o último passo... rodando via cron! Executando o Block Hosts Para execução do Block Hosts você deve adicionar uma linha no agendador de tarefas Cron. Para isto edite o arquivo /etc/crontab e insira no final dele as seguintes linhas: # Executa Block Hosts a cada 5 minutos */5 * * * * root /usr/bin/blockhosts.py --verbose >> /var/log/blockhosts.log 2>&1 Após isto basta monitorar o arquivo de log armazenado em "/var/log /blockhosts.log" que tudo deve estar funcionando corretamente! Se tudo deu certo, pode respirar aliviado, você já está mais seguro... Espero que seja útil! 5 de 6 06-12-2009 12:53
  • 6. Block Hosts: Bloqueando ataques de força-bruta (b... http://www.vivaolinux.com.br/artigos/impressora.... 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 6 de 6 06-12-2009 12:53