12 Analisadores de Pacotes de Rede: Guia Completo para Sysadmins e Analistas de Segurança

A sua infraestrutura de rede é fundamental para o funcionamento da sua empresa. É crucial ter um entendimento claro do que se passa nos bastidores.

O ambiente dos negócios digitais passou por uma transformação significativa. O que começou com simples Scripts CGI em Perl, evoluiu para implementações complexas e automatizadas em clusters usando Kubernetes e outras plataformas de orquestração (desculpe o jargão, mas essa é a realidade atual!).

Uma aplicação web moderna típica, distribuída em contêineres (fonte: medium.com)

Apesar das mudanças, é interessante notar que os princípios fundamentais permanecem os mesmos desde os anos 70.

Toda a nossa tecnologia é construída sobre camadas de abstrações, sustentadas por cabos físicos que formam a base da rede (e também redes virtuais, mas o conceito é o mesmo). Podemos dividir a rede em camadas de acordo com o modelo OSI, mas no final, estamos sempre a lidar com Protocolos TCP/IP (preparar-se para uma leitura densa!), pings e routers, tudo com o objetivo comum de transmitir pacotes de dados.

O Que é um Pacote de Rede?

Independentemente da atividade – seja comunicação, streaming de vídeo, jogos ou compras online – tudo se resume a uma troca de pacotes de dados entre computadores (ou redes). Um “pacote” é a menor unidade de informação que circula em uma rede, e existe um método específico para a sua criação e verificação (assunto complexo, mas pode saber mais aqui).

Fluxo de pacotes em uma rede (fonte: training.ukdw.ac.id)

Cada pacote representa uma etapa no processo e é transmitido na origem e verificado no destino. Mesmo se for apenas um único pedido, o processo aguarda até que todos os pacotes, na ordem correta, sejam recebidos. Só então eles são reunidos para formar os dados originais (por exemplo, uma imagem).

Agora que compreendemos o que é uma rede, é importante entender o papel de um analisador de rede. Esta ferramenta permite examinar pacotes específicos na sua rede.

Mas, qual a utilidade disso? É o que vamos explorar a seguir.

Por Que Analisar Pacotes?

Pacotes são os blocos de construção do tráfego de dados, tal como os átomos são os blocos básicos da matéria (ok, não são partículas fundamentais, mas a analogia funciona). Ao analisar materiais, raramente nos preocupamos com o que um átomo individual está a fazer. Então, porque nos preocuparmos com um único pacote de rede? O que podemos aprender que já não sabemos?

É difícil convencer da importância da análise de pacotes até que se enfrente um problema, mas vou tentar.

Analisar pacotes é como investigar minuciosamente para identificar a causa raiz de um problema. Geralmente, esta análise torna-se necessária quando todas as outras soluções falham. Isso inclui situações como:

  • Perda inexplicável de dados confidenciais, sem indícios de violação;
  • Diagnóstico de aplicações lentas sem causa aparente;
  • Garantir que um sistema/rede não foi comprometido;
  • Verificar se alguém está a utilizar o seu Wi-Fi indevidamente;
  • Identificar por que um servidor está lento, apesar do tráfego baixo.

Em resumo, a análise de pacotes é útil para obter provas concretas. Se souber como realizar esta análise e tiver os dados certos, poderá evitar ser acusado injustamente de um ataque ou ser rotulado como um desenvolvedor ou administrador de rede incompetente.

É tudo uma questão de análise! (fonte: dailydot.com)

Num caso real, um comentário encontrado aqui resume bem a importância da análise de pacotes:

