Nexedi propose des stages pour des étudiants ou futurs ingénieurs intéressés par les logiciels libres avec embauche possible en fin de stage. Le contenu de chaque stage est adapté à chaque personnalité et à la durée du stage.
Ces sujets de stage peuvent également constituer la première mission lors d'une embauche en CDI d'un développeur confirmé et déjà fortement impliqué dans le domaine des logiciels libres.
Nous proposons par exemple d'étendre le système d'initrd de Debian pour disposer d'une forme restreinte de secure boot ou de verified boot. L'objectif d'un verified boot est de garantir que le système d'exploitation qui s'exécute sur un serveur, un PC ou un smartphone est bien celui qui est sensé s'exécuter et non autre chose (et non par exemple un système vérolé comprenant un rootkit ou un botnet).
La notion de verified boot a été déployée de façon massive et avec succès en informatique grand public avec ChromeOS. L'article du MIT "Security of Google Chromebook" permet de disposer rapidement d'une vue d'ensemble de ce que peut être un système de boot sûr et vérifié (et libre).
Il existe déjà plusieurs projets autour du secure boot sous Debian :
l'intégration du Secure Boot UEFI à Debian 10
l'intégration de signatures à GRUB
l'intégration d'un contrôle de cohérence des fichiers au noyau Linux avec fs-verity
Cependant, aucune de ces solutions ne répond de façon simple à la question : est-ce que ce qui tourne sur ma Debian est bien ce qui est sensé tourner ? En d'autres termes, qui me dit que les commandes ls et sha n'ont pas été modifiées pour que ls modifie le filesystem et sha ne me permette pas de calculer le hash de ls ? Si 'fs-verity" s'approche d'une solution, cela suppose d'utiliser une Debian en mode read-only, ce qui n'est pas pratique si l'on veut par ailleurs pouvoir effectuer des mises à jour incrémentales à chaud avec apt (et non avec un système de build embarqué de type Elbe). Quant à Tripwire, s'il est exécuté hors de l'initrd, comment être certain qu'il n'a pas lui-même été altéré ?
Nous proposons donc d'améliorer le générateur d'initrd de Debian pour que, lors du processus de boot, un utilitaire intégré à l'initrd effectue une analyse du filesystem et compare la liste des fichiers ou leurs hash à une liste pré-établie de valeurs. En cas de non conformité, un système central est notifié.
Un premier prototype sous forme d'application UEFI a été réalisé à partir de Dracut. Un premier utilitaire de scan a été écrit en Rust, golang et Cython+ afin de comparer les avantages de chaque langage dans un initrd.
Il reste désormais à déployer ce prototype sur un ensemble signifcatif de serveurs du cloud Rapid.Space pour ensuite l'étendre en fonction des résultats obtenus.
Ce stage permet de développer ou de renforcer des compétences fortes dans le domaine des systèmes d'exploitation GNU/Linux, de la sécurité et du processus de démarrage d'un système d'exploitation. Ces compétences peuvent être utiles ensuite soit dans le domaine du cloud soit dans celui de l'informatique embarquée. Une dimension de recherche peut également être envisagée autour des aspects de sécurité.
Nexedi est (probablement) le premier éditeur européen de logiciels libres avec un porte-feuille de technologies libres de plus de 15 millions de ligne de code. Les logiciels libres de Nexedi permettent de se passer de toute dépendance aux GAFAM dans le domaine de l'informatique d'entreprise.
Une présentation détaillée de Nexedi est disponible en ligne : Nexedi Status and Roadmap.
Une présentation détaillée de Rapid.Space est disponible en ligne : Hyper Open Cloud 101.
En savoir plus sur Nexedi :
Logement à Lille. Voyages à des sprint de développement. Barbecue. Machine à café "Jura" et café issue de l'économie raisonnée. Thé sélectionné par des ingénieurs chinois ou japonais.