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
Mensagem pronta para colar
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-systemsOu 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.mdConteú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
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #5628
- Licença
- Apache-2.0
- Atualizada em
- 31/08/2026
Comentários
- …
Mais skills deste repositório
abusing-dpapi-for-credential-access
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
mukul975/Anthropic-Cybersecurity-Skills
abusing-shadow-credentials-for-privesc
Ensina seu agente de IA a escrever textos claros e bem estruturados.
mukul975/Anthropic-Cybersecurity-Skills
achieving-cmmc-level-2-compliance
Ajuda seu agente a preparar um ambiente para conformidade com CMMC Nível 2. Ele implementa requisitos de segurança e gerencia a documentação necessária.
mukul975/Anthropic-Cybersecurity-Skills
acquiring-disk-image-with-dd-and-dcfldd
Ajuda seu agente a criar cópias exatas de discos rígidos. Isso é útil para garantir que nenhuma informação seja perdida ou alterada durante investigações.
mukul975/Anthropic-Cybersecurity-Skills
Skills parecidas
bun-runtime
Faz seu agente usar o Bun para rodar, organizar e testar código. Ajuda a escolher o Bun em vez de outras ferramentas e a migrar projetos existentes.
affaan-m/ECC
database-migrations
Ajuda seu agente a fazer mudanças seguras em bancos de dados. Ele garante que as alterações possam ser desfeitas e minimiza o tempo de inatividade.
affaan-m/ECC
deployment-patterns
Configura fluxos de implantação e CI/CD, containerização e estratégias de rollback para garantir lançamentos seguros.
affaan-m/ECC