Administração de Sistemas e Segurança n.08 (fevereiro/2000 )

Proteja suas Senhas Contra Sniffers

A sua senha é difícil de ser "quebrada", você troca com uma certa regularidade e um belo dia você é surpreendido ao receber acusações de invasão. Evidências indicam que invasões a contas de terceiros partiram de sua conta e você não tem a menor idéia do que está acontecendo. Isto é, alguém pode ter feito uso de sua conta e realizou estes atos como sendo você. Como isso pode ter acontecido? Uma forte possibilidade é que você tenha sido vítima de um ataque de "sniffer". Mas, o que é isso?

"Sniffers" são programas que permitem a um atacante roubar sua senha e assim utilizar a sua conta como se fosse você.

Estes tipos de ataques são comuns. É muito importante que você, como usuário Internet, tenha consciência de como suas senhas são vulneráveis e como tomar medidas apropriadas para tornar sua conta mais segura. Selecionar uma boa senha e regularmente trocar de senha ajuda bastante, mas também é muito importante que se conheça quando se está vulnerável a "sniffers" e como lidar com eles.

O que é um "sniffer"?

Programas que permitem monitorar a atividade da rede registrando nomes (username, e senhas) sempre que estes acessam outros computadores da rede.

Estes programas ficam monitorando ("xeretando") o tráfego da rede para capturar acessos a serviços de redes, tais como: serviço de email remoto (IMAP, POP), acesso remoto (telnet, rlogin, etc), transferência de arquivos (FTP), etc. Acessos feitos, pacotes capturados. Sempre com o objetivo de pegar a identificação de acesso a conta do usuário.

Quando sua senha pode ser capturada por "sniffers"?

Muitas redes locais (LANs) são configuradas compartilhando um mesmo segmento de rede Ethernet. Praticamente qualquer computador desta rede pode executar um programa "sniffer" para "roubar" senhas dos usuários. "Sniffers" atuam monitorando o fluxo de comunicação entre os computadores da rede para descobrir quando alguém utiliza os serviços de rede mencionados anteriormente. Cada um destes serviços utiliza um protocolo que define como uma sessão é estabelecida, como sua conta é identificada e autenticada e como o serviço é utilizado.

Para ter acesso a um destes serviços, você primeiro tem que efetuar um "log in". É na sequência de login -- a parte de autenticação destes protocolos, a qual ocorre no início de cada sessão -- que os "sniffers" estão interessados, porque é nesta parte que está a sua senha. Portanto, é só filtrar as "strings" chaves que a senha é obtida.

A figura seguinte mostra o processo de "conversação" entre duas máquinas remotas, onde a identificação do usuário passa "abertamente" pela rede de uma máquina para outra. Neste exemplo transferência de arquivos via FTP.

A máquina A inicia a conexão com a máquina B, que solicita identificação do usuário. Este ao se autenticar na máquina remota B tem sua senha capturada pelo "sniffer" de plantão.

Como "sniffers" são implantados e as senhas capturadas?

Para entender como um "sniffer" funciona, você precisa saber que cada computador em uma LAN compartilhada pode "ver" todos os pacotes de dados que transitam de um computador a outro desta LAN. Assim, cada computador desta rede pode executar um programa "sniffer" que "olha" os pacotes e salva uma cópia em arquivo.

Basicamente, os seguintes passos são executados por atacantes (veja ilustração a seguir): (1) o atacante ao penetrar em sua rede, quebrando uma determinada máquina; (2) instala um programa "sniffer"; (3) este programa monitora a rede em busca de acesso a serviços de rede, as capturas são realizadas e registradas em um log file; (4) em seguida o arquivo de log é recuperado pelo atacante.

Por quê roubar sua senha?

Existem diversas razões que levam pessoas a roubarem senhas, desde para simplesmente aborrecer alguém (enviando email como sendo você) até para praticar atividades ilegais (invasão em outros computadores, "roubo" de informações, etc.). Um atrativo para os hackers é a capacidade de utilizar a identidade de terceiros nestas atividades.

Uma das principais razões que atacantes tentam quebrar sistemas e instalar "sniffers" é poder capturar rapidamente o máximo de contas possível. Assim, quanto mais contas este atacante possuir, mais fácil fica ocultar o seu esconderijo.

Como você pode se proteger?

Não fique pensando que "sniffers" podem tornar toda a Internet insegura. Não é isso. Você precisa ter consciência de onde o risco está, quando você está em risco e o quê fazer para estar a salvo.

Quando você tem seu cartão de crédito roubado ou desconfia que alguém pode estar utilizando-o indevidamente, você cancela o cartão e solicita outro. Da mesma forma, como senhas podem ser roubadas, é fundamental que você a troque regularmente. Esta precaução limita a quantidade de tempo que uma senha roubada possa ser utilizada por um atacante.

Nunca compartilhe sua senha com outros. Este compartilhamento torna difícil saber onde sua senha está sendo utilizada (e exposta) e é mais difícil detectar uso não autorizado.

Nunca forneça sua senha para alguém alegando que precisa acessar sua conta para corrigir algum problema ou quer investigar uma "quebra" do sistema. Este truque é um dos métodos mais eficazes de hacking, conhecido como "engenharia social".

Utilize redes que você possa confiar

Um outro aspecto que você deverá levar em consideração é quê rede você pode confiar e quais não pode. Se você estiver viajando e necessita acessar computadores de sua organização remotamente. Por exemplo, pegar algum arquivo em seu home directory e você tem disponível um "CyberCafé" ou uma rede de outra organização. Você tem certeza que pode confiar naquela rede?

