12 Analisadores de Pacotes de Rede para Sysadmin e Analistas de Segurança

Sua rede é a espinha dorsal de suas operações de negócios. Certifique-se de saber o que está acontecendo lá no fundo.

De muitas maneiras, o cenário dos negócios digitais passou por uma ou duas revoluções. O que começou tão simples Scripts CGI escrito em Perl agora floresceu em implantações em cluster executadas totalmente automatizadas no Kubernetes e outras estruturas de orquestração (desculpe pelo jargão pesado – não estou inventando nada; é assim que as coisas são hoje em dia!).

Um típico aplicativo da Web moderno distribuído em contêineres (fonte: medium.com)

Mas não posso deixar de sorrir ao pensar que os fundamentos ainda são os mesmos dos anos 1970.

Tudo o que temos são abstrações sobre abstrações suportadas por cabos físicos físicos que formam a rede (ok, existem redes virtuais bem, mas você entendeu). Se quisermos ser sofisticados, podemos dividir a rede em camadas de acordo com o modelo OSI, mas tudo dito e feito, estamos sempre, sempre lidando com Protocolos TCP/IP (aviso, leitura pesada adiante!), pings, roteadores, todos com um objetivo em comum — transmissão de pacotes de dados.

Então, o que é um pacote de rede?

Não importa o que estamos fazendo – conversando, streaming de vídeo, jogos, surf, compra de coisas – é essencialmente uma troca de pacotes de dados entre dois computadores (redes). Um “pacote” é a menor unidade de informação que flui em uma rede (ou entre redes), e há um método bem definido de construção e verificação de pacotes de rede (além do escopo deste artigo, mas se você estiver se sentindo aventureiro, aqui está mais).

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

Em termos mais simples, cada pacote representa um elo na cadeia e é devidamente transmitido na origem e validado no destino. Mesmo que chegue um único pacote ou pedido, o processo é suspenso até que todos os pacotes na ordem correta sejam recebidos, e só então eles são reunidos para formar os dados que originalmente representavam (uma imagem, por exemplo).

Agora que entendemos o que é uma rede, é preciso entender o que faz um analisador de rede. É uma ferramenta que permite espiar pacotes individuais em sua rede.

Mas por que você quer ir para esse problema? Vamos discutir isso a seguir.

Por que precisamos analisar pacotes?

Parece que os pacotes são praticamente os blocos de construção básicos em um fluxo de dados de rede, assim como os átomos são a base de toda a matéria (sim, eu sei, essas não são partículas fundamentais verdadeiras, mas é uma analogia boa o suficiente para nossos propósitos) . E quando se trata de analisar materiais ou gases, nunca nos preocupamos com o que um átomo individual está fazendo; então, por que se preocupar com um único pacote de rede em um nível individual? O que podemos saber além do que já sabemos?

É difícil vender a importância da análise em nível de pacote quando você não foi mordido pelas costas antes, mas vou tentar.

A análise de pacotes significa sujar as mãos e chegar até o encanamento para descobrir algo. Geralmente, você precisa analisar os pacotes de rede quando tudo mais falhar. Normalmente, isso inclui cenários aparentemente sem esperança da seguinte forma:

  • Perda inexplicável de dados secretos, apesar de nenhuma violação evidente
  • Diagnosticar aplicativos lentos quando parece não haver nenhuma evidência
  • Certificando-se de que seu computador/rede não foi comprometido
  • Provar ou refutar que um invasor não é pegando carona fora do seu Wi-Fi
  • Descobrir por que seu servidor é o gargalo, apesar do baixo tráfego

Em suma, a análise de pacotes se enquadra em certos tipos de evidências difíceis. Se você souber como conduzir a análise de pacotes e tiver um instantâneo, poderá evitar ser acusado erroneamente de um hack ou simplesmente ser culpado como um desenvolvedor ou administrador de rede incompetente.

É tudo sobre o cérebro! (fonte: dailydot.com)

Em relação a uma história real, acho que este comentário na postagem do blog encontrou aqui é excepcional (reproduzido aqui apenas no caso):

