SSH: Métodos e ferramentas para invasão

Neste artigo serão abordadas as falhas históricas que já foram exploradas no SSH, ferramentas e os métodos de tentativas de invasão através deste serviço em sistemas Unix/Linux.

[ Hits: 75.471 ]

Por: Matuzalém Guimarães em 08/12/2008


Métodos de ataque



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.

Linux: Registro em log de tentativas de acesso usando brute force
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.

    Próxima página

Páginas do artigo
   1. Métodos de ataque
   2. Ferramentas de segurança/ataque SSH
Outros artigos deste autor

Segurança da Informação na Internet

Técnicas forenses para identificação da invasão e do invasor em sistemas Unix/Linux através do SSH (parte 2)

Monitoramento de redes com o Zenoss

Instalando Free Pascal Compiler no Ubuntu

Scanners de portas e de vulnerabilidades

Leitura recomendada

Hardering com Red Hat 5

Usuário especial para desligar servidores Linux

CheckSecurity - Ferramenta para segurança simples e eficaz, com opção para plugins

Criando VPN com o PFSense

Race condition - vulnerabilidades em suids

  
Comentários
[1] Comentário enviado por femars em 08/12/2008 - 17:14h

mto interessante.... parabéns!

[2] Comentário enviado por thebug em 08/12/2008 - 19:27h

Bacana o artigo, bem histórico por sinal ehehe... e em falando de história você pode incluir essa, que tal?

http://www.rootsecure.net/?p=link&l=22903

Ataques distribuídos de força brutar, com isso evitam programas que bloqueiam IP X quando tentam mais do que X tentativas...

Abraços!

Ulisses


[3] Comentário enviado por removido em 09/12/2008 - 12:37h

Artigo muito bom,parabéns

[4] Comentário enviado por aaron.binner em 09/12/2008 - 15:00h

Cara, meus parabéns, exelente artigo, são poucas as publicações deste site que possuem este nível.

[5] Comentário enviado por removido em 09/12/2008 - 22:20h

garoto mau!!! Ui, ui, ui........
kkkkkkkkkkkkkkkkkkkkkkk
;-)

[6] Comentário enviado por removido em 10/12/2008 - 17:13h

Altissímo nível,muito bom mesmo.

[7] Comentário enviado por elgio em 11/12/2008 - 17:28h

Sequestro de sessões e ataque do homem do meio são a mesma coisa. Aliás, sequestro de sessões não faz o mínimo sentido em ssh. Sequestrar uma sessão pressupõe que ela já esteja em andamento e foi "sequestrada" e, devido a criptografia, isto não é possível em SSH.

O que você chamou aqui de sequestro nada mais é do que sequestrar a tentativa de inicio de conexão justamente usando a técnica de homem do meio.

[8] Comentário enviado por thorking em 04/06/2009 - 02:14h

ae amigo mto bom cara parabens!

estou tentando resolver um wargame do astalavista e uns dos testes é brute force ssh e estava tentando essa ferramenta em py mas apresentou um erro, eu não saco nada de py pode me ajudar?

File "brutessh2.py", line 51, in ?
vict = Telnet(host_name, port)
File "/usr/lib/python2.3/telnetlib.py", line 208, in __init__
self.open(host, port)
File "/usr/lib/python2.3/telnetlib.py", line 237, in open
raise socket.error, msg
socket.error: (110, 'Connection timed out')


esse foi o erro, vlw!

[9] Comentário enviado por CaioSerrano em 08/06/2009 - 11:15h

Muito Bom esse artigo, Parabéns


[10] Comentário enviado por andrezc em 18/12/2009 - 22:07h

Interessante, mas o sequestro de sessões em ssh não rola, como o elgio disso, a criptografia no SSH não permite.

Quanto a bruteforce, já é uma técnica manjada, tem várias formas como corrigir ( Fail2ban, pam_abl e etc... ).


Abraços.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts