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
|