Um aplicativo crítico para minha empresa apresentava problemas de desempenho, estava caindo de cara nas implantações de clientes. Era um aplicativo de precificação de ações usado à frente de centrais de cotações em empresas financeiras em todo o mundo. Se você tivesse um 401(k) por volta de 2000, provavelmente dependia desse aplicativo. Fiz análises do tipo que você descreveu, especificamente o comportamento do TCP. Identifiquei o problema como estando na implementação do TCP pelo fornecedor do sistema operacional. O comportamento problemático era que sempre que a pilha de envio entrava no controle de congestionamento, ela nunca se recuperava. Isso resultou em uma janela de envio comicamente pequena, às vezes apenas alguns múltiplos de MSS.

  Como sempre conseguir a foto que você deseja

Demorou um pouco lutando com os gerentes de contas e o pessoal de suporte ao desenvolvedor do fornecedor do sistema operacional que não entendia o problema, minha explicação ou que o problema *não podia* estar no aplicativo porque o aplicativo é felizmente ignorante das maquinações TCP. Era como falar com uma parede. Comecei na estaca zero com cada teleconferência. Eventualmente eu peguei o telefone com um cara com quem eu poderia ter uma boa discussão. Acontece que ele colocou as extensões RFC1323 na pilha! No dia seguinte eu tinha um patch para o sistema operacional em minhas mãos e o produto funcionou perfeitamente a partir desse ponto.

O desenvolvedor explicou que havia um bug que fazia com que os ACKs recebidos *com cargas úteis* fossem categorizados erroneamente como DUPACKs quando a pilha estava em controle de congestionamento.

Isso nunca aconteceria com aplicativos half-duplex como HTTP, mas o aplicativo que eu estava dando suporte enviava dados bidirecionalmente no soquete o tempo todo.

Eu não tinha muito suporte da gerência na época (meu gerente até gritou comigo por “sempre querer usar um sniffer” para corrigir problemas), e ninguém além de mim estava olhando para a implementação TCP do fornecedor do sistema operacional como a fonte do problema. Lutar sozinho com a correção do fornecedor do sistema operacional tornou essa vitória particularmente doce, me rendeu uma tonelada de capital para fazer minhas próprias coisas e levou aos problemas mais interessantes que apareceram na minha mesa.

Caso você não estivesse com vontade de ler aquele pedaço de texto, ou se não fizesse muito sentido, esse senhor estava enfrentando problemas de desempenho que estavam sendo atribuídos ao seu aplicativo, e a administração, como esperado, não dava suporte . Foi apenas uma análise completa de pacotes que provou que o problema não estava no aplicativo, mas em como o sistema operacional estava lidando com o protocolo de rede!

A correção não foi um ajuste no aplicativo, mas um patch dos desenvolvedores do sistema operacional! 😮

Rapaz, oh, rapaz. . . Sem análise em nível de pacote, onde você acha que essa pessoa estaria? Provavelmente fora de seu trabalho. Se isso não o convencer da importância da análise de pacotes (também chamada de packet sniffing), não sei o que irá. 🙂

Agora que você sabe que a análise de pacotes é um superpoder, tenho boas notícias: não é tão difícil fazer isso!

Graças a ferramentas de detecção de pacotes poderosas e simples de usar, coletar informações da análise de nível de pacote pode ser tão fácil quanto ler um painel de vendas. Dito isso, você precisará de um pouco mais do que um conhecimento superficial do que acontece dentro de uma rede. Mas então, novamente, não há ciência de foguetes aqui, nenhuma lógica distorcida para dominar – apenas bom senso.

Se você começar a ler a documentação de uma dessas ferramentas enquanto as usa em sua rede, em breve você será um especialista. 😀

Wireshark

Wireshark é um projeto antigo (começou em 1998) que é praticamente o padrão da indústria quando se trata de mergulhar profundamente nas redes. É impressionante quando você considera que é puramente uma organização gerida por voluntários, apoiada por alguns patrocinadores generosos. O Wireshark permanece de código aberto (não no GitHub, mas o código pode ser encontrado aqui) e ainda tem uma tecnologia conferência ao seu nome!

