Non classé

Conteneurs Windows 101 – Hysolate – Bien installer son serveur

Par Titanfall , le 30 juillet 2020 - 9 minutes de lecture

[bzkshopping keyword= »Minecraft » count= »8″ template= »grid »]

Vous connaissez probablement le concept de conteneurs – un logiciel léger qui regroupe un programme et toutes ses dépendances et sa configuration dans un seul package, qui peut être facilement distribué et exécuté de manière fiable et déterministe sur plusieurs plates-formes, environnements et systèmes d'exploitation différents.

Les conteneurs ont été très populaires ces dernières années et étaient principalement utilisés pour distribuer et gérer des applications sur des serveurs Linux. Vous connaissez probablement Docker et les technologies associées, telles que Docker Swarm et Kubernetes – tous deux sont des systèmes d'orchestration de conteneurs qui vous permettent de distribuer, gérer et mettre à l'échelle des conteneurs sur des serveurs Linux.

Mais qu'en est-il de Windows? Dans cet article, nous tenterons de faire la lumière sur plusieurs technologies liées aux conteneurs sous Windows, y compris les différents types de technologies d'isolation de conteneurs, Linux sur Windows et d'autres implications de cette nouvelle technologie Windows.

Conteneurs Windows

Il y a quelque temps, une variante de Docker pour Windows appelée «Docker Toolbox» exécutait une instance de VirtualBox avec un système d'exploitation Linux au-dessus, afin que les développeurs Windows puissent tester leurs conteneurs avant qu'ils ne soient implémentés sur des serveurs Linux.

Récemment, Microsoft a acquis la technologie des conteneurs pour exécuter natif sur Windows Server et Windows 10. Microsoft et Docker ont collaboré pour créer une variante distincte de Docker pour Windows et Docker Swarm et Kubernetes ont suivi peu de temps après.

Aujourd'hui, les développeurs Windows peuvent créer et exécuter des conteneurs Windows et Linux natifs sur leurs appareils Windows 10, puis les distribuer et les orchestrer sur des serveurs Windows ou même des serveurs Linux, dans le cas des conteneurs Linux.

Les conteneurs Linux traditionnels constituent une couche d'isolation légère, utilisant des fonctionnalités de base telles que le champ de nom et l'isolation de processus pour exécuter le logiciel séparément des autres conteneurs et de l'hôte. Bien qu'ils partagent le même noyau, les conteneurs ont plusieurs services de système d'exploitation, tels qu'un système de fichiers virtualisé, qui empêchent un conteneur de falsifier une autre configuration. La légèreté et la sécurité décente ont fait des conteneurs une excellente alternative aux machines virtuelles traditionnelles, nous permettant d'utiliser les serveurs plus efficacement et de concentrer la puissance de calcul sur nos applications, plutôt que sur l'infrastructure ci-dessous. Bien sûr, se fier au cœur pour la sécurité n'est pas toujours suffisant, et certaines applications peuvent encore nécessiter une sécurité améliorée pour une isolation de classe mondiale.

Technologies d'isolation des conteneurs

Sur Windows, il existe deux types de conteneurs, caractérisés par leur niveau d'isolation:

  • bac à sable – similaire aux conteneurs Linux traditionnels dans leur facilité et le partage des cœurs avec les conteneurs frères et l'hôte. Ils sont basés en interne sur de nouveaux objets de base appelés Silos, qui est la variante Microsoft pour les espaces de noms Linux. Avec les silos, les objets de base de Windows tels que les fichiers, les registres et les canaux peuvent être isolés dans des périphériques logiques distincts – des conteneurs.

(source: Microsoft)

Un inconvénient majeur de ce type de conteneur est le manque de flexibilité dans le choix du noyau sous-jacent – l'application dans le conteneur est étroitement liée au noyau de l'hôte. Non seulement je ne pourrais pas exécuter mon application localement sur un noyau Windows Server 2016, mais si mon hôte est Windows 2019, je ne pourrais certainement pas l'exécuter sur un noyau Linux.

  • Isolation Hyper-V – une nouvelle façon de gérer les conteneurs, qui offre une flexibilité et une compatibilité beaucoup plus grandes entre le conteneur et le cœur de l'hôte. Dans ce mode, chaque conteneur s'exécute dans un machine virtuelle hautement optimisée, obtient le noyau entier pour lui-même. Il est possible d'exécuter à la fois Windows et Linux dans la machine virtuelle, et de laisser le développeur choisir le bon système d'exploitation pour ses besoins, pour exécuter son application conteneurisée.

(source: Microsoft)

Ces conteneurs peuvent ressembler beaucoup aux machines virtuelles traditionnelles. Cependant, ils sont beaucoup plus optimisés pour leur objectif spécifique. Un exemple serait Conteneurs Linux sur Windows 10 (ou LCOW), où l'exécution d'un conteneur Linux ne ferait pas tourner un système d'exploitation complet à l'intérieur de la machine virtuelle, mais utiliserait à la place un très petit noyau Linux «avec juste assez de système d'exploitation» pour prendre en charge les conteneurs Linux natifs. L'application est ensuite exécutée sous un conteneur Linux traditionnel isolé par processus, avec une pénalité minimale en termes de performances.