Se você não tiver nenhuma alternativa para acesso remoto seguro e só tem disponível recursos como telnet, por exemplo, você pode "atenuar" este efeito trocando a senha ao final de cada sessão. Lembre-se que somente os primeiros pacotes (200 a 300 bytes) de cada sessão carregam informações de seu "login". Portanto, ao trocar sempre sua senha antes de encerrar a sessão, esta não será capturada e a senha anterior que esteve exposta à rede não será mais válida. É claro que é possível se capturar tudo que passar pela rede, mas atacantes não tem interesse de lotar o sistema de arquivo rapidamente e com isso ser facilmente descobertos.

Porquê redes continuam vulneráveis a "sniffers" por muito tempo?

Existem várias razões e não existe uma solução rápida para o problema.

Parte do problema é que as empresas tendem a investir mais em novos recursos do que em adicionar segurança. Novas funcionalidades de segurança podem deixar os sistemas mais difíceis de configurar e menos convenientes para utilizar.

Uma outra parte do problema está relacionada a custos adicionados por switches Ethernet, hubs, interfaces de rede que não suportam o modo especial "promiscuous" que "sniffers" podem utilizar.

Como detectar um "sniffer" na rede?

Não é fácil, na verdade pode se tornar uma tarefa muito difícil. "Sniffers" são aplicações passivas, não geram nada que possa ser sentido facilmente pelos usuários e/ou administratores. Em geral, não deixam "rastros".

Uma maneira de detectar um "sniffer" é verificar todo os processo em execução. Isto não é totalmente confiável, mas é um bom ponto de partida. Comandos para listar processos em execução variam de plataforma para plataforma. Se você estiver em uma máquina Unix, o "sniffer" aparecerá em uma lista do comando "ps", a menos que este "ps" seja um "trojan" (programa implementado pelo atacante que aparentemente funciona como o esperado, mas efetuar funções desconhecidas pelo usuário).

Uma outra alternativa é procurar por um "sniffer" conhecido. Existe uma grande chance do atacante estar utilizando uma versão "freeware". Obviamente, existe a possibilidade do atacante ter escrito o seu próprio "sniffer" e neste caso a busca fica mais difícil. Você teria que gastar mais tempo em analisar o que pode ter sido alterado pelo atacante. Por exemplo, comparar backup de dias diferentes ou utilizar alguns programas que possam ajudá-lo nesta atividade, como: TripWire, ATP e Hobgoblin que são programas interessantes para checagem da integridade do sistema e arquivos.

"Sniffers" podem ser "escondidos" (ou melhor, "disfaçados") na listagem do "ps" (o próprio "ps" como a maioria dos programas também pode). Basta trocar o argumento do seu argv[0] (o primeiro argumento) para um nome qualquer e não parecerá ser um programa suspeito que esteja em execução.

Alguns utilitários permitem identificar se o seu sistema encontra-se em modo "promiscuous" e levá-lo a encontrar uma máquina suspeita.

O que se está fazendo?

Muitas organizações que estão atentas a este problema utilizam:

  • Placas de redes que não podem ser colocadas em modo "promiscuous". Assim, os computadores não podem ser "apoderados" e transformados em "sniffers".
  • Normalmente, a interface Ethernet passa somente pacotes até o protocolo de nível mais alto que são destinados a máquina local. Esta interface em modo promiscuous permite que todos os pacotes sejam aceitos e passados para a camada mais alta da pilha de protocolos. Isto permite que a seleção do que se deseja.
  • Pacotes que criptografam dados que transitam pela rede, evitando assim que senhas trafeguem "às claras".

Considerando o último ítem, se a sua organização adota e estimula o uso de software que permitam estabelecer sessões de acessos remotos criptografadas, ajudará em muito a tornar seu ambiente mais seguro. Porém, para uma segurança mais efetiva somente quando implementado em TODOS os computadores que você utiliza em sua empresa, em sua casa e nas organizações fora se sua empresa que eventualmente tenha conta.

Uma das tecnologia de encriptação bastante comum atualmente na comunicação segura entre máquina remota é SSH (Secure Shell). O SSH encontra-se disponível para diferentes plataformas. O seu uso não impede que a senha capturada, mas como esta encontra-se criptografada não servirá para o atacante. SSH negocia conexões utilizando algoritmo RSA. Depois que o serviço é autenticado, todo o tráfego subsequente é encriptado utilizando tecnologia IDEA. Este tipo de criptografia é bastante forte.

No futuro, a segurança será cada vez mais intrínseca aos sistemas e nas infraestruturas de redes. Não adianta ter todos os "aparatos" de segurança que você precisa, mas não utilizá-los. Segurança não é algo que se possa garantir totalmente. Lembre-se, ninguém está 100% seguro.

Referências:

  • CERT Advisory CA-94:01, Ongoing Network Monitoring Attacks, Feb. 1994.
  • D.Dittrich, Network"sniffers" & You. Washington University/CAC, Jan. 1998.
  • "Anonymous", Maximum Security, Sams.net Pub., 1997.

por Antonio Figueiredo <antonio@dca.fee.unicamp.br>

O que você achou deste Artigo ?
Qualidade  Abordagem do Assunto
Excelente Medio Fraco Objetiva ExtensaReduzida
Comentário: