
Rail-OT-Protector (ROP) — free, open-source cybersecurity scanning tool for rail and transit OT/SCADA networks. PowerShell + Bash scanners for CVE-2025-1727, RailSafe legacy API, ICS protocol exposure, and remote access risk.
Varredura de cibersegurança gratuita e de código aberto para redes OT/SCADA de ferrovias e trânsito.
Rail-OT-Protector (ROP) é um kit de ferramentas de cibersegurança gratuito e de código aberto projetado para operadores ferroviários, autoridades de trânsito, equipes de segurança OT/ICS e respondedores a incidentes que precisam avaliar rapidamente a exposição cibernética em redes de tecnologia operacional (OT) e SCADA de ferrovias e trânsito.
O ROP inclui tanto um scanner PowerShell (hosts de salto Windows) quanto um scanner Bash (Linux/macOS) que percorrem sub-redes configuradas, detectam serviços de acesso remoto expostos e protocolos ICS, identificam interfaces legadas de controle ferroviário vulneráveis e sinalizam indicadores de risco ligados à vulnerabilidade de vinculação remota End-of-Train/Head-of-Train (EOT/HOT) CVE-2025-1727.
Todas as descobertas são gravadas em relatórios JSON e CSV com carimbo de data/hora, com rótulos de severidade CRITICAL / HIGH / MEDIUM, fornecendo um artefato pronto para triagem para equipes de segurança e engenharia.
cibersegurança ferroviária, segurança OT de trânsito, scanner SCADA, scanner de vulnerabilidades ICS, CVE-2025-1727, autenticação fraca EOT HOT, API SCADA RailSafe, scanner Modbus, scanner DNP3, scanner EtherNet/IP, IEC 60870-5-104, Wabtec TrainLink, Siemens Trainguard, CISA AA26-097A, endurecimento OT ferroviário, scanner OT de código aberto, scanner ICS PowerShell, scanner SCADA Bash
# Standard full subnet scan
pwsh ./scripts/powershell/ROP.ps1 -Subnets 10.10.20.0/24,10.10.30.0/24 -OutputDir ./reports
# EOT/HOT fast-scan mode with custom timeout and threads
pwsh ./scripts/powershell/ROP.ps1 -Subnets 10.10.20.0/24 -EotHotOnly -TimeoutMs 1200 -Threads 64
chmod +x ./scripts/bash/ROP.sh
# Standard full subnet scan
./scripts/bash/ROP.sh --subnets 10.10.20.0/24,10.10.30.0/24 --output-dir ./reports
# EOT/HOT fast-scan mode with custom timeout and threads
./scripts/bash/ROP.sh --subnets 10.10.20.0/24 --eot_hot_only --timeout-ms 1200 --threads 64
[2026-08-03 21:00:14] [CRITICAL] 10.10.20.14:4510 Potential EOT/HOT remote linking service detected (CVE-2025-1727 exposure candidate)
[2026-08-03 21:00:18] [HIGH] 10.10.20.21:5900 VNC exposed on OT subnet; review remote-access controls immediately
[2026-08-03 21:00:20] [HIGH] 10.10.20.44:2404 IEC 60870-5-104 reachable from scan host
[2026-08-03 21:00:21] [HIGH] 10.10.20.55:28784 RailSafe Control Interface fingerprint matched legacy API version family
[2026-08-03 21:00:23] [HIGH] 10.10.20.62:502 Modbus service reachable from scan host
[2026-08-03 21:00:25] [MEDIUM] 10.10.20.88:22 SSH reachable from scan host
Scan complete. Findings: 6. JSON: ./reports/ROP-results-20260803-210025.json CSV: ./reports/ROP-results-20260803-210025.csv
Rail-OT-Protector/
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── SECURITY.md
├── docs/
│ ├── CISA-Reference.md
│ └── Threat-Intelligence.md
├── reports/
│ └── .gitkeep
└── scripts/
├── bash/
│ └── ROP.sh
└── powershell/
└── ROP.ps1
P: O ROP exige privilégios de administrador/root?
R: Não. O ROP usa tentativas padrão de conexão TCP — sem sockets brutos, sem montagem de pacotes. Ele roda como usuário normal tanto no Windows quanto no Linux.
P: Esta ferramenta vai disparar alertas IDS/IPS na minha rede OT?
R: Possivelmente. A varredura em nível de porta é detectável. Sempre coordene com seu centro de operações de rede e obtenha autorização por escrito antes de executar qualquer varredura em uma rede OT de produção.
P: O ROP explora a CVE-2025-1727?
R: Não. O ROP apenas detecta se as portas associadas à CVE-2025-1727 (serviços de vinculação remota EOT/HOT) estão acessíveis. Ele não tenta autenticação nem envia payloads de exploração.
P: Posso executá-lo contra uma rede ferroviária isolada (air-gapped)?
R: Sim. O ROP não requer acesso à internet. Copie o script para um host de salto dentro do ambiente isolado e execute-o localmente.
P: Em quais formatos são os relatórios de saída?
R: JSON e CSV. O JSON é adequado para ingestão em SIEM; o CSV está pronto para triagem em planilhas e pode ser importado para ServiceNow, Jira ou outras plataformas de tickets semelhantes.
P: Esta ferramenta é apenas para ferrovias? Posso usá-la em redes OT gerais?
R: As verificações de Modbus, DNP3, EtherNet/IP e protocolos IEC se aplicam amplamente a qualquer ambiente OT/ICS. As verificações de RailSafe e CVE-2025-1727 são específicas para ferrovias.
P: É gratuita para uso comercial?
R: Sim — Licença MIT. Você pode usar, modificar e redistribuir em contextos comerciais com atribuição.
Se o Rail-OT-Protector ajudou você a encontrar uma exposição real, considere:
Construído por @spinfosecurity — aprendendo construindo ferramentas gratuitas que detectam e protegem infraestrutura crítica.
| Ameaça / Serviço | Portas | Severidade | Referência |
|---|
| CVE-2025-1727 Vinculação Remota EOT/HOT com Autenticação Fraca | 4510, 4511 | CRITICAL | Wabtec TrainLink NG/NG3/NG4/NG5, Siemens Trainguard EOT/HOT, DPS Electronics |
| Interface de Controle RailSafe 1.0/1.1/2.0 | 28784 | HIGH | API SCADA legada sem correção há 13 anos; risco de MitM/replay |
| VNC exposto | 5900, 5901 | HIGH | FBI PSA 2026-08-01 |
| RDP exposto | 3389 | HIGH | CISA AA26-097A |
| Telnet exposto | 23 | HIGH | Risco de credenciais em texto puro |
| FTP exposto | 21 | HIGH | Risco de credenciais em texto puro |
| SSH acessível | 22 | MEDIUM | Rever política de acesso |
| Gerenciamento HTTP/HTTPS | 80, 443 | MEDIUM | Rever política de acesso |
| Modbus | 502 | HIGH | Protocolo ICS acessível |
| EtherNet/IP | 44818, 2222 | HIGH | Protocolo ICS acessível |
| S7 / IEC 60870 | 102 | HIGH | Protocolo ICS acessível |
| IEC 60870-5-104 | 2404 | HIGH | Protocolo ICS acessível |
| DNP3 | 20000 | HIGH | Protocolo ICS acessível |