Conceito sobre ataque Brute Force via SSH
- O ataque de brute force ou força bruta é uma técnica que consiste em tentativas de descoberta de senhas/logins através de processos ou programa.
- Como é inviável que esse tipo de ataque seja feito manualmente, existem diversos programas específicos para essa técnica.
- Basicamente o programa le um arquivo e realiza o ataque ao servidor. No conteúdo do arquivo utilizado, são configurados letras e números em diversas línguas.
- Existem também algumas bases de usuário/senha que estão disponíveis em sítios na Internet e vários atacantes estão montando suas próprias listas e ferramentas para utilizar esse ataque.
- Essa atividade maliciosa é uma estratégia de invasão ao seu servidor com o intuído recuperar informações confidenciais ou utilizá-lo para realizar outros ataques.
Veja um exemplo de um registro:
Sep 21 12:02:13 srv sshd[ 48780 ]: Failed password for invalid user ricky from 192.0.2.251 port 59218 ssh2 Sep 21 12:02:14 srv sshd[ 48782 ]: Failed password for invalid user roy from 192.0.2.251 port 59268 ssh2 Sep 21 12:02:15 srv sshd[ 48784 ]: Failed password for invalid user roy from 192.0.2.251 port 59316 ssh2 Sep 21 12:02:17 srv sshd[ 48786 ]: Failed password for invalid user roy from 192.0.2.251 port 59358 ssh2 Sep 21 12:02:18 srv sshd[ 48788 ]: Failed password for invalid user roy from 192.0.2.251 port 59405 ssh2 Sep 21 12:02:19 srv sshd[ 48790 ]: Failed password for invalid user roy from 192.0.2.251 port 59452 ssh2 Sep 21 12:02:20 srv sshd[ 48792 ]: Failed password for invalid user roy from 192.0.2.251 port 59491 ssh2
- Note, também, que cada tentativa de conexão faz com que o servidor SSH abra uma nova instância para atender ao possível acesso, fato que pode comprometer seriamente o desempenho do servidor, em função da quantidade de tentativas e freqüência da incidência dos ataques.
- Existem maneiras de se defender desse tipo de ataque, que vão desde uma simples troca de porta do serviço até configurações de novos serviços e regras em firewall.
- As sugestões abaixo podem ser adotadas de forma isolada, mas não existe nenhum impedimento em combiná-las, muito pelo contrário, a adoção de várias delas combinadas é altamente recomendável.
Utilize um senha com letras, números e caracteres especiais
- Para alterar a senha de usuário utilize o comando:
passwd [ nome_do_usuario ]
- Insira a nova senha, conforme o exemplo:
root@cpro0600:~# passwd usuario_ajuda Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
Obs:
Alterar o serviço para uma porta não padrão
- Alterar o serviço de SSH para um porta não padrão já reduz a vulnerabilidade de seu servidor.
Procedimento para Ubuntu:
- Para alterar a porta de acesso via ssh, acesse o seu servidor pelo console.
- Acesse o servidor com o usuário root ou equivalente;
- Acesse o diretório raiz do servidor:
root@cpro:~# cd /
- Acesse a pasta /etc/ssh;
root@cpro:~# cd /etc/ssh
- Localize o arquivo ssh_config
root@cpro:/etc/ssh# ls -l
- Acesse o arquivo ssh_config
root@cpro:/etc/ssh# vim ssh_config
- Na linha port 22, altere para o valor (22) pela porta de sua preferência;
- Salve o arquivo;
- Ainda na pasta /etc/ssh, acesse o arquivo ssh_config;
- Na linha port 22, altere para o valor (22) pela porta de sua preferência;
- Reinicie o serviço de SSH;
root@cpro0600:/etc/ssh# service ssh restart ssh start/running, process 15026
Filtrar o acesso por IP
- Vários servidores não têm a real necessidade de manter o serviço exposto para qualquer origem, em geral um número limitado de redes/usuários deveriam acessar, remotamente, um determinado servidor, mas estes costumam ser deixados sem limites por conta da conveniência.
- Uma vez definidas de quais redes que o administrador efetivamente necessitaria ter acesso remoto, podem ser criadas regras de acesso às portas determinando o IP de origem.