᥀🔥WIRESHARK - ANÁLISE DE TRÁFEGO E PROTOCOLOS EM REDES᥀🔥

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 entre dois 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).


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.

Postar um comentário

Post a Comment (0)

Postagem Anterior Próxima Postagem