Entre os muitos recursos do Wireshark estão:

  • Suporte para centenas de protocolos de rede.
  • Interoperável com muitos 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® e assim por diante).
  • Execute em praticamente todas as plataformas existentes (Linux, Windows, macOS, Solaris, FreeBSD e muito mais).
  • Leitura de dados ao vivo de Ethernet, IEEE 802.11, PPP/HDLC, ATM, Bluetooth, USB, Token Ring, entre outros.
  • Descompressão gzip em tempo real.
  • Cargas de protocolos de descriptografia suportados (WPA/WPA2, SNMPv3, etc.)
  • Análise extensiva de VoIP
  • Regras de coloração para digitalização visual mais rápida

Confira este fantástico curso online para ensiná-lo a dominar o Wireshark.

Procurando por Wireshark em seu terminal? Claro, tente Termhark

tcpdump

Se você é da velha escola (leia viciado em linha de comando hardcore), tcpdump é para você.

É outro desses utilitários icônicos do Linux (como o curl) que permanece tão relevante como sempre, tanto que quase todas as outras ferramentas “mais sofisticadas” se baseiam nele. Como eu disse antes, não há um ambiente gráfico, mas a ferramenta mais do que compensa isso.

Mas instalá-lo pode ser uma dor; enquanto o tcpdump vem empacotado com a maioria das distribuições Linux modernas, se o seu não vier, você terá que construir a partir da fonte.

  Como consertar o GIMP Eraser não funciona

Os comandos tcpdump são curtos e simples, destinados a resolver um problema específico, como:

  • Exibindo todas as interfaces disponíveis
  • Capturando apenas uma das interfaces
  • Salvando pacotes capturados em arquivo
  • Capturando apenas pacotes com falha

. . . e assim por diante.

Se suas necessidades são simples e você precisa executar uma varredura rápida, o tcpdump pode ser uma ótima opção a ser considerada (especialmente se você digitar tcpdump e descobrir que ele já está instalado!). Confira este post para alguns exemplos de comandos tcpdump em tempo real.

Tproxy

Tproxy é uma ferramenta de linha de comando simples e de código aberto para fazer proxy de conexões TCP na rede. O Tproxy é escrito na linguagem de programação Go e é uma ferramenta de linha de comando Go e empacotado como um binário Go para que esteja disponível em todas as plataformas Linux e macOS modernas.

A imagem abaixo mostra a linha de comando para monitorar as conexões do MySQL:

Seu caso de uso principal é fazer proxy de conexões HTTP e inspecionar o conteúdo da solicitação HTTP e as respostas. Ele também pode ser usado para proxy de outros protocolos, como SOCKS ou TCP. Ele pode ser usado para proxy de conexões TCP entre dois hosts ou para analisar o tráfego em uma conexão ativa. É útil para depurar e testar aplicativos que usam TCP como protocolo de transporte e para criar serviços de proxy TCP.

Ele foi escrito com o objetivo de fornecer uma interface fácil de usar para o utilitário de linha de comando tcpdump, permitindo que os usuários façam proxy de conexões TCP e executem outras análises de rede avançadas sem a necessidade de entender o protocolo TCP subjacente.

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

Ele atua como um proxy TCP, permitindo que você se conecte a serviços e aplicativos remotos como se estivesse na máquina local. Ele permite a criação de serviços TCP personalizados em hosts remotos, semelhantes a um proxy TCP reverso que permite uma variedade de melhorias de segurança, solução de problemas e desempenho ao lidar com aplicativos que usam TCP.

Abaixo estão mais alguns usos do Tproxy

  • É útil para depurar e otimizar conexões TCP.
  • Também é útil para entender como funcionam outros programas de proxy, como Burp Suite e ZAP.
  • Ele pode ser usado para fazer proxy de conexões TCP entre dois hosts ou entre um host e um serviço TCP remoto, como um banco de dados ou serviço da web.
  • Monitore conexões MySQL e conexões gRPC e também verifique a confiabilidade da conexão em termos de taxa de Retrans e RTT

