Domine o Wireshark com o Brim: Análise de Tráfego de Rede Sem Limites!

O Wireshark é, sem dúvida, a ferramenta mais utilizada para analisar o tráfego de redes. No entanto, seu desempenho tende a diminuir consideravelmente à medida que o volume de dados capturados aumenta. O Brim surge como uma solução eficaz para esse problema, transformando a forma como você utiliza o Wireshark.

Wireshark: Uma Ferramenta Poderosa, Mas…

O Wireshark é um software de código aberto amplamente elogiado, utilizado por entusiastas e profissionais ao redor do mundo para investigar problemas em redes. Ele captura pacotes de dados transmitidos por meio de cabos ou via wireless, possibilitando a filtragem, pesquisa e análise das conversas entre os dispositivos.

Apesar de sua eficiência, o Wireshark possui uma limitação notável: arquivos de captura de dados de rede, conhecidos como *traces* de rede ou capturas de pacotes, podem atingir dimensões consideráveis em pouco tempo. Isso é especialmente comum em investigações complexas, esporádicas ou em redes extensas e com alto volume de tráfego.

Consequentemente, quanto maior o arquivo de captura (PCAP), mais lento se torna o Wireshark. A simples ação de abrir e carregar arquivos acima de 1 GB pode levar tanto tempo que o software aparenta ter travado.

Trabalhar com arquivos desse porte é um desafio. Cada pesquisa ou alteração de filtro demanda um tempo de espera para que as mudanças sejam aplicadas aos dados e exibidas na tela, o que pode interromper o fluxo de trabalho e dificultar o progresso da análise.

O Brim surge como um antídoto para esses problemas. Ele funciona como um pré-processador interativo e *front-end* para o Wireshark. Ao necessitar de uma análise detalhada, o Brim abre instantaneamente o Wireshark, direcionando-o exatamente aos pacotes desejados.

Se você realiza frequentemente capturas de tráfego de rede e análise de pacotes, o Brim irá revolucionar sua rotina de trabalho.

Instalando o Brim

O Brim ainda é um projeto relativamente novo e, por isso, ainda não está presente nos repositórios de software das distribuições Linux. Entretanto, na página de download do Brim, você encontrará arquivos de pacotes DEB e RPM, facilitando a instalação no Ubuntu ou Fedora.

Caso utilize outra distribuição Linux, é possível baixar o código fonte do GitHub e compilar o aplicativo por conta própria.

O Brim utiliza o zq, uma ferramenta de linha de comando para os logs do Zeek, sendo necessário também baixar um arquivo ZIP contendo os binários zq.

Instalando o Brim no Ubuntu

Se você utiliza o Ubuntu, será necessário baixar tanto o arquivo do pacote DEB quanto o arquivo ZIP do zq para Linux. Basta clicar duas vezes sobre o arquivo DEB baixado para que o aplicativo Ubuntu Software seja aberto. É importante ressaltar que a licença do Brim é erroneamente listada como “Proprietária”, sendo, na verdade, a Licença BSD de 3 Cláusulas.

Clique em “Instalar”.

Após a conclusão da instalação, clique duas vezes no arquivo ZIP do zq para iniciar o aplicativo “Gerenciador de Arquivos”. O arquivo ZIP conterá um único diretório; arraste-o do “Gerenciador de Arquivos” para uma pasta em seu computador, como o diretório “Downloads”.

Digite o comando a seguir para criar um local para os binários do zq:

sudo mkdir /opt/zeek

Agora, é necessário copiar os binários do diretório extraído para o local recém-criado. Substitua o caminho e o nome do diretório extraído em seu computador no comando a seguir:

