A análise de pacotes, ou “sniffing” de pacotes, é uma técnica avançada de monitoramento de rede que envolve a decodificação e exame minucioso do tráfego de dados. É uma habilidade crucial para qualquer administrador de rede que deseje solucionar problemas de forma eficaz. A complexidade da análise de tráfego reside no fato de que, em redes não confiáveis, os dados não são transmitidos de maneira contínua, mas sim divididos em pequenos fragmentos enviados separadamente. Para analisar o tráfego, é necessário coletar esses pacotes e remontá-los de forma inteligível. Essa tarefa, impossível de realizar manualmente, levou ao desenvolvimento de sniffers e analisadores de rede. Vamos explorar sete das melhores ferramentas disponíveis para essa finalidade.
Iniciaremos esta análise fornecendo informações básicas sobre o que são sniffers de pacotes e explorando as diferenças, se houver, entre sniffers e analisadores de rede. Em seguida, passaremos à essência do assunto, listando e avaliando brevemente cada uma das sete opções selecionadas. A lista inclui uma variedade de ferramentas, tanto com interface gráfica quanto de linha de comando, compatíveis com diversos sistemas operacionais.
Sniffers de Pacotes e Analisadores de Rede: Uma Breve Explicação
Para fins deste artigo, vamos considerar sniffers de pacotes e analisadores de rede como sinônimos. Embora alguns argumentem que há diferenças entre eles, e possam estar certos, neste contexto os analisaremos juntos, pois, mesmo que operem de maneiras distintas – e será que realmente operam? – o propósito final é o mesmo.
Geralmente, os sniffers de pacotes desempenham três funções principais. Primeiro, eles capturam todos os pacotes de dados que entram ou saem de uma interface de rede. Em seguida, podem aplicar filtros para ignorar alguns pacotes e salvar outros em disco. Por fim, realizam algum tipo de análise dos dados capturados. É nesta última função que os sniffers mais se diferenciam.
Para a captura de pacotes, a maioria das ferramentas utiliza um módulo externo. Os mais comuns são o libpcap em sistemas Unix/Linux e o Winpcap no Windows. Em geral, não é necessário instalar esses módulos separadamente, pois eles são frequentemente incluídos nos instaladores das ferramentas de análise.
É importante notar que um sniffer de pacotes, mesmo o melhor, não resolverá todos os problemas automaticamente. Ele é apenas uma ferramenta, como um martelo que não crava pregos sozinho. É fundamental aprender a utilizar cada ferramenta de forma eficaz. O sniffer permite visualizar o tráfego, mas cabe ao usuário interpretar essas informações para identificar problemas. Existem muitos recursos e cursos sobre como usar essas ferramentas. O objetivo aqui é apenas definir expectativas realistas.
Como Utilizar um Sniffer de Pacotes
Como já mencionado, um sniffer de pacotes coleta e analisa o tráfego. Ao tentar solucionar um problema específico, o uso mais comum para essas ferramentas, é crucial garantir que o tráfego capturado seja o correto. Por exemplo, se todos os usuários reclamam da lentidão de um aplicativo, a melhor abordagem seria capturar o tráfego na interface de rede do servidor. Se as requisições chegarem ao servidor normalmente, mas as respostas demorarem a ser enviadas, o problema provavelmente está no servidor.
Por outro lado, se o servidor estiver respondendo rapidamente, o problema pode estar na rede entre o cliente e o servidor. Nesse caso, o sniffer de pacotes deve ser movido para mais perto do cliente para verificar se as respostas estão chegando com atraso. Esse processo deve ser repetido até que a localização do atraso seja encontrada, o que é um passo importante para a resolução do problema.
Para capturar pacotes em um ponto específico da rede, utiliza-se um recurso chamado espelhamento de porta ou replicação, disponível na maioria dos switches. Essa configuração replica todo o tráfego de entrada e saída de uma porta para outra. Assim, por exemplo, se um servidor está conectado à porta 15 de um switch, e a porta 23 está disponível, o sniffer de pacotes pode ser conectado à porta 23 e o switch configurado para replicar o tráfego da porta 15 para a porta 23. O resultado na porta 23 será uma imagem espelhada do tráfego que passa pela porta 15.
Os Melhores Sniffers de Pacotes e Analisadores de Rede
Agora que você tem um entendimento melhor sobre sniffers de pacotes e analisadores de rede, vamos apresentar os sete melhores que encontramos. A lista combina ferramentas de linha de comando e com interface gráfica, além de opções compatíveis com diferentes sistemas operacionais, pois nem todos os administradores de rede utilizam o Windows.
1. Ferramenta de Análise e Inspeção Profunda de Pacotes SolarWinds (TESTE GRATUITO)
A SolarWinds é conhecida por suas ferramentas gratuitas e soluções de gerenciamento de rede de alta qualidade. Uma dessas ferramentas, a Ferramenta de Análise e Inspeção Profunda de Pacotes, é um componente do principal produto da SolarWinds, o Network Performance Monitor. Sua operação é diferente dos sniffers tradicionais, mas serve a um propósito semelhante.

Esta ferramenta ajuda a identificar e resolver as causas de latências na rede, identificar os aplicativos afetados e determinar se a lentidão é causada pela rede ou por um aplicativo. Ela usa técnicas de inspeção profunda de pacotes para calcular o tempo de resposta de mais de 1200 aplicações e classifica o tráfego por categoria, incluindo uso comercial, social e nível de risco, facilitando a identificação e filtragem de tráfego não comercial.
A Ferramenta de Análise e Inspeção Profunda de Pacotes é parte do Network Performance Monitor (NPM), uma solução abrangente de monitoramento de rede que utiliza tecnologias como SNMP e inspeção profunda de pacotes para fornecer informações detalhadas sobre o estado da rede. O software está disponível a um preço razoável e oferece uma avaliação gratuita de 30 dias.
2. tcpdump
Tcpdump é um dos sniffers de pacotes mais antigos, criado em 1987. Mantido e aprimorado ao longo dos anos, ele permanece praticamente inalterado em sua forma de uso. É pré-instalado em sistemas operacionais do tipo Unix, tornando-se a opção padrão para capturar pacotes rapidamente. O Tcpdump utiliza a biblioteca libpcap para a captura de pacotes.

