Você está na página 1de 5

Wireshark na Análise de Tráfego e Protocolos em Redes

Olá Pessoal.

Esse é mais um artigo que escrevi atendendo a pedido de leitores do blog e temos, dessa vez, como
temática da discussão o software Wireshark, uma ferramenta extremamente poderosa que deve fazer
parte do arsenal técnico de todo profissional da área de redes de computadores. O Wireshark é um
analisador de pacotes que, para tanto, tem capacidade de interceptar "todos" os pacotes que trafegam nas
redes e de exibir detalhes das suas informações de controle (cabeçalhos) e conteúdo (payload). O software
é gratuito, está disponível para Linux/Windows e pode ser baixado no link http://www.wireshark.org, sendo
que o guia do usuário pode ser baixado aqui.

É claro que em um artigo é impossível esgotar todas as funcionalidades dessa ferramenta fantástica, por
isso esse artigo tem três objetivos principais: (i) contextualizar a operação do software, (ii) delinear algumas
características técnicas do arranjo topológico físico/lógico da rede que podem interferir no processo de
captura dos pacotes a serem analisados e (iii) trazer dois exemplos de interpretação das saídas de pacotes
capturados.

1) Operação do Software Wireshark

Um primeiro conceito importante que o leitor deve ter em mente antes de começar a operar esse software
é que seu objetivo é trazer informações detalhadas sobre pacotes que foram previamente capturados em
um ambiente em que exista uma rede de computadores. A ação de capturar/interceptar pacotes caracteriza
uma atividade de escuta dos dados que trafegam na rede, por isso seu uso deve ser realizado por pessoal
autorizado para fazê-lo no ambiente em operação, seja para simples monitoramento de conteúdo (a
exemplo de conversas telefônicas via VoIP) ou mesmo para a identificação de problemas na rede para fins
de otimização do seu desempenho. Esses são os propósitos do software e ele não deve ser utilizado sem
autorização como sniffer de rede, o que caracteriza um ataque passivo de interceptação ao conteúdo da
rede de computadores.

Normalmente há muito tráfego que chega nas interfaces de uma rede por meio de broadcast (ou outras
tecnologias de transmissão) e que não são de interesse de uma interface específica, por isso o
comportamento padrão é que somente o tráfego de interesse das interfaces é aceito, de forma que todos
os demais pacotes são descartados. Esse é um comportamento padrão baseado na confiança que pode
ser alterado através de um método que coloca as interfaces em modo promíscuo, um estado em que elas
passam a receber e processar todos os pacotes entrantes/saintes.

O Wireshark organiza as informações de controle contidas nos cabeçalhos dos pacotes para facilitar o
processo de leitura e análise técnica, no entanto é necessário que esses pacotes sejam previamente
capturados em alguma interface de rede. Para fazê-lo o software utiliza bibliotecas que são responsáveis
por colocar as interfaces de rede em modo promíscuo.

2) Características Técnicas do Arranjo Topológico da Rede

Logo nas primeiras aulas de redes de computadores os alunos estudam conceitualmente os principais
dispositivos de interconexão onde são apresentadas as principais diferenças entredois dispositivos
concentradores: (i) HUB e (ii) Switch. Nessa ocasião os alunos aprendem que mesmo ambos os dispositivos
sendo elementos centrais (concentradores) que criam uma topologia física de estrela, o modo de operação entre
eles é distinto implicando em diferentes topologias lógicas, conforme pode ser observado na figura abaixo.
O HUB cria uma topologia lógica de barramento porque eletronicamente todas as suas portas estão ligadas em
um mesmo barramento físico, o que implica na existência de um único dominío de colisão compartilhado entre
todas as portas. Ele é um simples dispositivo repetidor que (i) recebe sinal em uma porta de entrada, (ii)
amplifica esse sinal e (iii) despacha esse sinal para todas as demais portas de saída. Como ele é um dispositivo
de camada física, não possui inteligência para analisar os cabeçalhos dos quadros.

