Foi liberada sob a licença GPLv3 a plataforma ICSForge — uma ferramenta open-source para validação da cobertura dos meios de cibersegurança em sistemas de controle industrial (ICS). A plataforma gera tráfego industrial realista e arquivos PCAP, e mapeia cada cenário à matriz MITRE ATT&CK for ICS v18. A cobertura declarada é de 68 técnicas em 83, ou 82 %.

Na versão 0.62 são suportados dez protocolos industriais: Modbus/TCP, DNP3, IEC-104 (IEC 60870-5-104), S7comm, OPC UA, EtherNet/IP, BACnet/IP, MQTT, IEC 61850 GOOSE e PROFINET DCP. Para cada protocolo são oferecidas de 5 a 36 variantes de tráfego, totalizando 536 cenários individuais e 11 cadeias de ataque multi-etapas prontas.

Como funciona

A plataforma é construída em torno de dois componentes que interagem entre si — o emissor e o receptor. O emissor gera o tráfego e insere um marcador de correlação em cada pacote. O receptor, implantado no segmento sob teste, procura esse marcador e envia um recibo de volta. Se o recibo chega, o pacote alcançou o destino pelo cabo. Se o sistema de monitoramento implantado no mesmo segmento reagiu ao tráfego, a detecção funciona. Assim se registra uma cadeia inequívoca: executado → entregue → detectado. Para os casos em que a própria presença do marcador prejudica a limpeza do experimento, está previsto um modo furtivo — no fio são geradas tramas byte-realistas, sem qualquer indício do ICSForge.

Arquitetura do ICSForge: emissor ↔ receptor
Fig. 1. Arquitetura do ICSForge: emissor ↔ receptor.

O que é MITRE ATT&CK for ICS

MITRE ATT&CK for ICS é uma base de conhecimento aberta mantida desde 2020 pela MITRE, uma corporação americana sem fins lucrativos. É um catálogo estruturado das técnicas que um adversário utiliza ao atacar sistemas de controle industrial, baseado no estudo de incidentes reais em energia, óleo e gás, saneamento e manufatura. MITRE ATT&CK for ICS é uma base de conhecimento aberta mantida desde 2020 pela MITRE, uma corporação americana sem fins lucrativos. É um catálogo estruturado das técnicas que um adversário utiliza ao atacar sistemas de controle industrial, baseado no estudo de incidentes reais em energia, óleo e gás, saneamento e manufatura.

A base é dividida em 12 táticas — categorias dos objetivos do atacante: obter acesso inicial (Initial Access), garantir persistência (Persistence), evitar a detecção (Evasion), comprometer as proteções (Inhibit Response Function), afetar o processo tecnológico (Impair Process Control) e assim por diante. Dentro de cada tática há técnicas específicas que descrevem como atingi-la: por exemplo, T0855 "Unauthorized Command Message" — comando não autorizado de ajuste ou controle, T0832 "Manipulation of View" — falsificação dos dados exibidos ao operador. Atualmente a matriz descreve 83 técnicas únicas.

Para o setor, a matriz se tornou a linguagem padrão para descrever ameaças e avaliar a postura de segurança. Monitores passivos modernos (NSM), firewalls de ICS e sistemas SIEM marcam suas regras de detecção com identificadores das técnicas ATT&CK — isso permite comparar produtos e estruturar o programa de proteção em uma grade de coordenadas clara. O ICSForge usa essa mesma grade pelo outro lado: para cada técnica que pode ser reproduzida no nível de rede, a plataforma oferece um ou vários cenários prontos.

Matriz MITRE ATT&CK for ICS — esquema conceitual da cobertura pelos cenários ICSForge
Fig. 2. Matriz MITRE ATT&CK for ICS — esquema conceitual da cobertura pelos cenários ICSForge.

Das 83 técnicas, 68 estão implementadas na plataforma. As 15 restantes são técnicas que exigem acesso físico ou não deixam rastro observável na rede: os autores classificam essas honestamente como "não implementáveis em nível de rede" e fornecem uma justificativa para cada uma em um arquivo de configuração aberto. Tal transparência é incomum entre as ferramentas dessa classe.

Cadeias de ataque prontas

Além das técnicas individuais, o ICSForge contém 11 cenários multi-etapas que modelam ataques públicos conhecidos. Entre eles — Industroyer2 (combinação de IEC-104 e S7comm), cadeias no estilo TRITON (focadas em sistemas instrumentados de segurança), Stuxnet (manipulação do programa de PLC Siemens), o cenário inspirado no incidente de Oldsmar (alteração de setpoints de tratamento de água), e a "cadeia completa ICS Kill Chain" — do reconhecimento ao impacto.

O que é Industroyer

Industroyer (também conhecido como CrashOverride) é o primeiro malware publicamente conhecido originalmente desenvolvido especificamente para atacar instalações de energia elétrica. Foi utilizado em dezembro de 2016 no apagão parcial do norte de Kyiv, e suportava os protocolos IEC 60870-5-101, IEC 60870-5-104, IEC 61850 e OPC DA — ou seja, o mesmo conjunto que é usado normalmente na automação de subestações. Industroyer2 é uma variante descoberta em abril de 2022 durante uma tentativa de ataque ao sistema elétrico ucraniano: continha configurações fixas codificadas para uma instalação específica e operava exclusivamente sobre IEC-104. Reproduzir o tráfego de rede característico desses ataques em ambiente controlado é uma tarefa padrão na avaliação da prontidão de um SOC, e o ICSForge oferece para isso uma ferramenta que não exige amostras reais de malware nem acesso a elas.

Recursos adicionais e segurança

Além da geração de tráfego, o ICSForge produz automaticamente regras de detecção para os sistemas Suricata e Sigma em três níveis — desde regras de laboratório que detectam o próprio marcador da plataforma, até regras semânticas voltadas para uso em produção, que disparam em códigos de função e serviços específicos do nível de aplicação.

Para evitar disparo acidental em rede de produção, por padrão é permitido o envio apenas para endereços RFC 1918, loopback e TEST-NET; o acesso a endereços públicos é bloqueado. A autenticação na interface web é obrigatória, as senhas são armazenadas via scrypt e a entrega dos recibos é protegida por um token dedicado. Os autores enfatizam explicitamente: o ICSForge não explora vulnerabilidades, não modifica o estado dos dispositivos reais e não modela impacto físico sobre o processo — é uma ferramenta para avaliar a qualidade da detecção, não para atacar.

A plataforma é escrita em Python 3.10+, suporta implantação a partir do código-fonte e via Docker Compose; a linha de comando tem paridade total com a interface web.

O repositório do projeto está disponível aqui.