Binaires Rust déterministes avec LTO et strip pour NIS2
Par Emmanuel Forgues - 8 juillet 2026

Configurer les profils Rust release pour générer des binaires déterministes, hashés et horodatés, créant des preuves exploitables lors d'audits et de réponses à incidents NIS2.
Une preuve requise pour chaque mesure
NIS2 impose une traçabilité obligatoire : chaque action de sécurité enregistrée avec un horodatage fiable. La responsabilité des dirigeants inclut la démonstration que les mesures ont été réellement exécutées. Aucune technologie n'est prescrite, mais la preuve doit être authentique, intègre et vérifiable.
Apporter la preuve pour un binaire Rust
- authenticité : hash signé atteste que le binaire provient du dépôt Git référencé (commit SHA) ;
- intégrité : toute altération modifie le hash, la signature TSA rend la modification détectable ;
- traçabilité : nom du profil release-lto-strip, version rustc, numéro version crate ;
- horodatage qualifié : service TSA (RFC 3161) signe le hash ;
- attribution : logs CI/CD incluent l'ID du pipeline, l'opérateur et le commit Git.
Configuration du profil release-lto-strip
| Option Cargo.toml | Effet |
|---|---|
| opt-level = "z" | Optimisation de la taille au maximum |
| debug = false | Pas de symboles debug embarqués |
| strip = true | Suppression des symboles (Rust 1.60+) |
| lto = true | Link-Time Optimisation activée |
| codegen-units = 1 | Une seule unité de code pour le déterminisme |
| panic = "abort" | Code de gestion des panics réduit |
| incremental = false | Désactive les artefacts intermédiaires non reproductibles |
La chaîne de conservation d'un binaire
Pipeline CI : cargo build --release avec le profil release-lto-strip. Le manifest inclut le commit Git, la version du crate et les flags compilateur. Le binaire est haché SHA-256 puis envoyé à la TSA qui retourne un certificat. Le SHA-256 + certificat forme un objet JSON-LD complet uploadé vers un bucket S3 Object Lock (tag retention=7y). Un job quotidien vérifie l'intégrité.
Lien avec la gestion des incidents forensic
Le hash signé permet d'identifier immédiatement le binaire exécuté au moment d'une intrusion. La chaîne de hachage (binaire → hash → certificat TSA) fournit une chronologie immuable aux équipes forensic. Chaque correctif génère un nouveau binaire au hash différent, prouvant la mise à jour effective. Les notifications aux autorités incluent le certificat TSA, garantissant l'irréfutabilité des dates.
Limites à ne pas masquer
- fausse immuabilité possible si la génération du hash est erronée ;
- qualité de la source primordiale ;
- horodatage local vs qualifié : force juridique différente ;
- coût pour les PME peut être notable ;
- immutabilité ≠ prévention : la détection précoce reste indispensable.
Pour aller plus loin
Pour aller plus loin :