Uma vez que a topologia lógica do HUB é de barramento, o sinal recebido em uma porta é retransmitido para
TODAS as demais portas, o que é ruim do ponto de vista de desempenho e segurança. Por causa disso é muito
simples interceptar o tráfego/conteúdo dessa rede através de algum software sniffer, já que todo sinal entre
quaisquer máquinas é propagado para todas as portas.

Por outro lado o Switch cria uma topologia lógica de estrela porque eletronicamente possui uma matriz
(denominada matriz crossbar) que permite o chaveamento de circuitos ponto-a-ponto entre duas portas
específicas, o que implica em um domínio de colisão para cada porta. Paraestabelecer esses circuitos entre duas
portas os switches são dispositivos da camada de enlace e possuem inteligência para analisar os cabeçalhos dos
quadros, motivo pelo qual eles utilizam o endereço físíco das interfaces (MAC) no processo de encaminhamento.

É comum o uso de softwares de interceptação de quadros/pacotes em redes de computadores para


fins de monitoramento e análise da "saúde" da rede. O problema de utilizar esses softwares nas redes
que possuem switch (diga-se de passagem quase todas atualmente), é que ao conectar o computador
monitorador em uma porta qualquer do switch ele não será capaz de "escutar" nenhum tráfego entre os
circuitos fechados nas demais portas. Por exemplo, uma comunicação entre dois computadores ligados nas
portas 1 e 2 de um switch não será transmitida na porta 3 (nem em qualquer outra).

É para resolver esse problema que existem as tecnologias de port-mirroring. Essa tecnologia de espelhamento
consiste em configurar uma determinada porta do switch para espelhar todo o tráfego entre os circuitos das
demais portas, daí no nome espelhamento. Ou seja, essa porta irá se tornar o "dedo-duro" da rede replicando
todo o tráfego como se fosse um HUB. Naturalmente essa porta será aquela em que o computador monitorador
estará executando o software de interceptação (sniffer). Essa discussão sobreport-mirroring já foi apresentada
em outro artigo do blog intitulado "Configuração de Espelhamento de Portas em Switch", onde o leitor pode
encontrar exemplos de configuração baseados em tecnologias Cisco.

3) Interpretação de Pacotes Capturados

Uma vez apresentados ao leitor os principais conceitos relacionados ao Wireshark, essa última parte do
artigo tem por objetivo trazer dois exemplos de como as saídas geradas pelo software podem ser
interpretadas para mostrar o que acontece nos "bastidores" de uma rede de computadores. Para fazê-lo
estarei utilizando dois exemplos clássicos com vocês, ambos baseados no processo de resolução de
endereços MAC do IPv4 (através do ARP) e do IPv6 (através do NDP/ICMPv6).

O procedimento para verificar a descoberta do endereço físico (MAC) de uma interface de rede é bastante
simples com o uso do Wireshark. Uma vez que a ferramenta faz a captura dos pacotes das redes, bem
como a ordenação dos mesmos por categoria de protocolos, fica fácil identificar toda a comunicação oriunda
dos protocolos ARP (no IPv4) e NDP (no IPv6).
Através das opções "Capture | Interfaces | Start" do Wireshark é possível iniciar a captura dos pacotes
que estão trafegando na rede. O software irá organizar a saída da maneira apresentada nas figuras abaixo.
Observem que a parte superior da tela traz várias linhas (entradas) que representam pacotes individuais e
na parte inferior existe o detalhamento das informações dos cabeçalhos e payload desses pacotes,
dispostos em conformidade com as camadas do TCP/IP. Quando o usuário clica em qualquer uma das
linhas/entradas da parte superior, então a tela inferior muda seu detalhamento.

3.1 Protocolo ARP na Resolução de Endereços IPv4 em MAC

Aqui cabe uma revisão relâmpago acerca do ARP e do processo de resolução de endereços físicos no
contexto do IPv4. Quando uma máquina quer se comunicar com outra ela conhece, a princípio, apenas o
endereço lógico (IP) do destino, no entanto é necessário saber seu endereço físico (MAC) para que as
interfaces de rede possam se comunicar na camada de enlace (tecnologia de rede).

