Como identificar atividades de rede suspeitas usando Wireshark em Cibersegurança

WiresharkAdvanced
Pratique Agora

Introdução

No campo da Segurança Cibernética (Cybersecurity), compreender e identificar atividades de rede suspeitas é crucial para manter uma infraestrutura de rede segura e resiliente. Este tutorial irá guiá-lo através do processo de utilização do Wireshark, um poderoso analisador de protocolos de rede, para detetar e analisar potenciais ameaças no seu ambiente de rede.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível avançado com uma taxa de conclusão de 15%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Instalação e Configuração do Wireshark

O que é o Wireshark?

O Wireshark é um poderoso analisador de protocolos de rede de código aberto que permite capturar e inspecionar dados que viajam de e para uma rede em tempo real. Profissionais de segurança o utilizam para:

  • Monitorar o tráfego de rede
  • Solucionar problemas de rede
  • Detetar atividades suspeitas
  • Analisar detalhes de protocolos
  • Identificar potenciais ameaças de segurança

Instalando o Wireshark

Vamos começar instalando o Wireshark no nosso sistema Ubuntu. Abra um terminal e execute os seguintes comandos:

sudo apt update
sudo apt install -y wireshark

Durante a instalação, será perguntado se utilizadores não-superusuários devem ser capazes de capturar pacotes. Selecione "Sim" para conveniência neste ambiente de laboratório.

A instalação pode levar alguns minutos. Uma vez concluída, você deverá ver uma saída indicando que o Wireshark foi instalado com sucesso.

Configurando Permissões de Usuário

Para capturar pacotes sem executar o Wireshark como root, precisamos adicionar nosso usuário ao grupo wireshark:

sudo usermod -a -G wireshark $USER

Para que as alterações entrem em vigor, precisamos sair e entrar novamente, mas para este laboratório, podemos aplicar as alterações imediatamente com o seguinte comando:

newgrp wireshark

Verificando a Instalação

Vamos verificar se o Wireshark foi instalado corretamente:

wireshark --version

Você deve ver uma saída semelhante a:

Wireshark 3.6.2 (Git v3.6.2 packaged as 3.6.2-2)

Copyright 1998-2022 Gerald Combs <gerald@wireshark.org> and contributors.
License GPLv2+: GNU GPL version 2 or later <https://www.gnu.org/licenses/>
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiled (64-bit) with Qt 5.15.3, with libpcap, with POSIX capabilities
(Linux), with libnl 3, with Lua 5.2.4, with GLib 2.72.1, with zlib 1.2.11,
with Snappy, with libpcap 1.10.1, with GNUTLS 3.7.3, with Gcrypt 1.9.4.

Iniciando o Wireshark

Agora, vamos iniciar o Wireshark com a interface gráfica:

wireshark &

O aplicativo Wireshark abrirá em uma nova janela. Você verá a interface principal com uma lista de interfaces de rede disponíveis para captura de pacotes.

Reserve um momento para se familiarizar com a interface do usuário do Wireshark:

  1. A seção superior mostra as interfaces de rede disponíveis
  2. A seção do meio (atualmente vazia) exibirá os pacotes capturados
  3. A barra de filtro na parte superior permite filtrar os pacotes exibidos
  4. Vários menus e barras de ferramentas fornecem funcionalidade adicional

No próximo passo, aprenderemos como capturar tráfego de rede usando o Wireshark.

Capturando Tráfego de Rede com Wireshark

Compreendendo as Interfaces de Rede

Antes de podermos capturar o tráfego de rede, precisamos entender qual interface de rede monitorar. Em um sistema típico, você pode ter várias interfaces:

  • eth0 ou ens33: Conexão Ethernet (com fio)
  • wlan0: Conexão Wi-Fi
  • lo: Interface de loopback (tráfego local)

Vamos verificar as interfaces de rede disponíveis em nosso sistema:

ip a

Este comando exibirá todas as interfaces de rede. Procure interfaces como eth0, ens33 ou outras interfaces de rede (o nome exato depende da configuração do seu sistema).

Gerando Tráfego de Rede de Teste

Para garantir que tenhamos algum tráfego de rede para analisar, vamos gerar algum tráfego HTTP básico fazendo algumas requisições web:

## Create a directory to save our captures
mkdir -p ~/wireshark_lab

## Generate some HTTP traffic
curl -s http://example.com > /dev/null
curl -s http://google.com > /dev/null

Capturando Tráfego no Wireshark

Agora, vamos capturar algum tráfego de rede usando o Wireshark:

  1. Se o Wireshark ainda não estiver em execução, inicie-o:
wireshark &
  1. Na janela principal do Wireshark, encontre sua interface de rede primária (provavelmente eth0 ou ens33 - use a interface que você identificou anteriormente com o comando ip a).

  2. Dê um duplo clique na interface de rede para começar a capturar pacotes.

  3. Você verá os pacotes começando a aparecer na janela principal à medida que são capturados:

    • O painel superior mostra a lista de pacotes
    • O painel do meio mostra detalhes do pacote selecionado
    • O painel inferior mostra os dados brutos do pacote selecionado em hexadecimal e ASCII
  4. Vamos gerar mais tráfego de rede enquanto o Wireshark está capturando:

## Open a new terminal window and execute:
ping -c 5 google.com
  1. Volte para o Wireshark e você deverá ver os pacotes ICMP ping aparecendo na captura.

  2. Para parar a captura, clique no botão quadrado vermelho na barra de ferramentas ou vá em Capture > Stop.

Salvando o Tráfego Capturado

Agora que capturamos algum tráfego de rede, vamos salvá-lo para análise posterior:

  1. No Wireshark, vá em File > Save ou pressione Ctrl+S.

  2. Navegue até o diretório ~/wireshark_lab que criamos anteriormente.

  3. Nomeie seu arquivo basic_capture.pcapng e clique em Save.

## Verify that the capture file was saved
ls -la ~/wireshark_lab/

Você deve ver seu arquivo basic_capture.pcapng na saída.

Abrindo uma Captura Salva

Vamos praticar a abertura do nosso arquivo de captura salvo:

  1. No Wireshark, vá em File > Open ou pressione Ctrl+O.

  2. Navegue até ~/wireshark_lab/basic_capture.pcapng e abra-o.

Os pacotes capturados agora devem ser exibidos no Wireshark, prontos para análise.

No próximo passo, aprenderemos como filtrar e analisar este tráfego capturado para identificar tipos específicos de atividades de rede.

Analisando o Tráfego de Rede com Filtros Básicos

Compreendendo os Filtros de Exibição do Wireshark

Os filtros de exibição do Wireshark permitem que você visualize apenas os pacotes que correspondem a critérios específicos. Isso é essencial ao analisar grandes capturas de pacotes para encontrar informações relevantes.

A sintaxe básica para filtros de exibição do Wireshark é:

protocol.field == value

Por exemplo:

  • ip.addr == 192.168.1.1 - Mostra pacotes com este endereço IP
  • tcp.port == 80 - Mostra pacotes com a porta TCP 80
  • http - Mostra todos os pacotes HTTP

Aplicando Filtros de Exibição Básicos

Vamos praticar a aplicação de alguns filtros básicos ao nosso tráfego capturado:

  1. Certifique-se de que o Wireshark esteja aberto com nosso arquivo de captura salvo anteriormente. Caso contrário, abra-o:
wireshark ~/wireshark_lab/basic_capture.pcapng &
  1. Localize a barra de filtro na parte superior da lista de pacotes (diz "Apply a display filter..." quando vazia).

  2. Vamos filtrar o tráfego DNS. Digite o seguinte na barra de filtro:

dns
  1. Pressione Enter ou clique no botão de seta azul para aplicar o filtro.

Agora você deve ver apenas pacotes DNS na exibição. Estes são pedidos e respostas de resolução de nomes de domínio.

  1. Agora, vamos tentar filtrar o tráfego HTTP:
http

Aplique o filtro e observe os pacotes HTTP.

  1. Vamos filtrar por um endereço IP específico. Primeiro, identifique um endereço IP em sua captura, observando as colunas de origem ou destino. Em seguida, aplique um filtro como:
ip.addr == [replace_with_an_ip_from_your_capture]

Por exemplo: ip.addr == 93.184.216.34 (se você ver tráfego para example.com)

Combinando Filtros

Você pode combinar filtros usando operadores lógicos:

  • && ou and para operação AND
  • || ou or para operação OR
  • ! ou not para operação NOT

Vamos tentar um filtro combinado:

http && ip.addr == [replace_with_an_ip_from_your_capture]