sudo cp Downloads/zq-v0.20.0.linux-amd64/* /opt/Zeek

Para adicionar este local ao caminho, edite o arquivo BASHRC:

sudo gedit .bashrc

O editor gedit será aberto. Role até o final do arquivo e adicione a seguinte linha:

export PATH=$PATH:/opt/zeek

Salve as alterações e feche o editor.

Instalando o Brim no Fedora

Para instalar o Brim no Fedora, baixe o arquivo de pacote RPM (em vez do DEB) e siga os mesmos passos descritos para a instalação no Ubuntu.

Curiosamente, ao abrir o arquivo RPM no Fedora, ele é corretamente identificado como tendo uma licença de código aberto, e não uma licença proprietária.

Iniciando o Brim

Clique em “Mostrar Aplicativos” no dock ou pressione Super+A. Digite “brim” na caixa de pesquisa e clique em “Brim” quando ele aparecer.

O Brim será iniciado, exibindo sua janela principal. É possível clicar em “Escolher Arquivos” para abrir o navegador de arquivos, ou arrastar e soltar um arquivo PCAP na área delimitada pelo retângulo vermelho.

O Brim utiliza um sistema de abas, permitindo que várias delas sejam abertas simultaneamente. Para abrir uma nova aba, clique no sinal de mais (+) na parte superior e selecione outro arquivo PCAP.

Conceitos Básicos da Aba

O Brim carrega e indexa o arquivo selecionado. A indexação é um dos fatores que tornam o Brim tão rápido. A janela principal exibe um histograma com o volume de pacotes ao longo do tempo, bem como uma lista de “fluxos” de rede.

Um arquivo PCAP contém um fluxo ordenado de pacotes de rede de diversas conexões. Os pacotes de dados para essas conexões são misturados, pois algumas delas podem estar abertas simultaneamente. Os pacotes de cada “conversa” de rede são intercalados com os pacotes de outras conversas.

Enquanto o Wireshark exibe o fluxo de rede pacote a pacote, o Brim utiliza um conceito chamado “fluxos”. Um fluxo é uma troca completa de dados (ou conversação) entre dois dispositivos. Cada tipo de fluxo é categorizado, codificado por cores e rotulado por tipo de tráfego. Você poderá observar fluxos rotulados como “dns”, “ssh”, “https”, “ssl” e outros.

Ao rolar a exibição do resumo do fluxo para a esquerda ou para a direita, outras colunas serão reveladas. É possível também ajustar o período de tempo para exibir o subconjunto de informações desejado. Veja algumas formas de visualizar os dados:

  • Clique em uma barra no histograma para ampliar a atividade de rede naquele ponto específico.
  • Clique e arraste para destacar um intervalo do histograma e ampliar a visualização. O Brim exibirá os dados correspondentes à seção selecionada.
  • Você também pode especificar períodos exatos nos campos “Data” e “Hora”.

O Brim pode exibir dois painéis laterais: um à esquerda e outro à direita. Esses painéis podem ser ocultados ou mantidos visíveis. O painel da esquerda exibe um histórico de pesquisa e uma lista de arquivos PCAP abertos, chamados de *spaces*. Pressione Ctrl+[ para ativar ou desativar o painel esquerdo.

O painel da direita contém informações detalhadas sobre o fluxo selecionado. Pressione Ctrl+] para ativar ou desativar o painel direito.

Clique em “Conn” na lista “Correlação de UID” para abrir um diagrama de conexão para o fluxo destacado.

Na janela principal, também é possível destacar um fluxo e clicar no ícone do Wireshark. Isso iniciará o Wireshark com os pacotes do fluxo selecionado já exibidos.

O Wireshark será aberto, exibindo os pacotes de interesse.

Filtrando no Brim

A pesquisa e a filtragem no Brim são flexíveis e abrangentes. No entanto, não é necessário aprender uma nova linguagem de filtragem. É possível criar um filtro sintaticamente correto no Brim clicando nos campos na janela de resumo e selecionando as opções em um menu.

Por exemplo, na imagem abaixo, clicamos com o botão direito do mouse em um campo “dns”. Em seguida, selecionamos “Filter = Value” no menu de contexto.

As seguintes ações serão realizadas:

  • O texto _path = “dns” é adicionado à barra de pesquisa.
  • Este filtro é aplicado ao arquivo PCAP, exibindo apenas os fluxos de serviço de nome de domínio (DNS).
  • O texto do filtro também é adicionado ao histórico de pesquisa no painel esquerdo.

É possível adicionar mais cláusulas ao termo de pesquisa usando a mesma técnica. Vamos clicar com o botão direito do mouse no campo de endereço IP (contendo “192.168.1.26”) na coluna “Id.orig_h” e, em seguida, selecionar “Filter = Value” no menu de contexto.

Isso adiciona a cláusula como uma condição “AND”. A exibição agora é filtrada para exibir os fluxos DNS originados desse endereço IP (192.168.1.26).

O novo termo de filtro é adicionado ao histórico de pesquisa no painel esquerdo. É possível alternar entre as pesquisas clicando nos itens da lista do histórico.

O endereço IP de destino para a maioria de nossos dados filtrados é 81.139.56.100. Para verificar quais fluxos DNS foram enviados para endereços IP diferentes, clicamos com o botão direito do mouse em “81.139.56.100” na coluna “Id_resp_h” e, em seguida, selecionamos “Filter != Value” no menu de contexto.

Apenas um fluxo DNS originado de 192.168.1.26 não foi enviado para 81.139.56.100, e o encontramos sem precisar digitar nada para criar nosso filtro.

Fixando Cláusulas de Filtro

Ao clicar com o botão direito do mouse em um fluxo “HTTP” e selecionar “Filter = Value” no menu de contexto, o painel de resumo exibirá somente fluxos HTTP. É possível clicar no ícone Pin ao lado da cláusula de filtro HTTP.

A cláusula HTTP agora está fixada e todos os outros filtros ou termos de pesquisa usados serão executados tendo a cláusula HTTP como base.

Se digitarmos “GET” na barra de pesquisa, a pesquisa será restrita aos fluxos que já foram filtrados pela cláusula fixada. É possível fixar quantas cláusulas de filtro forem necessárias.

Para pesquisar pacotes POST nos fluxos HTTP, basta limpar a barra de pesquisa, digitar “POST” e pressionar Enter.

Ao rolar lateralmente, o ID do host remoto será exibido.

Todos os termos de pesquisa e filtro são adicionados à lista “Histórico”. Para reaplicar qualquer filtro, basta clicar nele.

É possível também procurar um host remoto por nome.

Editando Termos de Pesquisa

Se você deseja pesquisar algo, mas não visualiza um fluxo específico, basta clicar em qualquer fluxo e editar a entrada na barra de pesquisa.

Por exemplo, suponhamos que sabemos que deve haver pelo menos um fluxo SSH no arquivo PCAP, já que utilizamos o rsync para enviar alguns arquivos para outro computador, mas não conseguimos visualizá-lo.

Para isso, clicamos com o botão direito do mouse em outro fluxo, selecionamos “Filter = Value” no menu de contexto e editamos a barra de pesquisa para que ela exiba “ssh” em vez de “dns”.

Ao pressionar Enter para procurar por fluxos SSH, descobrimos que há apenas um.

Pressionar Ctrl+] abre o painel direito, que mostra os detalhes desse fluxo. Caso um arquivo tenha sido transferido durante o fluxo, os *hashes* MD5, SHA1 e SHA256 serão exibidos.

Clique com o botão direito do mouse em qualquer um deles e selecione “VirusTotal Lookup” no menu de contexto para abrir o navegador no site VirusTotal e analisar o hash.

O VirusTotal armazena *hashes* de *malwares* conhecidos e outros arquivos maliciosos. Se você não tem certeza se um arquivo é seguro, essa é uma maneira fácil de verificar, mesmo que você não tenha mais acesso a ele.

Se o arquivo for inofensivo, a tela abaixo será exibida.

O Complemento Ideal para o Wireshark

O Brim torna o uso do Wireshark ainda mais rápido e fácil, permitindo que você trabalhe com arquivos de captura de pacotes de grandes dimensões. Experimente hoje mesmo!