09h00 – 09h30 : Accueil des participants
09h30 – 09h45 : Introduction
09h45 – 10h30 : Keynote de Jonathan Brossard, Enseignant-Chercheur, CNAM | CTO, MOABI
Aux origines du mal, il existe en cybersécurité une méta-classe de problèmes de sécurité dits « indécidables ». Les corruptions mémoire en sont un symptôme, représentant environ 70% des vulnérabilités exploitables. L’une des magies du langage Rust est la preuve d’absence de telles vulnérabilités. Durant cette présentation, Jonathan Brossard se propose de revenir sur les fondamentaux des corruptions mémoire, et sur la gestion très particulière de la mémoire en Rust, et ses notions de « borrowing », « lifetime », « ownership » et « affine types ». L’exception confirmant la règle, il illustrera ensuite avec des exemples concrets les vulnérabilités Rust, leur débogage au moyen de l’outil « Witchcraft Compiler Collection » dont il est l’auteur, et la notion de « preuve partielle de vulnérabilités » sur lequel il travaille dans le cadre de sa thèse.
10h35 – 11h05 : Rust pour le trading haute fréquence
Nicolas Kateb, Senior Trader | XBTO
Le trading haute fréquence impose des contraintes élevées sur le logiciel réalisant cette activité.
Ces contraintes sont de plusieurs ordres, d’abord en termes de performance, mais aussi en termes de robustesse, de résilience et donc de sûreté.
Dans cette présentation, nous détaillerons ces contraintes métier et comment elles peuvent être adressées par les langages de programmation, comme, par exemple, le non-déterminisme inhérent aux langages avec un garbage collector, l’accès bas niveau, etc.
XBTO utilisant Rust pour son système de trading haute fréquence, nous reviendrons sur cette expérience avec un état des lieux du système ainsi que les leçons qui peuvent être tirées de cette réalisation. En particulier, en quoi Rust a été déterminant dans le succès de ce projet et quelles sont les qualités de Rust mises en œuvre.
11h05 – 11h25 : Pause
11h25 – 11h55 : Rust et WebAssembly, levier de frugalité et de robustesse pour les traitements de données
Reyyan Tekin, Engineering Delivery Manager | Thales
Dans cette présentation, nous allons explorer comment Rust et WebAssembly (Wasm) peuvent être utilisés pour déployer des fonctions de traitement de données métiers avec des contraintes strictes de frugalité et de sécurité. Nous aborderons un cas d’usage concret et innovant, celui de l’étude des populations d’oiseaux, qui a valu à notre solution plusieurs récompenses dans le domaine de l’innovation et du développement frugal.
Ce retour d’expérience fournira aux développeurs et décideurs industriels des idées concrètes sur l’implémentation de solutions frugales et sécurisées avec Rust et Wasm, tout en soulignant la pertinence de ces technologies dans la R&D et les applications de suivi environnemental.
12h00 – 12h30 : Rust & WebAssembly : Sécurité et Portabilité du Cloud aux Enclaves
Etienne Bossé, Chef de plateforme ingénierie | Secretarium France
Jean-Jacques Lafay, Expert en developement logiciel | Secretarium France
Rust et WebAssembly (Wasm) ouvrent de nouvelles perspectives pour le développement et le déploiement sécurisé d’applications, du cloud à l’edge computing jusqu’aux environnements d’exécution de confiance (TEE).
Dans cette présentation, nous verrons comment Rust permet d’écrire du code à la fois sécurisé et performant, capable de s’exécuter dans des enclaves sécurisées grâce à WebAssembly.
Nous explorerons également son intégration efficace avec du C/C++, y compris dans des environnements sous contrainte comme les TEEs. Nous verrons pourquoi les garanties de sécurité de Rust et WebAssembly se complètent pour renforcer la protection des applications, et en quoi Rust est le langage idéal pour WebAssembly, grâce à son modèle mémoire sécurisé et son écosystème mature.
12h30 – 14h00 : Cocktail déjeunatoire
14h00 – 14h30 : Rust dans l’automobile : efficacité, sécurité, sûreté, et attractivité
Jean-François Bortolotti, Software Expert Leader | Ampere (Renault Group)
Frédéric Ameye, Software Cybersecurity Expert | Ampere (Renault Group)
Au-delà des avantages techniques indéniables de Rust sur les propriétés de sûreté mémoire de Rust, les autres co-bénéfices sont très nombreux. Dans les industries régulées traditionnelles, où le cycle en V est roi, le langage permet des optimisations conséquentes des cycles de développement, provoquant un gain en « time to market » de l’ordre de +20% à +100%.
Outre ces gains techniques, il s’agit également de proposer une meilleure attractivité à nos métiers, à la fois dans les environnements multimédia, mais aussi dans les environnements liés à la sûreté de fonctionnement et à l’assistance à la conduite.
Ampere (Groupe Renault) expliquera son point de vue sur la question, son expérience et la roadmap future d’utilisation de Rust, et l’impact sur l’écosystème des fournisseurs automobiles (et au-delà).
14h35 – 15h05 : Rust dans l’embarqué : retours sur le développement d’une borne de recharge pour véhicules électriques
Hugo Mercier, Software Architect | IoT.bzh
Dans le but de réduire les coûts de développement et les risques cyber, voilà deux ans que IoT.bzh a décidé de passer de C/C++ à Rust pour les couches applicatives.
Cette présentation propose un retour d’expérience sur l’utilisation de Rust pour le développement d’une borne de charge pour véhicules électriques mené avec un équipementier automobile. Le système est déployé sur une plateforme Linux embarqué qui met en œuvre un framework applicatif optimisé pour la sécurité [1].
Nous détaillerons les spécificités de l’utilisation de Rust dans ce contexte, les avantages qu’il offre et les défis que nous avons rencontré lors du développement et de l’intégration, comme l’interfaçage avec des bibliothèques C asynchrones ou le manque de bibliothèques cryptographiques Rust mûres et certifiées.
Nous ouvrirons la discussion sur une revue des efforts actuels de la communauté Rust pour s’attaquer à ces défis.
[1] https://github.com/tux-evse
15h10 – 15h40 : Ariel OS: a Rust embedded OS standing on the shoulders of giants
Romain Fouquet, Ingénieur de recherche | Inria Saclay
Dans le cadre d’une communauté open-source internationale que l’Inria a fondée et que nous animons, nous développons un système d’exploitation en Rust pour microcontrôleurs, destiné aux systèmes embarqués à basse consommation énergétique, connectés et sécurisés.
Nous nous proposons dans un premier temps de présenter les spécificités du langage pour les systèmes embarqués ainsi que différentes façons dont l’écosystème existant en tire parti, avant de mettre en lumière les limitations actuelles de cet écosystème pour le développement d’applications embarquées. Dans un second temps, nous présenterons Ariel OS, un système d’exploitation qui vise à répondre à ces limitations tout en s’appuyant sur l’écosystème existant, notamment par l’utilisation d’un build system adapté, afin de créer des applications connectées et portables facilement.
15h40 – 16h00 : Pause
16h00 – 16h30 : Une démarche de certification industrielle avec Ferrocene et TrustInSoft Analyzer
Aïssata Maïga, Ingénieure logiciel | Ferrous Systems
Sasha Pourcelot, Ingénieure Rust & OCaml | TrustInSoft
Rust est de plus en plus utilisé dans l’industrie. Le langage et son écosystème sont assez mûrs pour pouvoir être utilisé dans le monde de l’embarqué et des systèmes critiques avec les contraintes spécifiques à ces domaines.
Ferrous Systems a qualifié plusieurs versions du compilateur Rust ces deux dernières années, permettant ainsi d’utiliser Rust dans les systèmes critiques tels que l’industrie automobile, les applications médicales et les systèmes électriques. De son côté, TrustInSoft propose des logiciels et des services d’analyse statique de code qui ont permis de vérifier formellement des systèmes embarqués écrits en Rust.
Cette présentation porte sur ces deux outils dans le cadre de l’utilisation de Rust pour les systèmes critiques et la vérification formelle : (1) Ferrocene, la première toolchain de Rust open source et l’analyseur statique TrustInSoft Analyzer ; (2) Nous décrirons le développement de ces outils en interne ; et enfin (3), nous présenterons comment l’utilisation combinée de ces outils permettra d’améliorer performances et sécurité des applications ; tout en respectant les méthodologies et contraintes classiques du monde des systèmes critiques.
16h35 – 17h05 : Vérification Formelle de Rust pour Ethereum
Guillaume Claret, Fondateur / Ingénieur en méthodes formelles | Formal Land
Dans cette présentation nous parlerons de notre expérience dans la vérification formelle de code Rust pour l’interpréteur de smart contracts de la blockchain Ethereum.
La vérification formelle permet de s’assurer du respect d’une spécification pour tous les cas d’exécution d’un programme, pour les situations où la correction est critique. Nous montrerons comment nous avons spécifié formellement le comportement d’une base d’environ 5.000 lignes de Rust à l’aide de notre outil « coq-of-rust », ainsi que les limites de cette approche et les pistes d’amélioration.
17h05 – 17h10 : Conclusion
17h10 – 19h : Cocktail networking