Conheça a nossa empresaNotícias de informática e segurançaBoletins, artigos, livros e dicas sobre segurançaO que oferecemosArquivos sobre segurançaUm apoio culturalFale com a Pangeia

 


 

 

 

SEGURANÇA

Informações sobre Sniffer

Este documento é fortemente calcado na versão 1.7
do Sniffer FAQ escrito por:
Christopher William Klaus Voice: (404)441-2531. Fax: (404)441-2431
Internet Security Systems, Inc. Computer Security Consulting
2000 Miller Court West, Norcross, GA 30071

Gentilmente enviado por: Pedro A M Vazquez (vazquez@IQM.Unicamp.BR)

O presente documento visa auxiliar administradores a compreender os problemas relacionados com sniffing e as possíveis soluções.
A ação de Sniffers é, atualmente, um dos principais problemas de segurança.
Este FAQ consiste nos seguintes tópicos:

O que é sniffer e como ele funciona

Computadores em rede compartilham canais de comunicação. Isso é, obviamente, muito mais barato que passar um cabo para cada par de computadores e usar um switch (hub) pra comutar as conexões. Neste canais compartilhados, computadores podem receber informações enviadas a outros computadores. A ação de capturar informações destinadas a uma outra máquina é chamada sniffing.

O padrão Ethernet envia um pacote para todas as máquinas em um mesmo segmento. O cabecalho do pacote contem o endereço da máquina destino. Supoe-se que somente a máquina que tenha o endereço contido no pacote receba-o. Diz-se que um computador está em modo promíscuo quando o mesmo captura todos os pacotes, independentemente de serem ou não destinados a ele.

Em um ambiente de rede normal, os nomes e as senhas dos usuários sao passadas atraves da rede em claro, ou seja, texto não criptografado. Não é dificil, portanto, um intruso utilizando uma máquina com interface de rede em modo promíscuo, obter qualquer senha, inclusive a do root, usando um sniffer.

NotaTD: O padrão Token Ring também permite modo promíscuo.

 

Como detectar um ataque de um sniffer

Para detectar um dispositivo sniffer que somente coleta dados e não responde a nenhuma solicitacao, é necessario o exame fisico de todas as conexões ethernet e a verificação individual das interfaces.

Um sniffer, rodando em uma máquina, coloca a interface de rede em modo promíscuo com o intuito de capturar todos os pacotes de um determindado segmento. Na maioria dos sistemas Unix é possivel detectar uma interface promiscua.

Note que é possivel usar um sniffer em modo não promíscuo, porem somente poderao ser capturados os pacotes enderecados para a máquina onde ele está rodando.

Para SunOs, NetBSD, e diversos derivados de BSD Unix systems, o comando

 
      # ifconfig -a
 
  mostrará informações relativas a todas as interfaces.


lo        Link encap:Local Loopback  
          inet addr:127.0.0.0  Bcast:127.255.255.255  Mask:255.0.0.0
          UP BROADCAST LOOPBACK RUNNING  MTU:2000  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0
          TX packets:16930 errors:0 dropped:0 overruns:0

eth0      Link encap:10Mbps Ethernet  HWaddr 00:80:A8:C3:45:ED
          inet addr:200.239.53.1  Bcast:200.239.53.255  Mask:255.255.255.0
          UP BROADCAST RUNNING PROMISC  MTU:1500  Metric:1
                               ^^^^^^^
          RX packets:227622 errors:0 dropped:0 overruns:0
          TX packets:282918 errors:0 dropped:0 overruns:0
          Interrupt:10 Base address:0x300 

A utilização do comando "ifconfig" no DEC OSF/1, IRIX e em alguns outros Unix, requer que o dispositivo seja especificado. Uma maneira de saber o nome deste dispositivo é utilizar o comando

 
      # netstat -r

  que mostrará a seguinte saída:

      Routing tables
 
      Internet:
      Destination      Gateway            Flags     Refs     Use  Interface
      default          iss.net            UG          1    24949  le0
      localhost        localhost          UH          2       83  lo0
 
  Assim, para testar a interface utiliza-se o comando:
 
      # ifconfig le0
      le0: flags=8863
              inet 127.0.0.1 netmask 0xffffff00 broadcast 255.0.0.1

No Ultrix é possivel detectar o uso de sniffer com os comandos pfstat e pfconfig.

pfconfig mostra quem está rodando o sniffer e o pfstat mostra se a interface está ou não em modo promíscuo.

Em sistemas como Solaris, SCO e algumas versoes do Irix, não existe indicação de modo promíscuo, não havendo, portanto, maneiras de detectar o uso do sniffer.

Como o volume de informações que trafegam em uma rede tente a ser grande, grande também sera o tamanho do log gerado pelo programa sniffer. Pacotes como o tigger tentam encontrar arquivos de log, com esta característica.

