SNIFFER

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 Como detectar um ataque de um sniffer Como bloquear ataques de sniffer. Criptografia Tecnologias de one-time password Interfaces não promiscuas

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ístuo 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ístuo, obter qualquer senha, inclusive a do root, usando um sniffer.
NotaTD: O padrão Token Ring também permite modo promístuo.

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ístuo 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ístuo, 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ístuo.

Em sistemas como Solaris, SCO e algumas versoes do Irix, não existe indicação de modo promístuo, 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ístuo.

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.

ecnologias 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ístuo usando o Gobbler. Caso você encontre alguma destas que funcione em modo promístuo, por favor envie uma mensagem para cklaus@iss.net e ela será removida.

NotaTD: Em determinadas circustâncias, uma placa em modo promístuo, 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ístuo, 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ístuo. 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ístuo. Neste caso a placa envia um o aviso "Trace Tool Present"

Em sistemas Unix onde existe a indicação de modo promístuo, use o seguinte comando para retirar a interface deste modo:
# ifconfig XXX -promisc
onde XXX é a identificação da interface.

Retirado da Guns Hot Home Page

1