performing-plc-firmware-security-analysis
Ajuda seu agente a analisar firmwares de controladores lógicos programáveis (PLCs) em busca de falhas.
O que ela faz
Esta ferramenta analisa o software interno (firmware) de controladores lógicos programáveis (PLCs) para encontrar falhas de segurança. Ela procura por senhas escondidas, métodos inseguros de atualização e outras vulnerabilidades.
Quando usar
- ✓Ao verificar a segurança de um PLC antes de usá-lo em locais importantes.
- ✓Quando se suspeita que o software de um PLC foi alterado.
- ✓Ao testar a segurança de novos tipos de PLCs em um laboratório.
Exemplo do que pedir para a IA
“Analise a segurança do firmware deste PLC Siemens S7.”
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 extrai o software do PLC e o examina em busca de problemas conhecidos. Ela compara o software atual com uma versão confiável para ver se houve alguma alteração.
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 performing-plc-firmware-security-analysisOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/performing-plc-firmware-security-analysis/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.
Análise de Segurança de Firmware de CLPs
Quando Usar
- Ao avaliar a segurança de CLPs como parte de uma avaliação de segurança de componentes IEC 62443 (IEC 62443-4-2)
- Ao validar a integridade do firmware após uma suspeita de comprometimento ou ataque à cadeia de suprimentos
- Ao avaliar a segurança de uma nova plataforma de CLP antes da implantação em infraestrutura crítica
- Ao realizar pesquisa de vulnerabilidades em dispositivos de sistemas de controle industrial em um laboratório autorizado
- Ao responder a um incidente onde adulteração da lógica ou firmware do CLP é suspeita
Não use em CLPs de produção ativos sem autorização explícita e controles de segurança implementados. A extração e análise de firmware devem ser realizadas em dispositivos de laboratório ou backups offline. Nunca faça upload de firmware de CLP para serviços de análise públicos. Consulte performing-ics-penetration-testing para procedimentos de teste ativo autorizados.
Pré-requisitos
- Ambiente de laboratório isolado com o hardware do CLP alvo ou um ambiente emulado
- Software de programação de CLP para a plataforma alvo (Siemens TIA Portal, Rockwell Studio 5000, Schneider EcoStruxure)
- Ferramentas de extração de firmware (binwalk, firmware-mod-kit, depurador JTAG/SWD)
- Ferramentas de análise estática (Ghidra, IDA Pro, Binary Ninja com suporte ARM/MIPS/PowerPC)
- Compreensão da arquitetura de CLP (sistema operacional em tempo real, execução de lógica ladder, varredura de E/S)
- Cópia de referência de firmware conhecido como bom para comparação de integridade
Fluxo de Trabalho
Etapa 1: Obter Firmware de CLP para Análise
Extraia ou obtenha o firmware do CLP por métodos autorizados. Isso pode ser feito baixando do fornecedor, extraindo de um dispositivo de laboratório ou obtendo de um backup de projeto.
#!/usr/bin/env python3
"""Aquisição e Verificação de Integridade de Firmware de CLP.
Suporta extração de firmware de arquivos de projeto, downloads de rede
e comparação de imagem binária com linhas de base conhecidas como boas.
"""
import hashlib
import json
import os
import struct
import sys
import zipfile
from datetime import datetime
from pathlib import Path
class PLCFirmwareAcquisition:
"""Lida com a aquisição de firmware de CLP de várias fontes."""
def __init__(self, output_dir="firmware_analysis"):
self.output_dir = Path(output_dir)
self.output_dir.mkdir(exist_ok=True)
self.manifest = {
"acquisition_date": datetime.now().isoformat(),
"firmware_samples": [],
}
def extract_from_siemens_project(self, project_path):
"""Extrai blocos de firmware/programa do projeto Siemens TIA Portal.
Projetos TIA Portal (.ap16/.ap17) são arquivos ZIP contendo
blocos de programa de CLP codificados em XML e configuração do sistema.
"""
print(f"[*] Analisando projeto Siemens: {project_path}")
results = {"platform": "Siemens", "blocks": []}
if zipfile.is_zipfile(project_path):
with zipfile.ZipFile(project_path, "r") as zf:
for info in zf.infolist():
# Blocos de programa são armazenados como XML em caminhos específicos
if "ProgramBlocks" in info.filename or "SystemBlocks" in info.filename:
block_data = zf.read(info.filename)
block_hash = hashlib.sha256(block_data).hexdigest()
block_path = self.output_dir / info.filename.replace("/", "_")
block_path.write_bytes(block_data)
results["blocks"].append({
"name": info.filename,
"size": info.file_size,
"sha256": block_hash,
"extracted_to": str(block_path),
})
print(f" [+] Extraído: {info.filename} ({info.file_size} bytes)")
self.manifest["firmware_samples"].append(results)
return results
def extract_from_rockwell_project(self, acd_path):
"""Extrai dados do programa do arquivo Rockwell Studio 5000 ACD.
Arquivos ACD contêm programa do controlador, tags e configuração.
"""
print(f"[*] Analisando projeto Rockwell: {acd_path}")
results = {"platform": "Rockwell/Allen-Bradley", "blocks": []}
with open(acd_path, "rb") as f:
header = f.read(256)
# Arquivos ACD têm uma assinatura específica
if b"RSLogix" in header or b"Studio 5000" in header:
f.seek(0)
full_data = f.read()
file_hash = hashlib.sha256(full_data).hexdigest()
…
Perguntas frequentes
O que é um PLC?
Um Controlador Lógico Programável (PLC) é um computador industrial usado para controlar máquinas e processos em fábricas e outras instalações.
O que é firmware?
Firmware é o software básico que controla o hardware de um dispositivo, como um PLC. É como o sistema operacional de um computador.
Posso usar isso em um PLC que está funcionando?
Não, nunca use esta ferramenta em um PLC que está controlando um processo real sem permissão e cuidados especiais. A análise deve ser feita em equipamentos de laboratório ou cópias de segurança.
Detalhes
Descrição original do autor
This skill covers analyzing Programmable Logic Controller (PLC) firmware for security vulnerabilities including hardcoded credentials, insecure update mechanisms, backdoor functions, memory corruption flaws, and undocumented debug interfaces. It addresses firmware extraction from common PLC platforms (Siemens S7, Allen-Bradley, Schneider Modicon), static analysis of firmware images, dynamic analys
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #6121
- 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
data-throughput-accelerator
Faz seu agente acelerar a movimentação de grandes volumes de dados. Ele encontra gargalos e garante que os dados sejam transferidos de forma rápida e correta.
affaan-m/ECC
inventory-demand-planning
Ajuda seu agente a prever a demanda de produtos em lojas. Ele otimiza o estoque e planeja quando fazer promoções para vender mais.
affaan-m/ECC
market-research
Ajuda seu agente a realizar pesquisas de mercado e análises competitivas. Fornece resumos com atribuição de fontes.
affaan-m/ECC