Cheswick; Bellovin; Rubin (2003) afirmam que o
SSH tornou-se uma das ferramentas vitais para a segurança computacional. Embora não concordem totalmente com essa afirmação pelo fato do SSH, [...] ser tão cheio de recursos que sua complexidade inerente está fadada a introduzir erros na implementação e na administração. (Cheswick; Bellovin; Rubin, 2003, p.158).
A versão 1 do protocolo estava em larga utilização quando se descobriu ser insegura. Descobriu-se também que até a versão 2 era suscetível a ataques de temporização estatística, conforme Song (2001 apud Cheswick; Bellovin; Rubin, 2003, p.158). Esta técnica de temporização estatística está relacionada ao fato do SSH acomodar os tamanhos de blocos dos sistemas de criptografia, a versão 2 do protocolo arredonda cada pacote a um limite de oito bytes.
No modo interativo, cada pressionamento de tecla feito por um usuário gera um novo pacote IP de tamanho e temporização distintos, e os pacotes contendo caracteres de senha não produzem pacotes de eco. Ainda segundo os autores essas propriedades ajudam ao atacante a deduzir o tamanho das senhas e informações estatísticas que chegam a aproximadamente um bit por pacote.
O protocolo SSH em suas versões 1 e 2 tem sido alvo de alguns tipos de ataques, estas formas de ataques são listadas abaixo:
Sequestro de sessões
O termo sequestro de sessão, segundo Russel (2002), refere-se à capacidade de um atacante assumir o controle de parte de uma sessão (normalmente uma conversação de rede) e agir como um dos participantes. O sequestro de sessão explora a fragilidade inerente na maioria dos tipos de rede e de protocolos não criptografados, principalmente os que transmitem as informações livremente.
Metthews (2006) explica que interceptando a comunicação com o uso de envenenamento ARP, e estabelecendo duas ligações encriptadas, uma entre a vítima, máquina atacante e outra com host de destino, o atacante obtém acesso aos dados transmitidos entre host origem e o host destino.
Cheswick; Bellovin; Rubin (2003) alertam que ferramentas como o
sshmitm e o
ettercap permitem que um atacante roube uma sessão de SSH. Durante o ataque de sequestro de sessão o servidor avisa que a chave pública do servidor é desconhecida ou não-correspondente, mas na maioria dos casos os usuários ignoram tais avisos.
Ataque de brute force (força bruta)
Mesmo com tantas camadas de proteção implementadas no SSH, um ponto amplamente explorado pelos atacantes são as senhas de acesso ao servidor.
Segundo Murilo (2007) é exatamente pela segurança obtida com o uso do SSH para acesso remoto seguro que muitos administradores de redes têm cometido falhas na escolhas das senhas.
Além das senhas fracas, outro fator de exposição é o fato de que de alguns servidores permitirem login sem a utilização de senhas. Esta opção pode ser configurada no parâmetro "PermitEmptyPasswords no" no arquivo "/etc/ssh/sshd_config" afirmam Nemeth; Snyder; Seebass; Hein (2001).
Segundo Murilo (2007) pelo fato do SSH ser flexível em seus métodos de autenticação, na prática o uso simples de usuário e senha é escolhido pela facilidade de configuração e pela facilidade de uso. No entanto as senhas fracas estão expostas a adivinhação e ataque por brute force, e este tem sido um dos principais objetivos deste tipo de investida.
Um exemplo de um registro de tentativas de ataque de força bruta pode ser visto na figura 1.
Figura 1 - Registro em log de tentativas de acesso usando "brute force"
Outro agravante neste processo, segundo Murilo (2007), é que a cada nova tentativa de conexão acaba fazendo com que com o servidor de SSH crie uma nova instância para atender a solicitação de acesso, o que acarretaria em perda de desempenho do servidor em função da demanda de solicitação e freqüência deste tipo de ataque.
Ataque man in the middle
Metthews (2006) declara que nesse caso um invasor se posiciona entre um usuário e um servidor a fim de interceptar a troca de certificados.
A primeira ação, explica Metthews (2006), é descobrir a chave pública do servidor e fornece ao usuário sua própria chave pública. Quando o usuário criptografa pacotes com a chave pública do invasor, este pode descriptografá-los e ver todas as informações contidas em cada pacote de dados, podendo até mesmo alterar estas informações e criptografá-las com a chave pública real do servidor para fazer-se passar por ele. A autora enfatiza que embora ataques como estes possam ser possíveis, eles ainda tornam o trabalho do atacante muito mais árduo.