A maioria dos usuários descobrirá que o Tproxy simplifica seu fluxo de trabalho e permite que eles executem análises de rede complexas e analisem aplicativos da Web sem precisar alterar o aplicativo ou a própria rede. A ferramenta pode ser baixada em GitHubGenericName.

Network Miner

Promovendo-se como Ferramenta de Análise de Redes Forenses (FNAT), Network Miner é um dos melhores analisadores de nível de pacote que você encontrará. É uma ferramenta de código aberto que pode analisar uma rede passivamente e vem com uma interface GUI impressionante para análise que pode mostrar imagens individuais e outros arquivos transferidos.

Mas isso não é tudo. O NetworkMiner vem com excelentes outros recursos, como:

  • Suporte IPv6
  • Análise de arquivos PCAP
  • Extraia certificados X.509 do tráfego criptografado SSL
  • Pcap sobre IP
  • Funciona com vários tipos de tráfego, como FTP, TFTP, HTTP, SMB, SMB2, SMTP, POP3, etc.
  • Impressão digital do SO
  • Localização de IP geográfico
  • Suporte a scripts de linha de comando

Observe que alguns desses recursos estão disponíveis na versão comercial.

Violinista

Ao contrário de outros sniffers de rede passivos, Violinista é algo que fica entre o seu dispositivo e o mundo exterior e, portanto, requer alguma configuração (é por isso que eles o chamaram de “Fiddler”? 😉 ).

É uma ferramenta gratuita personalizável (usando o FiddlerScript) que tem um histórico longo e distinto, portanto, se seu objetivo é farejar o tráfego HTTP/HTTPS como um chefe, o Fiddler é o caminho a percorrer.

Há muito que você pode fazer com o Fiddler, especialmente se estiver com vontade de vestir o moletom de hacker:

  • Manipulação de sessão: Rasgue cabeçalhos HTTP abertos e dados de sessão, modificando-os da maneira que desejar.
  • Teste de segurança: permite simular ataques man-in-the-middle e descriptografar todo o tráfego HTTPS para você.
  • Teste de desempenho: analise os tempos de carregamento da página (ou resposta da API) e veja qual parte da resposta é o gargalo.

Caso se sinta perdido, o documentação é muito bom e é altamente recomendado.

WinDumpGenericName

Se você sente falta da simplicidade do tcpdump e deseja trazê-lo para seus sistemas Windows, diga olá para WinDumpGenericName. Uma vez instalado, ele funciona a partir da linha de comando digitando “tcpdump” da mesma forma que o utilitário funciona em sistemas Linux.

Observe que não há nada para instalar em si; WinDump é um binário que pode ser executado imediatamente, desde que você tenha uma implementação de biblioteca Pcap instalada (npcap é recomendado, pois o winpcap não está mais em desenvolvimento).

  Como baixar todas as fotos de uma conversa do Messenger

BruteShark

BruteShark é uma ferramenta de análise forense de rede (NFAT) eficaz que você pode usar para processar e inspecionar o tráfego de rede, como arquivos PCAP e capturar diretamente de interfaces de rede.

Inclui a reconstrução de sessões TCP, construção de mapas de rede, extração de hashes de senhas fortemente criptografadas, conversão de hashes em um formato Hashcat para realizar um ataque de Força Bruta offline.

A principal intenção por trás deste projeto é ajudar os administradores de rede e pesquisadores de segurança responsáveis ​​por analisar o tráfego de rede e identificar pontos fracos.

Existem duas versões do BruteShark disponíveis: um aplicativo baseado em Interface Gráfica de Usuário (GUI) para Windows e uma ferramenta CLI para Linux e Windows. Alguns dos projetos incluídos nesta solução podem até ser usados ​​de forma independente para analisar o tráfego de rede em máquinas Windows e Linux.

O BruteShark também pode executar várias operações, como extrair consultas DNS, gravar arquivos, extrair chamadas VoIP (SIP, RTP), criar diagrama de rede para usuários e nós de rede, extrair hashes de autenticação usando Hashcat (NTLM, HTTP-Digest, CRAM-MD5, Kerberos, etc.), e recuperar e codificar senhas e nomes de usuário.

