Après plusieurs mois d’essais et d’améliorations, Alex Ionescu, le développeur principal du noyau de ReactOS et fondateur de Winsider Seminars & Solutions Inc., revient sur les détails du noyau Linux intégré à Windows lors de la conférence Black Hat qui a eu lieu il y a quelque temps de cela.
Dans son exposé, Ionescu explique que l’intégration de Windows Subsystem for Linux (WSL) est partie du projet Drawbridge. Le but de ce projet était de concevoir une version allégée de Windows afin d’exécuter les applications dans un environnement tiers. En principe, en exécutant les systèmes dans un environnement virtuel, on obtient ce résultat. Toutefois, cette méthode fait appel à beaucoup de ressources, ce qui constitue un inconvénient majeur.
Avec le projet Drawbridge, les choses ont été pensées autrement. Les ingénieurs chez Microsoft ont souhaité mettre en œuvre l’exécution d’un OS et des applications affiliées dans un environnement minimal requérant peu de ressources. Les avancées dans cette voie ont abouti à l’implémentation du principe de library OS, ou simplement un système d’exploitation en bibliothèque et des processus pico.
Un système d’exploitation en bibliothèque est en fait un système d’exploitation recomposé et exécuté sous la forme d’un ensemble de bibliothèques. Compte tenu du fait qu’il s’exécute sous la forme de bibliothèques, il nécessite des ressources matérielles réduites. Toutefois, pour éviter que l’évolution ou les changements du système hôte interfèrent avec les processus de ce système d’exploitation réduit et aussi assurer la sécurité de ce dernier, les ingénieurs ont isolé cette implémentation dans ce qu’ils ont appelé un processus pico. Un processus pico n’est plus ni moins qu’un conteneur permettant d’isoler les appels d’application exécutés comme des processus.
Et dans le contexte du projet Drawbridge, le library OS peut exécuter des applications dans un environnement fermé sans interférer avec certaines applications ou certains processus du système hôte. Et comme pièce maîtresse pour assurer l’intégrité du fonctionnement, nous avons le pilote du mode kernel supportant le processus pico.
Il s’assure de la séparation entre le noyau du système hôte et le library OS en mode utilisateur. Les processus pico sont apparus pour la première fois dans Windows 8.1 et Windows Server 2012R2, mais étaient limités au projet Drawbridge. Au fil des années, de nouvelles fonctionnalités et des améliorations ont été bâties sur ces deux composantes à savoir le processus pico et le library OS. C’est à partir de ce système que Microsoft a pu intégrer la couche WSL pour assurer la compatibilité entre Linux et Windows au sein de Windows 10.
À la conférence Black Hat, en plus d’avoir abordé la genèse du projet, Ionescu s’est également étendu sur différents points relatifs au noyau Linux dans Windows. Ci-dessous, un résumé des points abordés :
- De nouveaux pilotes (lxcore.sys et lxss.sys) ont été intégrés dans la version de Windows 10 Anniversary afin d’implémenter les appels système Linux et permettre la compatibilité du noyau en tant que sous-système Windows ;
- Aucun réel code Linux ou code GPL semble être utilisé dans ces pilotes dans la mesure où la plupart de l’implémentation est juste un wrapper autour des appels système du noyau NT (fichier IO, réseau IO, ordonnancement CPU, etc.) ;;
- Il y a des communications interprocessus pour communiquer et exécuter directement les processus sous le sous-système Linux à partir de Windows en faisant recours à une interface COM exposée non documentée ;;
- Les processus créés et exécutés par le sous-système ne paraissent pas être des processus Windows normaux. Ils sont créés comme des processus Pico avec peu d’informations provenant à leur sujet. Il n’y a pas de documentation des API sur la possibilité d’inspecter les processus, car la réponse aux appels système provient du kernel ;
- Le fait de ne pas savoir comment les binaires Linux sont gérés sous Windows peut être exploité par des tiers malveillants pour mener des attaques puisque les solutions d’antivirus actuels ne sont pas à même de gérer les binaires Linux sous Windows comme cela se fait avec les binaires de la plateforme hôte. Certains pourraient même exploiter cette méconnaissance de l’environnement du sous-système pour installer des portes dérobées dans la mesure où le sous-système Linux peut accéder au système de fichier entier.
Source : YouTube
Et vous ?
Que pensez-vous de ce sous-système Linux ?
L'avez-vous utilisez depuis son intégration dans Windows 10 ? Quel retour en faites-vous ?
Voir aussi
La rubrique Windows, Forum Windows 10, Cours et tutoriels Windows, Forum Windows