Frontière produit
La valeur de MarlinSpike ne réside pas seulement dans le décodage de paquets. Le produit est la combinaison de l'analyse passive, de la reconstruction de topologie, du contexte d'actifs, des constats orientés intervenant et d'un atelier qui peut être partagé pendant un engagement en cours.
La documentation du dépôt revient constamment sur la même frontière de contrat :
- Le moteur reste capable de produire un artefact de rapport fini en mode headless.
- L'artefact de rapport devient la frontière de passage entre l'analyse de paquets et la revue.
- L'atelier web consomme ce rapport pour la collaboration, le triage, l'export et l'historique.
- Les flux principaux restent utilisables sans rendre JavaScript obligatoire pour le parcours intervenant principal.
Chaîne d'analyse en cinq stages
L'architecture décrite dans le README se décompose en un pipeline simple :
| Stage | Rôle |
|---|---|
| 1. Ingestion de capture | Valider pcap ou pcapng, extraire les métadonnées de base, et préparer l'entrée pour la dissection. |
| 2. Dissection protocolaire | Parser les protocoles OT, les protocoles de découverte L2 et les conversations réseau. |
| 3. Construction de topologie | Construire le graphe de nœuds et d'arêtes, inférer le placement Purdue, identifier les empreintes fournisseurs et assigner les rôles. |
| 4. Surface de risque | Identifier les problèmes inter-zones, les communications externes suspectes, les balises C2, les anomalies d'entropie DNS et autres constats de niveau intervenant. |
| 5. Rapport | Émettre l'artefact JSON portable que l'atelier et l'outillage en aval peuvent consommer. |
Options DPI et stratification
Le Stage 2 peut actuellement s'exécuter de deux façons :
- Le chemin Python et tshark intégré dans
_ms_engine.py. - Le chemin de dissection Rust externe via
marlinspike-dpi.
La documentation est explicite : le chemin Rust remplace le stage de dissection face aux paquets, pas l'ensemble du produit. La mise en forme de la topologie, la logique de triage et la construction du rapport restent au-dessus.
Couverture protocolaire et surface de constats
Les docs publics actuels décrivent MarlinSpike comme conscient de l'OT par défaut, avec une couverture pour des protocoles tels que Modbus, EtherNet/IP, S7, DNP3, PROFINET, OPC UA, BACnet, IEC 104, et les familles de découverte L2 comme LLDP, CDP, STP et LACP.
Le récit de constats orienté intervenant est tout aussi important. Les docs du projet mentionnent des surfaces telles que :
- Revue des communications inter-niveaux Purdue et inter-zones
- Services en clair et chemins en écriture
- Communications externes suspectes
- Balises C2 et patterns de persistance de connexion
- Indicateurs d'exfiltration DNS
- Mappings MITRE ATT&CK sélectionnés et support de remédiation orienté SR de l'IEC 62443
Sorties et exports
L'atelier est construit autour de bien plus qu'un simple graphe de topologie. Les docs listent ces surfaces de sortie comme étant de première classe :
- Artefacts de rapport JSON portables
- Revue de topologie et de relations
- Inventaire d'actifs et contexte de services
- Indicateurs C2 et constats de risque
- Chemins d'export PDF, PNG et CSV depuis l'interface
- Comparaison baseline vs dérive entre rapports