Pular para o conteúdo
Skillpedia
Deploy e nuvem (DevOps)35 mil · #5628

detecting-anomalies-in-industrial-control-systems

Faz seu agente detectar comportamentos estranhos em sistemas industriais (ICS/OT). Ele usa aprendizado de máquina para analisar o tráfego de rede e dados de processos. É útil para monitorar a segurança e o funcionamento de fábricas e infraestruturas críticas.

O que ela faz

Esta ferramenta usa inteligência artificial para encontrar comportamentos estranhos em sistemas de controle industrial. Ela aprende como o sistema funciona normalmente e avisa se algo fora do comum acontecer, como um dispositivo desconhecido ou um padrão de comunicação diferente.

Quando usar

  • ✓Para monitorar continuamente sistemas industriais que não têm detecção de invasão.
  • ✓Para criar um sistema que detecta comportamentos incomuns em redes industriais.
  • ✓Para investigar alertas de segurança e entender melhor o tráfego de rede.

Exemplo do que pedir para a IA

“Analise o tráfego da minha rede industrial para encontrar atividades suspeitas.”

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/detecting-anomalies-in-industrial-control-systems/SKILL.md

Mensagem pronta para colar

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

A ferramenta primeiro observa como o sistema funciona normalmente por algumas semanas, registrando padrões de comunicação. Depois, ela usa esses padrões para identificar qualquer coisa que fuja do normal.

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 detecting-anomalies-in-industrial-control-systems

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/detecting-anomalies-in-industrial-control-systems/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.

Detecção de Anomalias em Sistemas de Controle Industrial

Quando Usar

  • Ao implantar monitoramento contínuo para ambientes de OT que não possuem detecção de intrusão
  • Ao construir detecção baseada em comportamento para complementar IDS baseado em assinatura em redes de OT
  • Ao estabelecer linhas de base para comunicações SCADA determinísticas para detectar desvios
  • Ao integrar detecção de anomalias de aprendizado de máquina com plataformas de monitoramento de segurança de OT
  • Ao investigar alertas do Nozomi Guardian ou Dragos Platform que exigem análise mais profunda

Não usar para detecção baseada em assinatura de exploits conhecidos (veja detecting-attacks-on-scada-systems), para detecção de anomalias em redes de TI sem protocolos de OT, ou como substituto para sistemas de segurança de processo (SIS).

Pré-requisitos

  • Sensores de monitoramento de rede passivos em portas SPAN/TAP da rede de OT
  • Mínimo de 2-4 semanas de captura de tráfego de linha de base durante operações normais
  • Python 3.9+ com scikit-learn, numpy, pandas para treinamento de modelo de ML
  • Acesso ao process historian para dados de correlação de processo físico
  • Compreensão dos padrões operacionais normais, incluindo mudanças de turno, processos em lote e janelas de manutenção

Fluxo de Trabalho

Etapa 1: Construir Modelo de Linha de Base Multidimensional

Capturar e modelar o comportamento determinístico das comunicações de ICS em múltiplas dimensões: tempo, comportamento do protocolo e topologia de rede.

#!/usr/bin/env python3
"""Sistema de Detecção de Anomalias ICS.

Constrói linhas de base multidimensionais a partir do tráfego de rede de OT e
detecta anomalias usando métodos estatísticos e de aprendizado de máquina.
Projetado para padrões de comunicação SCADA determinísticos.
"""

import json
import sys
import time
import warnings
from collections import defaultdict
from datetime import datetime, timedelta
from dataclasses import dataclass, field

import numpy as np
import pandas as pd
from sklearn.ensemble import IsolationForest
from sklearn.preprocessing import StandardScaler

warnings.filterwarnings("ignore")


@dataclass
class CommunicationProfile:
    """Perfil para um único par de comunicação mestre-escravo."""
    src_ip: str
    dst_ip: str
    protocol: str
    port: int
    avg_interval_ms: float = 0.0
    std_interval_ms: float = 0.0
    avg_payload_size: float = 0.0
    function_codes: dict = field(default_factory=dict)
    packets_per_minute: float = 0.0
    first_seen: str = ""
    last_seen: str = ""


class ICSAnomalyDetector:
    """Detecção de anomalias multidimensional para ambientes ICS."""

    def __init__(self):
        self.profiles = {}
        self.topology_baseline = set()
        self.timing_model = None
        self.isolation_forest = None
        self.scaler = StandardScaler()
        self.anomalies = []
        self.training_data = []

    def build_baseline_from_pcap(self, pcap_data):
        """Construir linhas de base a partir de dados de pcap analisados (lista de registros de fluxo)."""
        print("[*] Construindo linhas de base de comunicação ICS...")

        for flow in pcap_data:
            key = f"{flow['src']}->{flow['dst']}:{flow['port']}"

            if key not in self.profiles:
                self.profiles[key] = CommunicationProfile(
                    src_ip=flow["src"],
                    dst_ip=flow["dst"],
                    protocol=flow.get("protocol", "TCP"),
                    port=flow["port"],
                    first_seen=flow.get("timestamp", ""),
                )

            profile = self.profiles[key]
            profile.last_seen = flow.get("timestamp", "")

            # Rastrear códigos de função para protocolos industriais
            fc = flow.get("function_code")
            if fc is not None:
                profile.function_codes[fc] = profile.function_codes.get(fc, 0) + 1

            # Adicionar à linha de base da topologia
            self.topology_baseline.add((flow["src"], flow["dst"], flow["port"]))

        # Calcular estatísticas de intervalo
        self._calculate_timing_stats(pcap_data)

        print(f"  Pares de comunicação: {len(self.profiles)}")
        print(f"  Entradas de topologia: {len(self.topology_baseline)}")

    def _calculate_timing_stats(self, flows):
        """Calcular estatísticas de tempo de pacote por par de comunicação."""
        timestamps = defaultdict(list)
        for flow in flows:
            key = f"{flow['src']}->{flow['dst']}:{flow['port']}"
            ts = flow.get("timestamp_epoch")
            if ts:
                timestamps[key].append(ts)

        for key, ts_list in timestamps.items():
            if key in self.profiles and len(ts_list) > 1:

…
Perguntas frequentes

O que são 'sistemas de controle industrial' (ICS)?

São os computadores e redes que controlam processos importantes, como produção de energia, água ou fabricação.

O que são 'anomalias' neste contexto?

Anomalias são eventos ou padrões de comunicação que se desviam do comportamento normal e esperado do sistema.

Preciso de conhecimento técnico para usar?

É recomendado ter alguma familiaridade com redes industriais e como elas funcionam, mas a ferramenta foi projetada para simplificar a detecção de anomalias.

Detalhes

Descrição original do autor

Deploys anomaly detection for OT/ICS environments using machine learning on OT network baselines, physics-based process models, and Modbus/DNP3/OPC UA traffic analysis to flag deviations, rogue devices, and mismatches against historian data. Use for continuous OT monitoring, baselining deterministic SCADA polling, or investigating alerts from Nozomi Guardian/Dragos needing deeper protocol analysis

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#5628
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