“Uma aplicação essencial para a minha empresa apresentava problemas de desempenho, causando falhas em várias instalações de clientes. Era uma aplicação de preços de ações usada em empresas financeiras em todo o mundo. A análise detalhada do TCP permitiu-me descobrir que o problema era na implementação do TCP do fornecedor do sistema operacional. O sistema não conseguia recuperar-se do controle de congestionamento, levando a janelas de envio muito pequenas. Demorou algum tempo para convencer o fornecedor do sistema operacional que o problema não estava na aplicação, mas na sua implementação do TCP. Descobri que um bug fazia com que os ACKs recebidos com dados fossem considerados DUPACKs quando a pilha estava sob controle de congestionamento. Eventualmente, um patch foi lançado e o problema resolvido.”

O programador explicou que o erro causava que os ACKs recebidos *com payloads* fossem incorretamente classificados como DUPACKs quando a pilha estava em controle de congestionamento.

Isto não aconteceria com aplicações half-duplex como o HTTP, mas a aplicação que eu estava a suportar enviava dados bidirecionalmente no socket o tempo todo.

Na época, não tinha muito suporte da gestão (o meu gestor até gritava comigo por “estar sempre a querer usar um sniffer” para corrigir problemas), e ninguém além de mim estava a considerar a implementação TCP do fornecedor do sistema operacional como a fonte do problema. Lutar sozinho pela correção com o fornecedor do sistema operacional tornou esta vitória particularmente gratificante, deu-me muita confiança para defender as minhas ideias e levou-me a trabalhar em problemas mais interessantes.

Em resumo, este profissional enfrentava problemas de desempenho que eram atribuídos à sua aplicação, com pouca ajuda da gestão. Apenas uma análise detalhada de pacotes provou que o problema era no sistema operacional, e não na aplicação!

A solução não foi um ajuste na aplicação, mas sim um patch dos desenvolvedores do sistema operacional! 😮

Sem a análise de pacotes, este profissional teria sido injustamente culpado. Se isso não o convence da importância da análise de pacotes (também conhecida como “packet sniffing”), nada mais o fará. 🙂

Agora que sabe que a análise de pacotes é um superpoder, a boa notícia é que não é difícil usá-la!

Com ferramentas de análise de pacotes avançadas e fáceis de usar, obter informações detalhadas sobre a rede pode ser tão simples quanto ler um relatório. Claro, é preciso um conhecimento básico sobre o funcionamento de uma rede, mas não é nada de outro mundo.

Se começar a usar uma destas ferramentas e a consultar a documentação, em pouco tempo tornar-se-á um especialista. 😀

Wireshark

Wireshark é um projeto de longa data (desde 1998) que se tornou a referência no setor para análise de redes. É notável que seja um projeto gerido por voluntários, com alguns patrocinadores. O Wireshark é de código aberto (o código pode ser encontrado aqui) e até tem uma conferência anual.

O Wireshark oferece:

  • Suporte para centenas de protocolos de rede;
  • Compatibilidade com diversos formatos de arquivo (tcpdump (libpcap), Pcap NG, Catapult DCT2000, Cisco Secure IDS iplog, Microsoft Network Monitor, Network General Sniffer® (compactado e descompactado), Sniffer® Pro e NetXray®, entre outros);
  • Disponibilidade em várias plataformas (Linux, Windows, macOS, Solaris, FreeBSD, etc.);
  • Leitura de dados em tempo real de Ethernet, IEEE 802.11, PPP/HDLC, ATM, Bluetooth, USB, Token Ring, e mais;
  • Descompressão gzip em tempo real;
  • Suporte para descriptografia de protocolos (WPA/WPA2, SNMPv3, etc.);
  • Análise detalhada de VoIP;
  • Regras de cores para facilitar a análise visual.

Consulte este excelente curso online para aprender a dominar o Wireshark.

Para usar o Wireshark no terminal, experimente o Termhark.

tcpdump

Para os entusiastas da linha de comando, o tcpdump é a ferramenta ideal.

É uma utilidade clássica do Linux, tão relevante como sempre, que serve de base para outras ferramentas mais avançadas. Não tem interface gráfica, mas compensa com a sua funcionalidade.

Instalá-lo pode ser um pouco complicado; embora o tcpdump venha com a maioria das distribuições Linux, poderá ter de instalar a partir da fonte.

Os comandos tcpdump são simples e específicos:

  • Exibir todas as interfaces disponíveis;
  • Capturar apenas uma interface;
  • Salvar pacotes capturados num ficheiro;
  • Capturar apenas pacotes com falhas.

Se necessitar de uma análise rápida e simples, o tcpdump é uma ótima opção (especialmente se já estiver instalado). Consulte este artigo para exemplos de comandos tcpdump.

Tproxy

Tproxy é uma ferramenta de código aberto para fazer o proxy de conexões TCP na rede. Escrito em Go, ele vem como um binário que funciona em diversas plataformas Linux e macOS.

A imagem abaixo mostra o comando para monitorar conexões MySQL:

A sua função principal é fazer proxy de conexões HTTP e inspecionar o conteúdo de pedidos e respostas. Também pode fazer proxy de outros protocolos, como SOCKS ou TCP. É útil para depurar aplicações que usam TCP e para criar serviços proxy TCP.

O Tproxy pretende ser uma interface fácil de usar para o tcpdump, permitindo fazer proxy de conexões TCP e realizar análises de rede avançadas sem necessitar de conhecimentos profundos sobre o protocolo TCP.

A linha de comando abaixo exibe as conexões gRPC:

Ele funciona como um proxy TCP, permitindo-lhe conectar-se a serviços remotos como se estivessem na sua máquina local. Permite criar serviços TCP personalizados em hosts remotos, o que melhora a segurança, a resolução de problemas e o desempenho de aplicações que utilizam TCP.

O Tproxy também pode ser usado para:

  • Depurar e otimizar conexões TCP;
  • Compreender como funcionam outros programas de proxy como Burp Suite e ZAP;
  • Fazer proxy de conexões TCP entre dois hosts ou entre um host e um serviço TCP remoto (banco de dados, serviços web);
  • Monitorar conexões MySQL e gRPC, verificando a confiabilidade da conexão em termos de taxa de Retransmissão e RTT.

O Tproxy simplifica o fluxo de trabalho e permite análises de rede complexas sem alterações na aplicação ou na rede. A ferramenta pode ser descarregada no GitHub.

Network Miner

O Network Miner é uma ferramenta de análise forense de redes, capaz de analisar passivamente uma rede e oferecer uma interface gráfica intuitiva para analisar os dados, incluindo imagens e outros ficheiros transferidos.

O NetworkMiner oferece:

  • Suporte IPv6;
  • Análise de ficheiros PCAP;
  • Extração de certificados X.509 de tráfego SSL;
  • Pcap sobre IP;
  • Compatibilidade com vários tipos de tráfego, como FTP, TFTP, HTTP, SMB, SMB2, SMTP, POP3, etc.;
  • Identificação de SO;
  • Localização geográfica de IPs;
  • Suporte a scripts de linha de comando.

Algumas destas funcionalidades estão disponíveis apenas na versão comercial.

Fiddler

Ao contrário de outros sniffers passivos, o Fiddler atua como um intermediário entre o dispositivo e o exterior, exigindo alguma configuração. É uma ferramenta gratuita e personalizável (usando FiddlerScript) para inspecionar tráfego HTTP/HTTPS.

O Fiddler permite realizar diversas operações, especialmente para fins de segurança:

  • Manipulação de sessão: Examinar e modificar cabeçalhos HTTP e dados de sessão;
  • Testes de segurança: Simular ataques man-in-the-middle e descriptografar tráfego HTTPS;
  • Testes de desempenho: Analisar tempos de carregamento de páginas e respostas de APIs, identificando gargalos.

A documentação do Fiddler é abrangente.

WinDump

Se procura a simplicidade do tcpdump no Windows, o WinDump é a solução. Uma vez instalado, pode executar comandos “tcpdump” na linha de comando, tal como no Linux.

O WinDump é um binário que pode ser executado diretamente, desde que tenha uma biblioteca Pcap instalada (o npcap é recomendado).

BruteShark

BruteShark é uma ferramenta de análise forense de redes (NFAT) que processa e inspeciona o tráfego de rede, incluindo ficheiros PCAP e dados capturados diretamente de interfaces.

Inclui reconstrução de sessões TCP, construção de mapas de rede, extração de hashes de senhas e conversão para o formato Hashcat, para ataques de força bruta offline.

O BruteShark foi criado para ajudar administradores de rede e pesquisadores de segurança a analisar o tráfego de rede e identificar vulnerabilidades.

Existem duas versões: uma aplicação GUI para Windows e uma ferramenta CLI para Linux e Windows. Alguns dos projetos podem ser usados separadamente para analisar o tráfego de rede em Windows e Linux.

O BruteShark também extrai consultas DNS, ficheiros, chamadas VoIP (SIP, RTP), cria diagramas de rede, extrai hashes de autenticação (NTLM, HTTP-Digest, CRAM-MD5, Kerberos, etc.) e recupera senhas e nomes de usuário.

Implementado com .Net Standard e .Net Core para suporte multiplataforma. Utiliza uma arquitetura de três camadas, incluindo PL, BLL e DAL em cada camada.

O DAL (Data Access Layer) lê ficheiros PCAP com drivers como WinPcap, libpcap e bibliotecas como SharpPcap. O BLL (Business Logic Layer) analisa informações de rede (TCP, pacotes, etc.), e o PL (Presentation Layer) interage com o BLL e o DAL.

OmniPeek

Para redes com grande volume de tráfego, o OmniPeek é uma boa opção. É uma ferramenta de análise forense e desempenho de rede, que oferece recursos de baixo nível e painéis abrangentes.

Fonte: sniffwifi.com

Capsa

Para quem usa Windows, o Capsa é um forte concorrente. Possui três versões: gratuita, standard e empresarial, cada uma com diferentes funcionalidades.

A versão gratuita já suporta mais de 300 protocolos e oferece alertas. A versão standard suporta mais de 1000 protocolos e permite analisar conversas e reconstruir fluxos de pacotes.

Em resumo, uma opção sólida para utilizadores do Windows.

EtherApe

Se procura visualizações poderosas e código aberto, o EtherApe é uma excelente opção. Os binários estão disponíveis para algumas distribuições Linux, mas o código fonte está disponível (no SourceForge e no GitHub), podendo ser compilado.

O EtherApe oferece:

  • Monitorização de vários nós, codificada por cores;
  • Suporte para diversos formatos de pacotes (ETH_II, 802.2, 803.3, IP, IPv6, ARP, X25L3, REVARP, ATALK, AARP, IPX, VINES, TRAIN, LOOP, VLAN, entre outros);
  • Leitura de dados em tempo real ou a partir de ficheiros tcpdump;
  • Suporte para resolução de nomes;
  • GUI baseada em GTK3.

CommView

Para utilizadores exclusivos do Windows, o CommView é uma opção a considerar. É um analisador de tráfego de rede com recursos avançados, como análise VoIP e rastreamento remoto.

Destaca-se pela capacidade de exportar dados em formatos utilizados por vários programas, incluindo Sniffer®, EtherPeek™, AiroPeek™, Observer®, NetMon, Wireshark/Tcpdump, Wireshark/pcapng e até dumps hexadecimais simples.

Wifi Explorer

O Wifi Explorer, com versões gratuita para Windows e standard para Windows e macOS, é ideal para análise de redes WiFi. É uma ferramenta elegante e com funcionalidades para simplificar a análise de redes.

Menção honrosa: O Little Snitch é um analisador exclusivo para macOS, com um firewall integrado para controlar o tráfego.

O Próximo Passo?

Explore também softwares de monitorização de rede para ter melhor visibilidade da sua infraestrutura. Se pretende seguir uma carreira na área de redes e segurança, veja alguns dos melhores cursos online.