Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Mão na Massa - LDAP

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Privacidade no SSH

Colaboração: Fabiano Caixeta Duarte

Data de Publicação: 19 de Junho de 2006

O ssh é um protocolo seguro para comunicações entre diferentes estações utilizado amplamente para obtenção de console textual remota e para tunelar (túneis criptografados) vários tipos de conexão.

Em 'Como melhorar a segurança no ssh' podemos ver algumas maneiras de melhorar a segurança no uso deste protocolo.

Por outro lado, há que se falar em um outro aspecto pertinente à segurança: a privacidade.

Ao utilizar aplicativos clientes do ssh (ssh, sftp, scp, etc), é armazenado em um arquivo do usuário um par de informações nome/ip e chave pública do servidor ssh acessado. Este arquivo é chamado ~/.ssh/known_hosts, ou seja, reside no diretório HOME do usuário.

Por default, o nome do host (ou seu endereço IP) é armazenado em texto plano, o que caracteriza a possibilidade de quebra de privacidade. Para melhor compreensão, imagine o seguinte contexto:

Um atacante está fazendo um target harvesting, ou seja, uma busca por alvos válidos para ataque de força bruta. Ao invés de atacar aleatóriamente um conjunto de hosts que podem não existir ou não possuir servidor ssh, faz muito mais sentido colher hosts que tenham servidores ssh.

Suponhamos que este atacante conseguiu invadir uma determinada máquina e obteve acesso root. A partir de uma varredura em todos os arquivos known_hosts dos usuários, o atacante conhecerá hosts válidos, tanto na mesma rede como em qualquer outra. Assim, ele poderá direcionar o ataque para estes hosts.

A solução

A partir da versão 4.1 do OpenSSH é possível armazenar um hash do nome de host ao invés de texto plano para garantir privacidade. Para tal, basta setar no arquivo de configuração do cliente ssh, geralmente localizado em /etc/ssh/ssh_config a opção HashKnownHosts da seguinte maneira:

  HashKnownHosts yes

Naturalmente este procedimento deve ser feito pelo administrador do sistema. Não é necessário reiniciar o serviço, uma vez que esta alteração afeta apenas o funcionamento dos programas clientes de ssh.

A partir de então, todas as entradas que forem inseridas pelo ssh no arquivo known_hosts conterão o hash do nome/IP do host. As entradas pre-existentes permanecerão em texto plano. Para sanar este 'problema' pode-se converter as entradas a partir do seguinte comando:

  $ ssh-keygen -H

Cada usuário deve realizar este procedimento. Naturalmente, por meio de algum script específico, o usuário root pode automatizar a rotina para todos os usuários.

Efeito colateral

Existem alguns raros casos em que você pode precisar excluir uma entrada específica no arquivo known_hosts. Exemplo: o servidor em que você costuma se autenticar foi formatado. Na primeira execução do serviço ssh, é definida uma nova chave. Por default, o cliente ssh vai reclamar da diferença entre a chave pré-existente e a atual. Isto ocorre para alertar você que talvez você esteja se conectando a algum outro host como parte de um ataque de IP/DNS spoofing.

Como não é o caso, você vai precisar excluir a entrada antiga. Mas como fazer se você não tem o hostname em texto plano? Isto pode ser feito de forma muito fácil utilizando novamente o utilitário ssh-keygen da seguinte maneira:

  $ ssh-keygen -R <hostname>

Onde hostname é o nome do servidor ssh cuja entrada você quer remover.

Conclusão

A preocupação com segurança é algo quase paranóico. Infelizmente não pode ser diferente, uma vez que os crackers não descansam. Assim, mesmo se tratando de um protocolo/programas voltados à criação de um ambiente seguro, o ssh - servidor e cliente -, precisa estar bem configurado para evitar outros problemas de segurança.

Referências

Veja a relação completa dos artigos de Fabiano Caixeta Duarte

Stumble Upon Digg This Del.icio.us Twitter Recomendar este artigo a um amigo Entre em contato Formato PDF
Newsfeed RSS
Formato para impressão
StumbleUpon Digg Del.icio.us Twitter Recomendar Contato PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.01/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (436 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script

English for Reading and Listening
Enriqueça o seu vocabulário recebendo diariamente mensagens divertidas em inglês, com áudio em MP3.
Saiba mais

Biblioteca

Desenvolvendo Websites com PHP
Por Juliano Niederauer

O Monge e o Executivo: uma História sobre a Essência da Liderança
Por James C. Hunter

Extreme Programming
Por Vinicius Manhaes Teles

UML: Guia do Usuário
Por Grady Booch, James Rumbaugh e Ivar Jacobson

O Vendedor de Sonhos
Por Augusto Cury

Segurança de Redes em Ambientes Cooperativos
Por Emilio Tissato Nakamura e Paulo Licio de Geus

O Conhecimento em Rede
Por Carlos Nepomuceno e Marcos Cavalcanti

Utilizando UML e Padrões
Por CRAIG LARMAN

Sistema de Banco de Dados
Por Abraham Silberschatz

Hardware PC: Guia de Aprendizagem Rápida
Por Carlos E. Morimoto

Manual Completo do Linux: Guia do Administrador
Por Evi Nemeth, Trent R. Hein, Garth Snyder

Redes de Computadores e a Internet
Por James F. Kurose e Keith W. Ross

O Segredo
Por Rhonda Byrne

Os Segredos da Mente Milionária
Por T. Harv Eker

Construindo Sites com CSS e (X)HTML
Por Mauricio Samy Silva

Use a Cabeça!: JSP & Servlets
Por Brian Bashan, Kathy Sierra, Bert Bates

Expressões Regulares: Uma Abordagem Divertida
Por Aurélio Marinho Jargas

Qualidade de Software
Por Andre Koscianski Michel dos Santos Soares

Descobrindo o Linux: Entenda o Sistema Operacional GNU/Linux
Por Joao Eriberto Mota Filho

Enterprise Javabeans 3.0
Por Bill Burke, Richard Monson