Isso mostrará o tráfego HTTP apenas de/para o endereço IP especificado.

Criando um Filtro Simples para Tráfego TCP

Vamos criar e salvar um filtro para tráfego TCP:

  1. Na barra de filtro, digite:
tcp
  1. Aplique o filtro. Você deve ver apenas pacotes TCP.

  2. Vamos salvar este filtro para uso futuro. Clique no botão "+" no lado direito da barra de filtro.

  3. Na caixa de diálogo que aparece, insira:

    • Filter name: TCP Traffic (Nome do filtro: Tráfego TCP)
    • Filter string: tcp (String do filtro: tcp)
  4. Clique em "Save" (Salvar) para salvar este filtro.

Analisando a Hierarquia de Protocolos

O Wireshark fornece uma visualização útil dos protocolos em sua captura:

  1. Vá em Statistics > Protocol Hierarchy (Estatísticas > Hierarquia de Protocolos).

  2. Isso mostra uma divisão de protocolos por porcentagem e contagem de pacotes.

  3. Feche esta janela quando terminar a revisão.

Salvando Resultados Filtrados

Vamos salvar uma visualização filtrada de nossa captura:

  1. Aplique um filtro de sua escolha (por exemplo, http ou dns).

  2. Vá em File > Export Specified Packets (Arquivo > Exportar Pacotes Especificados).

  3. Certifique-se de que "Displayed" (Exibidos) esteja selecionado na seção "Packet Range" (Intervalo de Pacotes).

  4. Navegue até ~/wireshark_lab/ e salve como filtered_capture.pcapng.

  5. Verifique se o arquivo foi salvo:

ls -la ~/wireshark_lab/

Você deve ver seus arquivos de captura originais e filtrados.

No próximo passo, usaremos essas técnicas de filtragem para identificar atividades de rede suspeitas.

Identificando Atividades de Rede Suspeitas

Indicadores Comuns de Atividades de Rede Suspeitas

Ao analisar o tráfego de rede para fins de segurança, certos padrões e comportamentos podem indicar atividades suspeitas ou maliciosas:

  1. Uso Incomum de Portas: Tráfego em portas incomuns ou portas de malware conhecidas
  2. Consultas DNS Excessivas: Pode indicar tunelamento DNS ou exfiltração de dados
  3. Credenciais Não Criptografadas: Senhas enviadas em texto simples
  4. Varredura de Portas (Port Scanning): Múltiplas tentativas de conexão em diferentes portas
  5. Padrões de Dados Incomuns: Cargas úteis codificadas em Base64 ou tráfego criptografado onde não esperado
  6. Tentativas de Conexão a IPs Maliciosos Conhecidos: Tráfego de/para endereços na lista negra

Simulando Atividades Suspeitas

Para fins de aprendizado, vamos simular algumas atividades de rede suspeitas que podemos detectar com o Wireshark:

## Create a directory for our security analysis
mkdir -p ~/wireshark_lab/security_analysis

## Simulate a port scan (limited to a few ports for demonstration)
nmap -p 80,443,22,21,25 scanme.nmap.org > ~/wireshark_lab/security_analysis/scan_results.txt 2>&1

Observação: O comando nmap acima executa uma varredura nas portas comuns do servidor scanme.nmap.org, que é configurado especificamente para testar o nmap.

Capturando e Analisando Tráfego Suspeito

  1. Inicie uma nova captura do Wireshark em sua interface de rede principal:
wireshark &
  1. No Wireshark, clique duas vezes na sua interface de rede primária para começar a capturar.

  2. Em um terminal separado, execute o comando de simulação:

## Simulate another port scan while capturing
nmap -p 80,443,22,21,25 scanme.nmap.org > /dev/null 2>&1
  1. Após a conclusão do comando, pare a captura do Wireshark clicando no botão quadrado vermelho.

  2. Salve esta captura como suspicious_traffic.pcapng no diretório ~/wireshark_lab/security_analysis/.

Detectando Varredura de Portas (Port Scanning)

A varredura de portas é uma técnica de reconhecimento comum usada por invasores para descobrir serviços em execução em um sistema. Vamos identificar a atividade de varredura de portas em nossa captura:

  1. Aplique um filtro para ver as tentativas de conexão em diferentes portas:
tcp.flags.syn == 1 && tcp.flags.ack == 0

