# GlassMarlin, Le successeur de GrassMarlin

> Un fichier. PCAP en entrée. Atelier de triage OT/ICS complet en sortie. Pas de Wireshark, pas de Python, pas de Docker, pas d'internet. Outillage défenseur-sur-portable pour les engagements où l'hôte n'a rien.

*Page HTML : https://grassmarlin.com/fr/glassmarlin/*
*Source Markdown : https://grassmarlin.com/fr/glassmarlin.md*
*English: https://grassmarlin.com/glassmarlin.md*

---

GlassMarlin est le successeur bureau de GrassMarlin. **Un fichier. PCAP en entrée. Atelier de triage OT/ICS complet en sortie. Pas de Wireshark requis. Pas d'installation Python. Pas de Docker. Pas d'internet. Pas de serveur d'équipe.** Outillage défenseur-sur-portable pour les engagements OT où l'hôte n'a rien.

Dépôt source : [github.com/eris-ot/glassmarlin](https://github.com/eris-ot/glassmarlin).

## Filiation

GrassMarlin était le cartographe de topologie OT publié par la NSA, que les défenseurs de terrain portaient en silence sur les portables d'engagement depuis des années. Il fonctionnait, jusqu'à ce qu'il ne fonctionne plus. Abandonné en 2017, lié à Java, mono-plateforme, plus maintenu. [CVE-2026-6807](https://nvd.nist.gov/vuln/detail/CVE-2026-6807) (avril 2026) l'a rendu activement dangereux à continuer d'utiliser.

GlassMarlin reprend là où il s'est arrêté. Même utilité pour le défenseur, modernisée, multiplateforme, avec la pile complète risque + MITRE ATT&CK + IOC + baselines + extraction sub-PCAP en plus de la cartographie de topologie. Même esprit « déposez-le sur un portable ». Zéro dépendance externe. Filiation complète sur la [page de lignée GrassMarlin](/fr/wiki/heritage.md).

## Aucune dépendance externe. Point.

Chaque dépendance vit à l'intérieur du binaire :

- **Bundle natif par OS.** GlassMarlin.msi pour Windows. GlassMarlin.dmg pour macOS (signé, Gatekeeper-clean). GlassMarlin.AppImage pour Linux (tout hôte glibc 2.28+).
- **Dissection PCAP pure-Rust.** Pas de libpcap, pas de Npcap, pas d'installation Wireshark, pas de `tshark`, pas d'`editcap`. `marlinspike-dpi` gère l'analyse et l'extraction de fenêtres temporelles nativement en Rust.
- **Runtime Python intégré.** Embarqué via `python-build-standalone`. Pas de `pip install`, pas de venv, pas de Python système.
- **SQLite embarqué, pas de serveur DB.** Tout ce que grassmarlin.com stocke dans Postgres, GlassMarlin le garde dans un fichier SQLite embarqué dans le répertoire de données utilisateur.
- **Aucun internet requis, jamais.** Pas de télémétrie, pas de vérification de licence, pas de mise à jour MITRE au runtime. Le runtime ATT&CK et les packs de plugins sont cuits dans le binaire. Tourne en SCIF, en bunker, en avion.
- **Exports prêts pour SIEM.** Chaque scan émet report.json + OCSF NDJSON + STIX 2.1 + règles Sigma + couche ATT&CK Navigator JSON, en plus de la vue d'atelier.

## Ce qu'il fait

GlassMarlin est la pile de triage MarlinSpike entière sur un binaire, pas seulement de la topologie :

- **Topologie + empreinte d'actifs.** Inférence du niveau Purdue, empreintes fournisseurs, détection de rôle d'actif. 30+ dissecteurs de protocoles OT : Modbus, S7, DNP3, IEC 60870-5-104, EtherNet/IP, OPC UA, BACnet, PROFINET, OMRON FINS, HART-IP, EtherCAT, Sparkplug B, IEC 61850 (MMS / GOOSE / SV), et plus.
- **Constats de risque, mappés IEC 62443.** Communications inter-Purdue, ingénierie en clair, balises C2, communications externes suspectes, scans de ports, authentification manquante, OPC `SecurityMode=None`, écritures Modbus de sources inattendues, chacun avec mapping IEC 62443 SR et guidance de remédiation.
- **Alignement MITRE ATT&CK.** Chaque constat mappé à des techniques (ICS + Enterprise). Vue d'atelier en matrice de tactiques. Export en un clic vers JSON de couche ATT&CK Navigator.
- **Chasse aux IOC.** Collez un avis CISA, ingérez un bundle STIX, ou curaté à la main une liste. Scannez les nœuds, requêtes DNS, flux et payloads d'une capture contre IPs / domaines / SHA-256 / MD5 / MACs / OUIs.
- **Baselines par actif + dérive.** Parcourt chaque capture que vous avez chargée et montre ce qui a changé pour un hôte donné, nouveaux pairs, nouveaux protocoles, nouveaux constats depuis la dernière fois, dérive de fournisseur / rôle / type d'équipement.
- **Extraction sub-PCAP par fenêtre temporelle.** Faites glisser une plage sur la timeline de capture, extrayez ces paquets seuls comme sub-PCAP pour Wireshark. Le glissement est local, pas d'upload, pas de serveur. Pure Rust, pas d'`editcap`.

## GlassMarlin vs grassmarlin.com

| Aspect | grassmarlin.com (web) | GlassMarlin (bureau) |
|---|---|---|
| Déploiement | Docker Compose, proxy inverse, volumes persistants | Un installeur signé par OS, runtime embarqué |
| Modèle utilisateur | Multi-utilisateur avec authentification, projets par utilisateur | Mono-utilisateur, local uniquement |
| OS cible | Conteneur Linux (tout hôte avec Docker) | Windows .msi, macOS .dmg, Linux .AppImage |
| Outillage externe | tshark dans le conteneur, libpcap sur l'hôte | Aucun, dissection Rust, pas de Wireshark |
| Base de données | Service PostgreSQL | SQLite embarqué, fichier unique |
| Internet | Optionnel (export ATT&CK Navigator) | Jamais. Point. |
| Moteur | Même moteur et plugins MarlinSpike | Même moteur et plugins MarlinSpike |
| Artefact de rapport | JSON portable, examinable partout | JSON portable + OCSF + STIX + Sigma + ATT&CK Navigator |
| Meilleur cas d'usage | Équipes d'engagement, hôtes de terrain partagés, serveurs de labo | Intervenant sur portable, hôtes air-gapped, SCIF, vols |

## Pour qui c'est fait

L'outil local du défenseur. La chose que vous mettez sur le portable d'engagement. La chose que vous lancez sur un hôte air-gapped, en vol vers le site, dans le SCIF d'un vendeur, dans un bunker. Pas d'infrastructure. Pas d'internet. Pas de prep.

- **Le portable d'engagement.** Mettez GlassMarlin sur le portable de l'évaluateur, volez sur site, travaillez les captures que l'opérateur OT vous tend. Aucune dépendance côté client à négocier avant que le travail commence.
- **Air-gapped, SCIF, bunkers.** Hôtes sans internet, sans Docker, sans gestionnaire de paquets, et sans autorisation d'installer des runtimes tiers. GlassMarlin est un fichier : déposez-le sur une USB, ouvrez le PCAP, travaillez le projet. Packs ATT&CK / IEC 62443 / IOC cuits dedans, rien récupéré au runtime.
- **Formation, tabletop, salles de classe.** Déposez GlassMarlin sur le partage AD ou la USB que vous avez distribuée à l'inscription. Vingt étudiants ont chacun leur propre MarlinSpike en 30 secondes. Pas de serveur à provisionner, pas de Docker à enseigner.

## Ce que GlassMarlin n'est pas

- **Pas multi-utilisateur.** Pas de backends d'authentification, pas de scoping multi-tenant, pas d'URL partagée. Si deux analystes ont besoin de regarder le même projet, ils ouvrent chacun le fichier localement, ou ils le tirent dans un déploiement [grassmarlin.com](/fr/) pour la collaboration inter-engagement.
- **Pas de capture en direct.** PCAP en entrée, atelier en sortie. Si vous avez besoin d'un capteur en direct qui parle à l'atelier d'équipe, c'est le sidecar `marlinspike-capd` côté serveur, pas sur le portable.
- **Pas Wireshark.** GlassMarlin est la couche de triage OT par-dessus un PCAP (topologie, contexte d'actifs, alignement ATT&CK, constats) que Wireshark n'essaie délibérément pas d'être. Lisez avec Wireshark quand vous avez besoin des octets ; pilotez l'engagement avec GlassMarlin.

## Téléchargement · v0.1.1

Les installeurs signés pour les trois OS sont disponibles sur la page des versions GitHub. Chaque artefact est listé dans `SHA256SUMS` avec signatures GPG et OpenTimestamps fournies à côté de la version.

**Windows (x86_64) :**
- `.msi` (déploiements gérés) : [GlassMarlin_0.1.1_x64_en-US.msi](https://github.com/eris-ot/glassmarlin/releases/download/v0.1.1/GlassMarlin_0.1.1_x64_en-US.msi)
- `.exe` (NSIS, installations à la main) : [GlassMarlin_0.1.1_x64-setup.exe](https://github.com/eris-ot/glassmarlin/releases/download/v0.1.1/GlassMarlin_0.1.1_x64-setup.exe)

**macOS (Apple Silicon) :**
- `.dmg` (signé et notarisé, Gatekeeper-clean) : [GlassMarlin_0.1.1_aarch64.dmg](https://github.com/eris-ot/glassmarlin/releases/download/v0.1.1/GlassMarlin_0.1.1_aarch64.dmg)
- macOS Intel : prévu, pas encore livré.

**Linux (x86_64) :**
- `.AppImage` (tout hôte glibc 2.28+) : [GlassMarlin_0.1.1_amd64.AppImage](https://github.com/eris-ot/glassmarlin/releases/download/v0.1.1/GlassMarlin_0.1.1_amd64.AppImage)
- `.deb` (systèmes gérés par apt) : [GlassMarlin_0.1.1_amd64.deb](https://github.com/eris-ot/glassmarlin/releases/download/v0.1.1/GlassMarlin_0.1.1_amd64.deb)

**Vérifier :**
- [SHA256SUMS](https://github.com/eris-ot/glassmarlin/releases/download/v0.1.1/SHA256SUMS) — sommes de contrôle de chaque artefact
- [SHA256SUMS.asc](https://github.com/eris-ot/glassmarlin/releases/download/v0.1.1/SHA256SUMS.asc) — signature GPG
- [SHA256SUMS.ots](https://github.com/eris-ot/glassmarlin/releases/download/v0.1.1/SHA256SUMS.ots) — preuve OpenTimestamps

**Autres canaux :**
- Toutes les versions (notes, versions antérieures) : [github.com/eris-ot/glassmarlin/releases](https://github.com/eris-ot/glassmarlin/releases)
- Source : [github.com/eris-ot/glassmarlin](https://github.com/eris-ot/glassmarlin)
- Même moteur, serveur d'équipe : [grassmarlin.com](/fr/) (ce site)
- Même moteur, hébergé : [cloudmarlin.com](https://cloudmarlin.com)
