Pular para o conteúdo
Skillpedia
Diversos35 mil · #6000

monitoring-scada-modbus-traffic-anomalies

Ajuda seu agente a vigiar o tráfego de sistemas industriais. Ele detecta atividades estranhas em redes SCADA para identificar tentativas de invasão ou manipulação.

O que ela faz

Este sistema monitora o tráfego de comunicação em redes industriais (SCADA/ICS) usando o protocolo Modbus. Ele procura por atividades incomuns, como comandos não autorizados ou padrões de comunicação suspeitos, para ajudar a identificar possíveis ameaças à segurança.

Quando usar

  • ✓Monitorar redes industriais em busca de comandos Modbus não autorizados.
  • ✓Detectar tentativas de descobrir dispositivos na rede (enumeração).
  • ✓Identificar alterações indevidas em parâmetros de processos industriais.

Exemplo do que pedir para a IA

“Verifique o tráfego Modbus em nossa rede industrial em busca de qualquer atividade suspeita.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/monitoring-scada-modbus-traffic-anomalies/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/monitoring-scada-modbus-traffic-anomalies/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ele analisa os pacotes de dados Modbus para entender como os dispositivos normalmente se comunicam. Em seguida, compara o tráfego atual com esse padrão normal, alertando sobre qualquer coisa que pareça fora do comum.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill monitoring-scada-modbus-traffic-anomalies

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/monitoring-scada-modbus-traffic-anomalies/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Monitoramento de Anomalias no Tráfego Modbus SCADA

Quando Usar

  • Monitorar redes OT/ICS em busca de comandos Modbus não autorizados direcionados a PLCs, RTUs ou HMIs
  • Detectar atividades de reconhecimento, como enumeração de dispositivos Modbus (código de função 43, Read Device Identification)
  • Identificar operações de escrita não autorizadas (códigos de função 05, 06, 15, 16) em coils e holding registers que podem alterar parâmetros físicos do processo
  • Estabelecer uma linha de base de padrões normais de comunicação Modbus e alertar sobre desvios na distribuição de códigos de função, faixas de acesso a registradores ou intervalos de tempo
  • Investigar suspeitas de sabotagem ou ameaças internas que manipulam valores de processo SCADA através de escritas em registradores Modbus

Não use em redes sem autorização do proprietário do ativo, para injeção ativa ou fuzzing contra sistemas SCADA de produção, ou como substituto para sistemas instrumentados de segurança (SIS) que fornecem proteção física do processo.

Pré-requisitos

  • Um tap de rede ou porta SPAN no segmento de rede OT que transporta tráfego Modbus TCP (porta 502)
  • Python 3.9+ com pymodbus (>=3.6), scapy (>=2.5) e pandas para análise de tráfego
  • Zeek (anteriormente Bro) instalado com o analisador de protocolo Modbus habilitado para registro passivo de tráfego
  • Wireshark ou tshark para captura inicial de pacotes e validação da estrutura de frames Modbus
  • Um período de linha de base de operações normais (mínimo de 48-72 horas) para estabelecer perfis de comunicação por par de dispositivos
  • Diagrama de rede identificando relacionamentos mestre-escravo Modbus, endereços IP dos dispositivos e uso esperado de códigos de função

Fluxo de Trabalho

Etapa 1: Capturar e Analisar Tráfego Modbus TCP

Estabeleça o monitoramento passivo no segmento de rede OT e comece a capturar frames Modbus TCP:

  • Configurar tap de rede: Posicione a interface de monitoramento na porta SPAN que espelha a VLAN que transporta o tráfego Modbus TCP entre servidores HMI/SCADA e PLCs. Verifique a captura de tráfego bidirecional com tcpdump -i eth0 port 502 -c 100 -w modbus_capture.pcap.
  • Analisar a estrutura do frame Modbus TCP: Cada frame Modbus TCP contém um cabeçalho MBAP (Modbus Application Protocol) de 7 bytes seguido pelo PDU. O cabeçalho MBAP inclui:
    • Transaction Identifier (2 bytes): Corresponde requisições a respostas
    • Protocol Identifier (2 bytes): Sempre 0x0000 para Modbus
    • Length (2 bytes): Número de bytes seguintes, incluindo Unit ID
    • Unit Identifier (1 byte): Endereço do dispositivo escravo (0-247)
  • Extrair códigos de função com Scapy: Use o módulo Modbus contrib do Scapy para dissecar pacotes capturados e extrair códigos de função, endereços de registradores e valores:
    from scapy.all import rdpcap, TCP
    from scapy.contrib.modbus import ModbusADURequest, ModbusADUResponse
    
    packets = rdpcap("modbus_capture.pcap")
    for pkt in packets:
        if pkt.haslayer(ModbusADURequest):
            adu = pkt[ModbusADURequest]
            print(f"Src: {pkt['IP'].src} -> Dst: {pkt['IP'].dst} "
                  f"Unit: {adu.unitId} FuncCode: {adu.funcCode}")
    
  • Habilitar registro Modbus do Zeek: Configure o Zeek com @load policy/protocols/modbus/known-masters-slaves para gerar entradas modbus.log contendo timestamp, IPs de origem/destino, código de função e respostas de exceção. Isso fornece registro passivo contínuo sem scripts personalizados.
  • Validar integridade do frame: Verifique frames Modbus malformados onde o campo de comprimento MBAP não corresponde ao comprimento real do PDU, o Protocol Identifier não é 0x0000, ou o Unit Identifier está fora da faixa esperada para a rede monitorada.

Etapa 2: Estabelecer Padrões de Comunicação Normais como Linha de Base

Construa um perfil comportamental do tráfego Modbus legítimo para distinguir operações normais de anomalias:

  • Catalogar a distribuição de códigos de função: Registre a frequência de cada código de função por par origem-destino durante o período de linha de base. Em ambientes SCADA típicos, as operações de leitura (FC 01-04) superam em muito as operações de escrita (FC 05, 06, 15, 16), muitas vezes em proporções superiores a 100:1. Um aumento súbito nos códigos de função de escrita é um forte indicador de manipulação do processo.
    Normal baseline example (72-hour period):
    HMI (10.1.1.10) -> PLC (10.1.1.50):
      FC 03 (Read Holding Registers):  432,180 packets  (97.2%)
      FC 04 (Read Input Registers):     10,540 packets  (2.4%)
      FC 06 (Write Single Register):     1,780 packets  (0.4%)
      FC 16 (Write Multiple Registers):      0 packets  (0.0%)
      FC 43 (Read Device ID):               0 packets  (0.0%)
    

…

Perguntas frequentes

O que é Modbus?

Modbus é um protocolo de comunicação usado em sistemas de controle industrial para permitir que dispositivos (como CLPs e computadores) conversem entre si.

O que são anomalias?

Anomalias são desvios do comportamento normal. Neste caso, são padrões de comunicação Modbus que fogem do que é esperado, podendo indicar um problema de segurança.

O que são PLCs e RTUs?

PLCs (Controladores Lógicos Programáveis) e RTUs (Unidades Terminais Remotas) são dispositivos usados em sistemas de controle industrial para automatizar e monitorar processos.

Detalhes

Descrição original do autor

Monitors Modbus TCP traffic on SCADA and ICS networks to detect anomalous function code usage, unauthorized register writes, and suspicious communication patterns. The analyst uses deep packet inspection with pymodbus, Scapy, and Zeek to baseline normal PLC/RTU communication behavior, then applies statistical and rule-based anomaly detection to identify reconnaissance, parameter manipulation, and

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#6000
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas