
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.
Scan de cybersécurité gratuit et open source pour les réseaux OT/SCADA ferroviaires et de transport en commun.
Rail-OT-Protector (ROP) est une boîte à outils de cybersécurité gratuite et open source conçue pour les exploitants ferroviaires, les autorités de transport en commun, les équipes de sécurité OT/ICS et les intervenants en cas d'incident qui doivent évaluer rapidement l'exposition cyber des réseaux de technologie opérationnelle (OT) et SCADA ferroviaires et de transport en commun.
ROP fournit à la fois un scanner PowerShell (hôtes de rebond Windows) et un scanner Bash (Linux/macOS) qui balayent les sous-réseaux configurés, détectent les services d'accès à distance et les protocoles ICS exposés, identifient les interfaces de contrôle ferroviaire héritées vulnérables et signalent les indicateurs de risque liés à la vulnérabilité de liaison à distance End-of-Train/Head-of-Train (EOT/HOT) CVE-2025-1727.
Tous les résultats sont écrits dans des rapports JSON et CSV horodatés avec des étiquettes de sévérité CRITICAL / HIGH / MEDIUM, fournissant un artefact prêt à trier pour les équipes de sécurité et d'ingénierie.
cybersécurité ferroviaire, sécurité OT des transports en commun, scanner SCADA, scanner de vulnérabilités ICS, CVE-2025-1727, authentification faible EOT/HOT, API SCADA RailSafe, scanner Modbus, scanner DNP3, scanner EtherNet/IP, IEC 60870-5-104, Wabtec TrainLink, Siemens Trainguard, CISA AA26-097A, durcissement OT ferroviaire, scanner OT open source, 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
Q : ROP nécessite-t-il des privilèges admin/root ?
R : Non. ROP utilise des tentatives de connexion TCP standard — pas de sockets bruts, pas de création de paquets. Il s'exécute en tant qu'utilisateur normal sous Windows comme sous Linux.
Q : Cet outil déclenchera-t-il des alertes IDS/IPS sur mon réseau OT ?
R : Possible. Un scan au niveau des ports est détectable. Coordonnez-vous toujours avec votre centre d'opérations réseau et obtenez une autorisation écrite avant d'exécuter un scan sur un réseau OT de production.
Q : ROP exploite-t-il CVE-2025-1727 ?
R : Non. ROP détecte uniquement si les ports associés à CVE-2025-1727 (services de liaison à distance EOT/HOT) sont accessibles. Il ne tente pas d'authentification et n'envoie aucune charge utile d'exploitation.
Q : Puis-je l'exécuter contre un réseau ferroviaire isolé (air-gapped) ?
R : Oui. ROP ne nécessite aucun accès à Internet. Copiez le script sur un hôte de rebond dans l'environnement isolé et exécutez-le localement.
Q : Quels sont les formats des rapports de sortie ?
R : JSON et CSV. Le JSON convient à l'ingestion dans un SIEM ; le CSV est prêt pour un tri dans un tableur et peut être importé dans ServiceNow, Jira ou des plateformes de tickets similaires.
Q : Cet outil est-il réservé au ferroviaire ? Puis-je l'utiliser sur des réseaux OT généraux ?
R : Les vérifications des protocoles Modbus, DNP3, EtherNet/IP et IEC s'appliquent largement à tout environnement OT/ICS. Les vérifications RailSafe et CVE-2025-1727 sont spécifiques au ferroviaire.
Q : Est-il gratuit pour un usage commercial ?
R : Oui — licence MIT. Vous pouvez l'utiliser, le modifier et le redistribuer dans des contextes commerciaux avec attribution.
Si Rail-OT-Protector vous a aidé à découvrir une exposition réelle, pensez à :
Créé par @spinfosecurity — apprendre en construisant des outils gratuits qui détectent et protègent les infrastructures critiques.
| Menace / Service | Ports | Sévérité | Référence |
|---|
| CVE-2025-1727 Liaison à distance EOT/HOT à authentification faible | 4510, 4511 | CRITICAL | Wabtec TrainLink NG/NG3/NG4/NG5, Siemens Trainguard EOT/HOT, DPS Electronics |
| Interface de contrôle RailSafe 1.0/1.1/2.0 | 28784 | HIGH | API SCADA héritée sans correctif depuis 13 ans ; risque MitM/rejeu |
| VNC exposé | 5900, 5901 | HIGH | FBI PSA 2026-08-01 |
| RDP exposé | 3389 | HIGH | CISA AA26-097A |
| Telnet exposé | 23 | HIGH | Risque d'identifiants en clair |
| FTP exposé | 21 | HIGH | Risque d'identifiants en clair |
| SSH accessible | 22 | MEDIUM | Réviser la politique d'accès |
| Gestion HTTP/HTTPS | 80, 443 | MEDIUM | Réviser la politique d'accès |
| Modbus | 502 | HIGH | Protocole ICS accessible |
| EtherNet/IP | 44818, 2222 | HIGH | Protocole ICS accessible |
| S7 / IEC 60870 | 102 | HIGH | Protocole ICS accessible |
| IEC 60870-5-104 | 2404 | HIGH | Protocole ICS accessible |
| DNP3 | 20000 | HIGH | Protocole ICS accessible |