Este filtro mostra pacotes TCP SYN, que são usados para iniciar conexões. Um grande número desses pacotes para diferentes portas no mesmo host é indicativo de varredura de portas.

  1. Para focar no tráfego relacionado à nossa varredura nmap, você pode adicionar um filtro para o domínio de destino:
tcp.flags.syn == 1 && tcp.flags.ack == 0 && ip.addr contains scanme.nmap.org

Criando um Relatório de Análise de Segurança

Vamos documentar nossas descobertas em um relatório de análise de segurança simples:

## Create a report file
nano ~/wireshark_lab/security_analysis/security_report.txt

Adicione o seguinte conteúdo ao arquivo:

Security Analysis Report
=======================

Date: [Current Date]

Findings:
1. Port Scanning Activity Detected
   - Source: [Your IP address]
   - Target: scanme.nmap.org
   - Targeted Ports: 80, 443, 22, 21, 25
   - Evidence: TCP SYN packets to multiple ports

2. Analysis Method:
   - Used Wireshark to capture network traffic
   - Applied filter: tcp.flags.syn == 1 && tcp.flags.ack == 0
   - Identified pattern of systematic connection attempts

3. Recommended Actions:
   - Monitor for unauthorized scanning activities
   - Implement firewall rules to limit outbound scanning
   - Consider implementing network intrusion detection systems

Salve o arquivo pressionando Ctrl+O, depois Enter e saia do nano com Ctrl+X.

Criando um Filtro Personalizado para Atividades Suspeitas

Vamos criar um filtro personalizado para detectar possíveis problemas de segurança:

  1. No Wireshark, digite o seguinte filtro:
(tcp.flags.syn == 1 && tcp.flags.ack == 0) || (dns.qry.type == 1 && dns.qry.name contains "suspicious") || (http.request && ip.addr == 192.168.0.1)

Este filtro complexo procura:

  • Atividade de varredura de portas (pacotes SYN sem ACK)
  • Consultas DNS para domínios contendo "suspicious"
  • Requisições HTTP de/para o IP 192.168.0.1
  1. Salve este filtro:

    • Clique no botão "+" na extremidade direita da barra de filtro
    • Nome: Security Monitoring (Monitoramento de Segurança)
    • Filter string: (cole o filtro acima)
    • Clique em "Save" (Salvar)
  2. Exporte esta configuração de filtro para uso futuro:

## First, open your Wireshark profile directory to find the saved filters
ls -la ~/.config/wireshark/

Resumindo sua Análise de Segurança

Vamos verificar nossos artefatos de análise de segurança:

## List all the files we've created
ls -la ~/wireshark_lab/security_analysis/

Você deve ver:

  • scan_results.txt - Saída da nossa varredura nmap
  • suspicious_traffic.pcapng - Captura do Wireshark de atividades suspeitas
  • security_report.txt - Nosso relatório de análise

Esses arquivos representam um fluxo de trabalho básico de análise de segurança cibernética:

  1. Capture tráfego suspeito
  2. Analise o tráfego usando filtros apropriados
  3. Documente as descobertas e recomendações

Em um ambiente de segurança real, você continuaria a refinar suas técnicas de detecção, criar filtros mais sofisticados e integrar a análise do Wireshark com outras ferramentas de segurança para detecção e resposta abrangentes a ameaças.

Resumo

Neste laboratório, você adquiriu experiência prática com o Wireshark, um poderoso analisador de protocolo de rede amplamente utilizado em segurança cibernética. Você aprendeu como:

  1. Instalar e configurar o Wireshark no Ubuntu
  2. Capturar tráfego de rede de várias interfaces
  3. Aplicar filtros para analisar tipos específicos de tráfego de rede
  4. Identificar potenciais atividades suspeitas, como varredura de portas (port scanning)
  5. Documentar suas descobertas em um relatório de análise de segurança

Essas habilidades formam a base da análise de tráfego de rede para fins de segurança cibernética. Ao entender como usar o Wireshark de forma eficaz, você pode monitorar o tráfego de rede, detectar anomalias e identificar potenciais ameaças à segurança antes que causem danos significativos.

À medida que você continua sua jornada em segurança cibernética, você pode construir sobre esses fundamentos aprendendo técnicas de filtragem mais avançadas, desenvolvendo regras de detecção personalizadas e integrando o Wireshark com outras ferramentas de segurança para criar soluções abrangentes de monitoramento de rede.