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.
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.
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.
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:
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 no blog IBLISS DIGITAL SECURITY