Todos os projetos são implementados através de .Net Standard e .Net Core para suporte multiplataforma e moderno. Esta solução oferece uma arquitetura de três camadas e inclui um ou vários projetos, incluindo PL, BLL e DAL em cada camada.

Através do DAL (Data Access Layer), o projeto auxilia na leitura de arquivos raw do PCAP utilizando drivers como WinPcap, libpcap e bibliotecas wrapper como SharpPcap. Da mesma forma, a BLL (Business Logic Layer) é responsável pela análise das informações da rede (TCP, pacote, etc.), e a PL utiliza um projeto transversal e refere-se às camadas BLL e DAL.

OmniPeek

Para redes maiores que têm toneladas de MBs de dados fluindo por eles a cada segundo, as ferramentas que todos os outros usam podem perder força. Se você está enfrentando o mesmo, OmniPeek Pode valer a pena dar uma olhada.

É uma ferramenta de desempenho, análise e análise forense para analisar redes, especialmente quando você precisa de recursos de baixo nível e painéis abrangentes.

Fonte: sniffwifi.com

Capsa

Se você só está preocupado com a plataforma Windows, Capsa também é um concorrente sério. Ele vem em três versões: gratuita, padrão e empresarial, cada uma com recursos diferentes.

Dito isso, mesmo a versão gratuita suporta mais de 300 protocolos e possui recursos interessantes como alertas (acionados quando certas condições são atendidas). A oferta padrão está um nível acima, suportando mais de 1.000 protocolos e permitindo que você analise conversas e reconstrua fluxos de pacotes.

Em suma, uma opção sólida para usuários do Windows.

EtherApe

Se visualizações poderosas e código aberto são o que você procura, EtherApe é uma ótima opção. Embora os binários pré-construídos estejam disponíveis apenas para algumas distribuições Linux, a fonte está disponível (no SourceForge e no GitHub), portanto, construí-lo por conta própria é uma opção.

Aqui está o que torna o EtherApe ótimo na minha opinião:

  • Monitoramento de vários nós, codificado por cores.
  • Suporte para uma tonelada de formatos de pacote como ETH_II, 802.2, 803.3, IP, IPv6, ARP, X25L3, REVARP, ATALK, AARP, IPX, VINES, TRAIN, LOOP, VLAN, etc. (na verdade, muitos, muitos, mais) .
  • Leia os dados ao vivo do “fio” ou de um arquivo tcpdump.
  • Suporta resolução de nomes padrão
  • A partir das versões mais recentes, a GUI foi movida para GTK3, resultando em uma experiência mais agradável.

CommView

Se você é uma loja exclusiva do Windows e valoriza a conveniência do suporte prioritário, CommView é recomendado. É um poderoso analisador de tráfego de rede com recursos avançados, como análise VoIP, rastreamento remoto, etc., integrados.

O que mais me impressionou é sua capacidade de exportar dados em formatos usados ​​por vários formatos abertos e proprietários, como Sniffer®, EtherPeek™, AiroPeek™, Observer®, NetMon, Wireshark/Tcpdump e Wireshark/pcapng, e até mesmo dumps hexadecimais simples .

Explorador de Wi-Fi

O último da lista é Explorador de Wi-Fi, que possui uma versão gratuita para Windows e uma versão Standard para Windows e macOS. Se a análise de rede WiFi for tudo o que você precisa (o que é praticamente o padrão hoje em dia), o Wifi Explorer facilitará a vida.

É uma ferramenta lindamente projetada e rica em recursos para ir direto ao coração da rede.

Menção honrosa: seria um desserviço fechar este post sem mencionar um analisador de rede exclusivo do macOS que encontrei — Pomozinho. Ele tem um firewall embutido, por isso vem com o benefício adicional de permitir que você controle imediatamente todo o tráfego perfeitamente (o que pode parecer uma dor, mas é um ganho enorme a longo prazo).

Qual é o próximo?

Você também deve explorar esses softwares de monitoramento de rede para obter melhor visibilidade da infraestrutura. Se você deseja construir uma carreira em rede e segurança, confira alguns dos melhores cursos online aqui.