A l'instar d’autres éditeurs de systèmes d’exploitation pour applications critiques comme eSOL, AdaCore, Lynx Software ou Elektrobit, la société Sysgo a décidé elle aussi d’inclure le langage de programmation Rust, axé sur la sécurité, pour le développement de code applicatif sur son système d'exploitation temps réel et hyperviseur PikeOS.
Pour rappel, Rust - qui se prête à la programmation de bas niveau nécessaire à un système d'exploitation - est un langage initié par les ingénieurs de Mozilla dès 2006, dont la version 1.0 avec un compilateur stable été publiée en 2015. Rust se veut une alternative aux langages de programmation classiques comme le C et le C++ en évitant notamment les problèmes de sécurité mémoire qui affligent ces langages, sans recourir à la complexité de Java (pas de mécanismes de type ramasse-miettes dans Rust).
De fait, sa faible sensibilité aux débordements de mémoire tampon par rapport aux autres langages de programmation, élimine l'un des vecteurs d'attaque majeurs que les pirates exploitent pour s'emparer d'un système.
Au-delà, on peut noter que Rust a été spécialement conçu dès le départ en mettant l'accent sur la sécurité mémoire et la sécurité des threads, par le biais d'un typage fort. De fait, Rust est un langage de programmation qui combine une sûreté mémoire optimisée et un degré de contrôle élevé, tout en s’intégrant aux bases de code écrites en C/C++ existantes.
Rust présente aussi un concept de sécurité préventive qui permet aux programmeurs de détecter et d'éviter plus facilement les erreurs critiques pour la sécurité au stade du développement. Ce qui contribue à réduire les vulnérabilités des applications et ainsi à se protéger contre les cyberattaques.
Selon Sysgo, avec le langage Rust, aucun système d'exploitation invité et/ou aucune interface n'est nécessaire, comme avec l’interface Posix. Les applications peuvent ainsi s'exécuter directement sur une instance native de PikeOS, ce qui les rend à la fois économes en ressources et plus faciles à certifier par rapport à des exigences de sécurité spécifiques à une industrie et aux normes ad hoc en vigueur.
Concrètement, Rust a été implanté de manière que les fonctionnalités essentielles de PikeOS puissent être utilisées, notamment le système de gestion de fichiers certifiable, les ports de communication et la gestion des propriétés.
Avec PikeOS (version 5.1.3), certifié en matière de sécurité selon les critères communs au niveau EAL5+, Sysgo souligne que Rust forme une base cybersécurisée et fonctionnellement sûre pour les applications embarquées, une approche sans précédent dans le paysage des systèmes embarqués sûrs et sécurisés. Les domaines d'application pour la combinaison des deux technologies sont à chercher dans les applications où aucun compromis ne peut être fait dans la protection système, comme les passerelles sécurisées, ou dans les applications qui doivent répondre aux exigences de sécurité fonctionnelle les plus élevées. Les marchés visés incluent le médical, l'avionique, l'automobile, le ferroviaire et l'industriel.
Pour rappel, PikeOS est également précertifié selon de nombreuses normes de sécurité logicielles de l'industrie telles que la DO-178C pour l'avionique, l’EN 50128 et l’EN 50657 pour le rail, l’ISO 26262 pour l'automobile, l’EN 61508 pour l'industrie et la CEI 62304 pour le médical.
Vous pouvez aussi suivre nos actualités sur la vitrine LinkedIN de L'Embarqué consacrée à la sécurité dans les systèmes embarqués : Embedded-SEC