Un autre grand avantage de ce type de conteneur est la sécurité beaucoup plus élevée, dérivée de isolation au niveau du matériel utilisé pour alimenter les machines virtuelles.

Lorsque nous examinons la sécurité des conteneurs traditionnels, nous pouvons facilement conclure que la majeure partie dépend du noyau du système d'exploitation et fournit les fonctions du conteneur. Les logiciels malveillants qui accèdent au noyau peuvent facilement déchirer les murs entre les espaces de noms Linux ou les silos Windows, compromettant les conteneurs frères ou même l'hôte. Nous devons garder à l'esprit que les noyaux Linux et Windows sont d'énormes codes monolithiques (et nous pouvons ajouter des pilotes tiers en plus de cela), et effectuer de nombreuses tâches différentes sur le système. Une base de code plus large a plusieurs vulnérabilités à exploiter par les attaquants.
Les machines virtuelles, en revanche, et en particulier VMM, consistent généralement en un code plus petit (par exemple, l'ordre d'environ 100 000 lignes de code exposées au système d'exploitation invité), qui est écrit pour une tâche très spécifique. Combinées avec les fonctionnalités de sécurité de virtualisation matérielle sur le CPU, celles-ci sont beaucoup plus difficiles à attaquer. Pour preuve, les CVE hyperviseurs sont beaucoup plus rares que les CVE OS critiques.

Conteneurs de serveurs et conteneurs clients

Lorsque nous parlons de conteneurs, nous faisons généralement référence aux conteneurs d'applications pour le serveur et le centre de données. Mais il s'avère qu'il existe plusieurs utilisations de cette grande technologie.
Sur Windows 10, nous pouvons trouver une plus grande utilisation des conteneurs pour exécuter des applications clientes, avec une interaction utilisateur et peut-être même une interface utilisateur (non basée sur la console).

Un bon exemple serait Sous-système Windows pour Linux (ou WSL) v2 qui permet d'en exécuter un système d'exploitation Linux complet dans Windows. C'est une bonne nouvelle pour les développeurs qui peuvent désormais utiliser le shell Linux et de nombreux outils Linux pour leur travail, directement depuis Windows CMD. Contrairement à une machine virtuelle Linux traditionnelle, les instances WSL apparaissent en 2-3 secondes, avec une empreinte mémoire très légère, et offrent de bonnes performances d'interopérabilité (vous avez accès à vos fichiers Windows à partir de Linux et vice versa).
Notez que l'ancien WSL v1 émulait les appels système Linux au-dessus d'un noyau Windows. Cela convenait à certaines applications, mais de nombreuses autres nécessitaient des appels système supplémentaires non pris en charge. Comparé aux machines virtuelles traditionnelles, le WSL v1 était beaucoup plus rapide à «démarrer» et avait une plus petite empreinte sur le système. Avec l'introduction de WSL v2, qui est maintenant basé sur LCOW, Microsoft a pu résoudre les problèmes de compatibilité de WSL v1 sans compromettre les performances (ils l'ont amélioré dans certains aspects, tels que les E / S de fichiers sur le volume Ext4) et la même expérience utilisateur.

Un autre exemple serait Windows Defender Application Guard (ou WDAG), qui fournit une instance Microsoft Edge distincte et isolée, utilisée pour accéder à des sites Web potentiellement malveillants, en conservant les menaces à l'intérieur du conteneur basé sur la VM, en utilisant isolation au niveau du matériel. Ce conteneur est hautement optimisé et fournit un ordonnanceur de noyau hébergé, gestion dynamique de la mémoire et GPU virtuel, afin qu'il puisse fonctionner efficacement et réduire la charge de la batterie de votre ordinateur portable. Une autre optimisation notable est déduplication du système de fichiers avec l'hôte – la plupart des fichiers core ne sont affichés qu'une seule fois sur le disque physique et sont mappés (en lecture seule) dans les conteneurs avec des points de réparation NTFS.

Et après?

Il est clair que Microsoft poursuit ses investissements continus dans les technologies de conteneurs Windows, et il semble que la technologie a mûri et s'est étendue à de nouveaux territoires, y compris non seulement les applications basées sur le serveur, mais aussi les applications basées sur le client telles que Edge. Chez Hysolate, nous avons pu utiliser la dernière technologie Windows Containers pour diviser le bureau en 2 zones de travail isolées et fonctionner efficacement côte à côte, offrant la grande gérabilité et la prévisibilité des conteneurs à l'environnement utilisateur interactif, tout en étant isolés avec une isolation de qualité VM. pour une sécurité accrue.

Découvrez comment Hysolate étend l'isolation du navigateur jusqu'au point de terminaison. Demandez une démo avec un spécialiste pour voir par vous-même.

Click to rate this post!
[Total: 0 Average: 0]

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.