Au sein de la division « scientifique et technique » de la sous-direction Expertise, le laboratoire « Sécurité du Logiciel » (LSL) est responsable du développement logiciel robuste recouvrant toutes les étapes du cycle de développement.
1. Description du stage
Rust est un langage conçu pour éviter les erreurs mémoire grâce à son système d’ownership et de borrowing. Chaque donnée à un propriétaire unique, et l’accès à la mémoire est strictement contrôlé pour éviter les pointeurs nuls, les fuites mémoires ou les accès concurrents dangereux. De même, afin de garantir que les références restent valides et sûres, Rust demande d’ajouter des règles de durée de vie (lifetimes).
Ce système rend Rust très sûr, mais aussi contraignant : certaines structures de données ou optimisations sont difficiles à réaliser[1]. De même, lors de programmation bas niveau comme des drivers ou des microcontrôleurs, le code doit interagir avec des registres matériels, des zones de mémoire partagée ou des interruptions matérielles, ce qui n’est pas compatible avec les contraintes Safe de Rust. Pour les cas où ces restrictions sont trop fortes, Unsafe Rust permet de contourner les règles, au prix d’une sécurité qui repose alors sur le développeur.
2. Objectifs du stage
· Avec l’encadrant, vous allez modéliser un driver sous forme de micro-langage[2],
· coder en Rust le driver et identifier des structures de codes,
· produire un générateur de code capable de produire un driver à partir de la modélisation.
[1] ASTRAUSKAS VYTAYTAS et al. « How do programmers use unsafe rust? », OOPSLA 2020, ACM Digital Library. [https://dl.acm.org/doi/10.1145/3428204]
[2] REVELILLERE Laurent et al. « A DSL Approach to Improve Productivity and Safety in Device Drivers Development », Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.
Vous suivez une formation dans le domaine des technologies de l’information et de la communication avec une spécialisation en sécurité informatiques. Vous avez de l’appétence pour la programmation avec éventuellement des connaissances en Rust.
· Si votre candidature est présélectionnée, vous serez contacté(e) pour apprécier vos attentes et vos motivations au cours d’un entretien téléphonique ou physique.
· Vous pourrez faire l’objet d’une procédure d’habilitation.
Rencontrez Nicolas, Chef de projet de cyberdéfense
Rencontrez Alexandre, Chef de bureau adjoint Ingénierie du cadre normatif
Ces entreprises recrutent aussi au poste de “Développement de logiciels et de sites Web”.