De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Como mitigar a vulnerabilidade OpenSSH keyboard-interactive authentication brute force

Colaboração: Alexandro Silva

Data de Publicação: 22 de julho de 2015

O keyboard-interactive[1] é um método utilizado pelo OpenSSH que permite a autenticação usando vários recursos como o RADIUS, PAM, RSA security token, etc.

Algumas distribuições Linux desabilitam esse recurso por padrão, o mesmo não ocorre no FreeBSD. Em sistemas Linux o keyboard-interactive costuma ser ativado por administradores que desejam utilizar outro método de autenticação como o PAM ( Plugin Autentication Module), por exemplo.

A Vulnerabilidade

Uma vulnerabilidade descoberta pelo pesquisador KingCope [2]permite executar ataques de força bruta ao SSH através do bypass do MaxAuthTries [3], opção que limita o número máximo de tentativas de autenticação, cujo valor padrão são 6 tentativas.

O tempo do ataque é limitado pelo parâmetro LoginGraceTime, opção que limita o tempo de desconexão se a autenticação não for bem sucedida, sendo que o valor padrão são de 120 segundos.

Mitigando o ataque

Várias ações podem ser implementadas para mitigar esta e outras vulnerabilidades.

1. Adotar boas práticas de configuração (hardening) do serviço SSH,como:

  • Alterar a porta padrão
  • Desabilitar o login usando o usuário root
  • Usar a autenticação usando chaves SSH[4] ao invés de senha.
  • Reduza o valor do parâmetro LoginGraceTime

2. Filtrar o acesso através do firewall apenas para hosts autorizados, o exemplo abaixo pode ser utilizado no iptables

  -A INPUT -s 200.123.123.123/32 -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT

3. Se não for possível filtrar o acesso estabeleça limites, como exemplificado abaixo para o iptables:

  -A INPUT -i eth0 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name SSH --mask 255.255.255.255 --rsource 
  -A INPUT -i eth0 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH --mask 255.255.255.255 --rsource -j LOGDROP 
  -A LOGDROP -m limit --limit 5/min --limit-burst 10 -j LOG 
  -A LOGDROP -j DROP

4. Utilizar o Port Knocking [5]. Método de proteção por obscuridade que permite definir uma sequência específica para a liberação de acesso a uma porta.

5. Utilizar o OSSEC HIDS[6]. Ferramenta de proteção permite identificar diversos ataques, inclusive de força bruta, bloqueando sua origem.

Este artigo foi publicado originalmente por Alexandro Silva em http://www.ibliss.com.br/blog/como-mitigar-a-vulnerabilidade-openssh-keyboard-interactive-authentication-brute-force/

Referências

  1. RFC4256 Generic Message Exchange Authentication for the Secure Shell Protocol (SSH)
  2. OpenSSH keyboard-interactive authentication brute force vulnerability (MaxAuthTries bypass)
  3. Man page OpenSSH
  4. How To Configure SSH Key-Based Authentication on a Linux Server
  5. How To Use Port Knocking to Hide your SSH Daemon from Attackers on Ubuntu
  6. OSSEC

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Alexandro Silva