Por padrão, o tcpdump captura todo o tráfego em uma interface especificada e o exibe na tela. O resultado pode ser direcionado para um arquivo de captura e analisado posteriormente com outras ferramentas. Uma das principais vantagens do tcpdump é a possibilidade de aplicar diversos filtros e direcionar sua saída para o grep, um utilitário de linha de comando do Unix, para filtragem adicional. Usuários com bom conhecimento de tcpdump, grep e shell de comando podem usá-lo para capturar o tráfego desejado para qualquer tarefa de depuração.
3. Windump
Windump é essencialmente uma versão do tcpdump para a plataforma Windows. Opera de maneira similar, um exemplo de como ferramentas de sucesso podem ser portadas de uma plataforma para outra. Windump é um utilitário de linha de comando para Windows, sem interface gráfica. Seu uso é similar ao de sua contraparte Unix, com as mesmas opções de linha de comando e resultados praticamente idênticos. A saída do Windump também pode ser salva em um arquivo para análise posterior.

Uma diferença importante é que o Windump não vem instalado no Windows. É necessário baixá-lo do site Windump. O software é fornecido como um arquivo executável e não requer instalação. Assim como o tcpdump usa a libpcap, o Windump utiliza o Winpcap, que precisa ser baixado e instalado separadamente.
4. Wireshark
Wireshark é uma ferramenta de referência em análise de pacotes, servindo de padrão para muitas outras ferramentas. Além de capturar tráfego, ele oferece recursos de análise avançados. Muitos administradores capturam tráfego com tcpdump ou Windump e o analisam posteriormente com o Wireshark. Ao iniciar, o Wireshark oferece a opção de abrir um arquivo pcap existente ou iniciar a captura de tráfego. Outro destaque é a ampla gama de filtros que permite focar nos dados de interesse.

A ferramenta tem uma curva de aprendizado inicial, mas o investimento é recompensado. O Wireshark está disponível para praticamente todos os sistemas operacionais, sendo gratuito e de código aberto.
5. tshark
Tshark é uma ferramenta que combina características do tcpdump e do Wireshark, dois dos melhores sniffers disponíveis. Assim como o tcpdump, o Tshark é um utilitário de linha de comando. Similar ao Wireshark, ele não apenas captura o tráfego, mas também o analisa. Desenvolvido pelos mesmos criadores do Wireshark, ele é essencialmente a versão de linha de comando do mesmo. O Tshark utiliza o mesmo sistema de filtragem do Wireshark para isolar rapidamente o tráfego necessário para análise.

Uma pergunta comum é por que usar uma versão de linha de comando do Wireshark em vez da interface gráfica? A principal razão é a capacidade de usá-lo em servidores sem interface gráfica.
6. Minerador de Rede
Minerador de Rede é uma ferramenta mais voltada para análise forense do que para captura de pacotes em tempo real. Ele segue fluxos TCP e reconstrói conversas inteiras, o que é bastante útil. O Network Miner pode operar offline, importando arquivos de captura para análise. Essa função é útil, pois o software roda apenas no Windows. É possível usar o tcpdump no Linux para capturar tráfego e o Network Miner no Windows para analisá-lo.

O Network Miner oferece uma versão gratuita, mas os recursos avançados, como geolocalização baseada em IP e scripts, estão disponíveis apenas na versão Profissional. Outra função avançada da versão profissional é a capacidade de decodificar e reproduzir chamadas VoIP.
7. Fiddler (HTTP)
Alguns leitores podem argumentar que o Fiddler não é um sniffer de pacotes ou analisador de rede. Embora isso seja verdade, a ferramenta é extremamente útil em diversas situações. Fiddler captura tráfego, mas apenas HTTP. Apesar da limitação, essa capacidade é valiosa, considerando que muitas aplicações hoje são baseadas na web ou utilizam HTTP em segundo plano. O Fiddler captura tanto o tráfego do navegador quanto o de outras aplicações HTTP, o que facilita a solução de problemas.

A vantagem de usar o Fiddler, em vez de um sniffer genérico como o Wireshark, é que o Fiddler foi desenvolvido para “entender” o tráfego HTTP, incluindo cookies e certificados. Ele também identifica dados reais de aplicações baseadas em HTTP. O Fiddler é gratuito e disponível apenas para Windows, com versões beta para OS X e Linux usando a estrutura Mono.
Conclusão
Ao apresentar listas como esta, a pergunta comum é qual ferramenta é a melhor. Neste caso, a resposta seria “todas”. Cada uma delas é gratuita e possui suas próprias vantagens. É útil ter todas elas à disposição e se familiarizar com cada uma. Ao surgir uma situação em que uma dessas ferramentas seja necessária, o uso será muito mais eficiente. Mesmo as ferramentas de linha de comando têm grande utilidade. Por exemplo, é possível criar scripts para executá-las automaticamente e agendar sua execução. Imagine um problema que ocorre diariamente às 2h da manhã. Pode-se criar um script para rodar o tcpdump ou Windump entre 1:50 e 2:10, e analisar o arquivo de captura pela manhã. Assim, não é necessário ficar acordado a noite toda.