É altamente recomendado o uso da ferramenta lsof (disponível em ftp://coast.cs.purdue.edu/pub/Purdue/lsof) para procurar arquivos de log e programas acessando dispositivos como o /dev/nit (no caso do SunOS).

Não são conhecidos comandos para detectar um IBM PC compativel em modo promíscuo.

Bloqueando ataques de sniffer

Hubs ativos e switches enviam um pacote somente para a máquina destino, tornando a ação no sniffer sem efeito. Note que isto somente funciona em circuitos 10 base T.

Criptografia

Fazendo uso de criptografia entre as conexões, os pacotes podem ser capturados, porem não podendo serem decifrados, são inuteis.

NotaTD: Existem nos EUA, atualmente, leis que proibem a exportação de algorítimos de criptografia e restingem a 40 bits o tamanho das chaves para softwares exportados.

Tecnologias de one-time password

S/key e outras tecnologias de one-time password tornam sem efeito a ação do sniffer, já que a cada conexão uma nova senha deve ser informada. O uso desta tecnologia permite usar um canal inseguro, por que não existe reutilização de uma mesma senha.

Esta tecnologia é baseada em desafio/resposta e funciona da seguinte maneira: A cada pedido de conexão o usuário recebe um desafio que deve ser informado ao dispositivo de one-time password (normalmente um maquininha semelhante a uma calculadora), que por sua vez devolve a uma resposta, que deverá ser usada como senha, para aquela, e somente para aquela conexão. SecureID, SNK e CryptoCard, por exemplo, usam cartões como máquina de resposta.

S/key está disponível em ftp//:thumper.bellcore.com:/pub/nmh/skey

Outras tecnologias de one-time password usam um cartão que gera, a cada determindado intervalo de tempo (1 minuto, 30 segundos, etc.), uma senha que permite a aquele usuário se conectar naquele instante.

Interfaces não-promiscuas

As interfaces abaixo foram testadas para modo promíscuo usando o Gobbler. Caso você encontre alguma destas que funcione em modo promíscuo, por favor envie uma mensagem para cklaus@iss.net e ela será removida.

NotaTD: Em determinadas circustâncias, uma placa em modo promíscuo, e um sniffer podem (e muito) auxiliar um adminstrador a capturar pacotes para resolver problemas da instalação.

    IBM Token-Ring Network PC Adapter
    IBM Token-Ring Network PC Adapter II (short card)
    IBM Token-Ring Network PC Adapter II (long card)
    IBM Token-Ring Network 16/4 Adapter
    IBM Token-Ring Network PC Adapter/A
    IBM Token-Ring Network 16/4 Adapter/A
    IBM Token-Ring Network 16/4 Busmaster Server Adapter/A

Em relação as seguintes placas, existem rumores que elas permitem o modo promíscuo, mas a veracidade destes rumores é duvidosa.

    Microdyne (Excelan) EXOS 205
    Microdyne (Excelan) EXOS 205T
    Microdyne (Excelan) EXOS 205T/16
    Hewlett-Packard 27250A EtherTwist PC LAN Adapter Card/8
    Hewlett-Packard 27245A EtherTwist PC LAN Adapter Card/8
    Hewlett-Packard 27247A EtherTwist PC LAN Adapter Card/16
    Hewlett-Packard 27248A EtherTwist EISA PC LAN Adapter Card/32
    HP 27247B EtherTwist Adapter Card/16 TP Plus
    HP 27252A EtherTwist Adapter Card/16 TP Plus
    HP J2405A EtherTwist PC LAN Adapter NC/16 TP

Adaptadores baseados no chipset TROPIC geralmente não suportam modo promíscuo. Este chipset é usado na placa Token Ring da IBM. Outros vendedores (notamente 3Com) também usam este chipset. Note que placas com chipset TROPIC com EPROMs especiais, todavia, podem aceitar modo promíscuo. Neste caso a placa envia um o aviso "Trace Tool Present"

Em sistemas Unix onde existe a indicação de modo promíscuo, use o seguinte comando para retirar a interface deste modo:

    # ifconfig XXX -promisc
 
  onde XXX é a identificação da interface.

Agradecimentos:

Pedro A M Vazquez (vazquez@IQM.Unicamp.BR)

Copyright:
Este documento foi fortemente baseado na versão 1.7 de
Christopher Klaus of Internet Security Systems, Inc.
cklaus@iss.com

Tradução, condensação e acréscimos:
Nelson Murilo - Pangéia Informática (nelson@pangeia.com.br)
Leonardo Bentes - Pangéia Informática (leo@pangeia.com.br)

Este documento pode ser distribuido gratuitamente, desde que mantidos os devidos créditos.
As informações contidas neste documento podem sofrer alterações sem aviso prévio.

Por favor envie sugestões, atualizações e comentários para:
Nelson Murilo nelson@pangeia.com.br

 


Voltar
Início

Copyright © 1995 - 2004 Pangeia Informática LTDA. Todos os direitos reservados.