Os sistemas operacionais armazenam uma tabela com as associações entre endereços MAC e IP
(chamada Tabela ARP) e quando não existe uma correspondência nessa tabela, então o protocolo ARP
(Address Resolution Protocol) entra em ação, conforme pode ser observado na figura abaixo. Na primeira
comunicação para um dado destino, a máquina envia uma mensagem de broadcast para toda a rede local
perguntando qual é o endereço físico da máquina que possui um determinado IP. Todas as máquinas da
rede irão receber e processar essa requisição, no entanto somente a máquina que possuir o endereço IP
procurado irá responder com a informação do seu endereço físico.

Por exemplo, nas próximas duas figuras, extraídas do Wireshark, o leitor pode observar que as linhas
destacadas são pacotes do protocolo ARP (request e reply), onde faço alguns destaques importantes que
mostram ao leitor como interpretar essas informações para compreender a operação do protocolo.
Aproveitem essa oportunidade para fazer sua análise das figuras abaixo, comparando as informações
trazidas pelo software com a explicação anterior. Veja que as informações procedem, por isso o Wireshark
é um software importante também para convencer os alunos e facilitar o entendimento dos protocolos que
operam nas redes de computadores.
3.2 Protocolo NDP na Resolução de Endereços IPv6 em MAC

Uma mudança significativa da operação do IPv6 diz respeito ao processo de resolução dos endereços
físicos, já que não existe o protocolo ARP no IPv6. No IPv6 a funcionalidade de resolução de endereços
lógicos em endereços físicos é responsabilidade do NDP (Neighbor Discovery Protocol), por meio de
mensagens ICMPv6 Tipo 135 NS (Neighbor Solicitation) e ICMPv6 Tipo 136 NA (Neighbor
Advertisement). Cabe aos sistemas operacionais manterem uma tabela de vizinhança com as associações
entre os endreços IPv6 <> MAC.

Com base na figura acima, quando o Host-A deseja se comunicar com o Host-B (2001:db8:cafe:1::1), ele
envia uma mensagem a um "grupo" de máquinas para descobrir o endereço MAC da interface configurada
com esse IPv6. Para tanto, a mensagem é destinada ao endereço multicast-solicited-node respectivo
que, nesse exemplo, é o endereço ff02::1:ff00:1. O formato do endereço solicited-node é ff02::1:ffXX:XXXX,
onde X representa os últimos 24 bits do IPv6 do destino.

O campo target do cabeçalho é preenchido com o endereço IPv6 a ser resolvido, o que evita a ambiguidade
em caso de duas ou mais máquinas terem os mesmos 24 bits finais no seu endereço. Além disso, existe
um campo de opções chamado source-link-layer-address, que é preenchido com o endereço MAC da
origem para evitar que o destino, ao receber a mensagem, tenha que refazer esse processo de resolução
de endereços para obter o MAC do vizinho antes de respondê-lo.
Na segunda etapa, assim que recebe uma NS com seu endereço IPv6 no campo target, o Host-B envia
uma mensagem NA com o seu endereço MAC no campo target-link-layer-address (00:00:00:00:AA:00),
destinado unicamente ao Host-A (origem da NS anterior). Quando a mensagem NA chega ao Host-A, já é
capaz de criar uma nova associação na sua tabela de vizinhança e, portanto, aprendeu o endereço MAC
00:00:00:AA:00 do IPv6 2001:db8:cafe:1::1.

Caso o leitor tenha dúvidas a respeito do modus operandi do IPv6, recomendo a leitura do meu livro
intitulado "IPv6 - O Novo Protocolo da Internet". As explicações trazidas nesse artigo tinham por objetivo
subsidiar o entendimento de como interpretar as saídas do Wireshark, por isso não houve aprofundamento
teórico.

Abraço.

Samuel.

Você também pode gostar