Conteneurs Windows Server 2016
Sep 27, 2018
Windows Server 2016 introduit la technologie des conteneurs pour isoler les applications, réduire les surfaces d'attaque et améliorer la scalabilité. Les conteneurs Windows Server partagent le noyau du système d'exploitation hôte pour une isolation légère des processus, tandis que les conteneurs Hyper-V ajoutent une séparation au niveau de la machine virtuelle pour une sécurité renforcée. Avec l'intégration de Docker et le support de Nano Server, les conteneurs rationalisent le développement et les opérations tout en appliquant le principe du moindre privilège et en améliorant la sécurité axée sur l'identité.
Vous pouvez améliorer la sécurité de votre infrastructure de développement d'applications en réduisant la taille et la portée des ressources d'application et de calcul. Une manière de faire cela est de conteneuriser les charges de travail. Les conteneurs Windows Server et Microsoft Hyper-V vous permettent d'isoler les charges de travail les unes des autres et du système d'exploitation. Même si un conteneur est compromis par un attaquant, il sera difficile pour l'attaquant d'accéder au système d'exploitation hôte. Les conteneurs offrent également un environnement standardisé pour les équipes de développement, de test et de production.
Téléchargez le guide gratuit :
Conteneurs
Les conteneurs fournissent un environnement d'exploitation isolé et portable pour les applications. Du point de vue de l'application, un conteneur semble être un système d'exploitation Windows complet et isolé avec son propre système de fichiers, dispositifs et configuration. Par conséquent, à bien des égards, les conteneurs sont comme des machines virtuelles (VM) car ils exécutent un système d'exploitation, ils prennent en charge un système de fichiers et vous pouvez y accéder à travers un réseau de manière similaire à toute autre machine physique ou VM.
Les conteneurs sont des environnements virtuels qui partagent le noyau du système d'exploitation hôte mais fournissent une isolation de l'espace utilisateur, ils offrent donc un environnement idéal dans lequel une application peut fonctionner sans affecter le reste des composants du mode utilisateur du système d'exploitation et sans que les autres composants du mode utilisateur affectent l'application. En utilisant des conteneurs, les développeurs peuvent créer et tester rapidement des applications dans un environnement isolé tout en utilisant seulement quelques ressources du système d'exploitation. Cela signifie que les conteneurs n'ont pas besoin de tous les processus et services qu'un système d'exploitation sur une VM pourrait utiliser.
Windows Server 2016 prend en charge deux types de conteneurs :
- Conteneurs Windows Server. Ces conteneurs fournissent l'isolation des applications grâce à la technologie d'isolation des processus et des espaces de noms. Les conteneurs Windows Server partagent le noyau du système d'exploitation avec l'hôte du conteneur et avec tous les autres conteneurs qui s'exécutent sur l'hôte.
- Conteneurs Hyper-V. Ces conteneurs renforcent l'isolation fournie par les conteneurs Windows Server en exécutant chaque conteneur dans une machine virtuelle hautement optimisée.
L'utilisation de conteneurs présente de multiples avantages. La réduction de la taille de l'OS signifie que vous devez maintenir moins de composants du système d'exploitation, ce qui entraîne à son tour moins de risques de sécurité potentiels. La taille réduite de l'OS aide également à améliorer la scalabilité.
Contenu connexe sélectionné :
Docker
Pour exécuter une charge de travail d'application dans un conteneur, vous devez utiliser Docker. Docker est un ensemble d'outils open-source et de services basés sur le cloud qui fournissent un modèle commun pour empaqueter (conteneuriser) le code d'application dans une unité standardisée pour le développement logiciel. Cette unité standardisée, ou conteneur Docker, est un logiciel qui est enveloppé dans un système de fichiers complet qui comprend tout ce dont il a besoin pour fonctionner, y compris le code, l'environnement d'exécution, les outils système, les bibliothèques système et tout ce que vous pouvez installer sur un serveur. Vous devez télécharger Docker séparément ; il ne fait pas partie du support d'installation de Windows Server 2016.
Nano Server
Microsoft Nano Server est une option d'installation relativement nouvelle pour Windows Server 2016. C'est un système d'exploitation léger conçu pour être utilisé avec des instances de conteneurs virtualisés. Il n'y a pas d'interface utilisateur ; vous devez gérer Nano Server à distance en utilisant PowerShell, mais ce PowerShell est différent de la version standard. À partir de la version 1803 de Windows Server, Nano Server est disponible uniquement en tant qu'image de système d'exploitation basée sur des conteneurs, et vous devez l'exécuter en tant que conteneur sur un hôte de conteneurs, tel que Docker. Vous pouvez dépanner ces nouveaux conteneurs Nano en utilisant Docker et les exécuter sur IoT Core.
Une instance Nano Server ne peut pas fonctionner en tant que contrôleur de domaine Active Directory. En particulier, elle ne prend pas en charge les fonctionnalités suivantes :
- Stratégie de groupe
- Groupement de cartes réseau
- Adaptateurs de bus hôte virtuels
- Accès au serveur proxy à Internet
- System Center Configuration Manager
- System Center Data Protection Manager
Nano Server prend en charge les rôles suivants :
- Services de fichiers
- Hyper-V
- IIS
- Serveur DNS
FAQ
Comment sécurisez-vous les conteneurs Windows Server 2016 contre l'escalade des privilèges ?
La sécurisation des conteneurs Windows commence par l'identité – car la Data Security That Starts with Identity signifie contrôler qui peut accéder à quoi au niveau du conteneur. Les conteneurs Windows Server 2016 fonctionnent avec une isolation des processus par défaut, ce qui offre une certaine protection, mais vous avez besoin de contrôles de sécurité multicouches pour prévenir les attaques d'escalade de privilèges.
Tout d'abord, mettez en œuvre les principes du moindre privilège en exécutant les conteneurs avec des comptes d'utilisateur non administrateur lorsque cela est possible. Utilisez la directive USER dans votre Dockerfile pour spécifier un compte à faibles privilèges, et évitez d'exécuter les conteneurs en tant que Local System ou Administrator à moins que cela ne soit absolument nécessaire. Configurez les limites de ressources des conteneurs pour prévenir les attaques d'épuisement des ressources qui pourraient conduire à une escalade des privilèges.
Mettez en œuvre des comptes de service gérés par groupe (gMSAs) pour les conteneurs nécessitant une authentification de domaine – cela fournit une gestion automatique des mots de passe et réduit l'exposition des informations d'identification. Configurez les politiques de contrôle d'application Windows Defender pour restreindre les applications pouvant être exécutées dans vos conteneurs, créant ainsi une barrière supplémentaire contre l'exécution de code malveillant.
Pour une isolation renforcée, utilisez des conteneurs Hyper-V au lieu de conteneurs Windows Server lors de la manipulation de données sensibles. Les conteneurs Hyper-V offrent une isolation au niveau matériel qui rend la progression latérale beaucoup plus difficile pour les attaquants. Surveillez en continu les accès aux conteneurs et les événements d'authentification – vous ne pouvez pas gérer ce que vous ne pouvez pas voir, et détecter un comportement à risque avant qu'il ne se transforme en violation nécessite une visibilité en temps réel sur l'activité des conteneurs.
Activez la redirection des événements Windows pour centraliser les journaux de sécurité des conteneurs, et configurez la surveillance du journal des événements de sécurité pour les échecs d'authentification, les tentatives d'escalade de privilèges et la création de processus suspects au sein des conteneurs. L'analyse de sécurité régulière des images de conteneurs avant le déploiement aide à prévenir que les vulnérabilités connues atteignent les environnements de production.
Quelles sont les implications de Identity Management des conteneurs Windows ?
Les conteneurs Windows héritent du contexte de sécurité de l'hôte, ce qui crée des défis uniques en matière d'Identity Management qui ont un impact direct sur votre Data Security Posture Management. Contrairement aux machines virtuelles traditionnelles, les conteneurs partagent le noyau du système d'exploitation hôte, donc des informations d'identification de conteneur compromises peuvent potentiellement affecter l'ensemble du système hôte.
Les processus de conteneur s'exécutent sous des comptes utilisateur Windows spécifiques, et ces identités déterminent quelles données et ressources système chaque conteneur peut accéder. Lorsque vous déployez des conteneurs à grande échelle, vous multipliez essentiellement votre surface d'attaque d'identité – chaque conteneur devient un point d'entrée potentiel pour le vol de justificatifs d'identité ou des attaques de mouvement latéral.
L'impact pratique est que votre stratégie d'identity management pour les conteneurs doit s'intégrer à votre programme de gouvernance d'identité plus large. Utilisez des comptes de service gérés par groupe (gMSAs) pour les processus de conteneurs nécessitant une authentification de domaine – les gMSAs fournissent une gestion automatique des mots de passe et éliminent le besoin de stocker des identifiants dans les images de conteneurs. Mettez en œuvre des contrôles d'accès basés sur l'identité qui traitent les identités de conteneurs comme tout autre compte privilégié dans votre environnement, avec une rotation appropriée, une surveillance et l'application du principe de moindre privilège.
Prenez en compte les défis spécifiques à l'identité des conteneurs tels que la persistance des informations d'identification à travers les redémarrages de conteneurs, les méthodes sécurisées d'injection de justificatifs d'identité, et la gestion des cycles de vie des comptes de service dans des environnements de conteneurs dynamiques. Votre solution de Identity Management devrait offrir une visibilité sur quels conteneurs utilisent quelles identités et quelles ressources ils accèdent.
Comment auditez-vous l'accès aux conteneurs Windows et les permissions ?
Un audit de conteneur efficace nécessite une visibilité tant au niveau de l'hôte qu'au niveau du conteneur – car les attaquants se connectent, ils ne font pas que forcer l'entrée. Les conteneurs Windows génèrent des événements de sécurité via le système standard de journalisation des événements Windows, mais vous devez configurer une journalisation supplémentaire pour capturer les activités spécifiques aux conteneurs.
Activez la journalisation du runtime de conteneurs pour suivre les événements de création, de modification et de suppression de conteneurs. Configurez la journalisation des événements Windows pour capturer les événements d'authentification, les tentatives d'escalade de privilèges et les modèles d'accès aux ressources au sein des conteneurs. Concentrez-vous sur la surveillance des modèles d'accès inhabituels, tels que les conteneurs accédant à des fichiers en dehors de leurs volumes de données attendus ou établissant des connexions réseau inattendues.
La clé est de corréler l'activité des conteneurs avec votre stratégie de surveillance de la sécurité plus large. Les événements d'accès aux conteneurs devraient alimenter votre programme de gouvernance des identités et des accès aux côtés de la surveillance traditionnelle des comptes utilisateurs. Configurez des alertes automatisées pour les comportements à haut risque des conteneurs, comme les tentatives d'accès aux dépôts de données sensibles ou l'escalade des privilèges au-delà du champ d'application prévu du conteneur. Cette approche proactive vous aide à détecter les comportements à risque avant qu'ils ne se transforment en violation.
Mettez en œuvre l'audit du système de fichiers pour les répertoires sensibles auxquels les conteneurs ne devraient pas accéder, et surveillez les événements de création de processus à l'intérieur des conteneurs pour détecter les lancements d'exécutables non autorisés. Utilisez la journalisation PowerShell pour capturer les activités administratives à l'intérieur des conteneurs, en particulier pour les conteneurs qui exécutent des scripts d'automatisation ou des outils administratifs.
Quelles sont les meilleures pratiques de surveillance de la sécurité des conteneurs Windows à suivre ?
La surveillance de la sécurité des conteneurs nécessite une approche différente de celle du monitoring traditionnel des serveurs car les conteneurs sont éphémères et créent des surfaces d'attaque dynamiques. Commencez par une surveillance de base des événements du cycle de vie des conteneurs – création, démarrage, arrêt et suppression – pour établir des modèles opérationnels normaux.
Surveillez le trafic réseau tant au niveau de l'hôte que du conteneur pour détecter des modèles de communication inhabituels qui pourraient indiquer des mouvements latéraux ou des tentatives d'exfiltration de données. Suivez les métriques de consommation de ressources telles que l'utilisation du CPU, de la mémoire et du disque pour identifier les attaques potentielles de déni de service ou les activités de cryptominage au sein des conteneurs.
Mettez en œuvre une surveillance en temps réel des modifications du système de fichiers des conteneurs, en particulier pour ceux qui ne devraient pas écrire sur le disque. Utilisez Windows Performance Toolkit et des outils de surveillance spécifiques aux conteneurs pour suivre l'exécution des processus à l'intérieur des conteneurs, en surveillant les processus non autorisés ou les tentatives d'escalade de privilèges inattendues. L'objectif est d'améliorer la visibilité et le contrôle – vous devez voir ce qui se passe dans votre environnement de conteneurs pour prendre des mesures de sécurité efficaces.
Configurez la surveillance pour des événements de sécurité spécifiques aux conteneurs, tels que le téléchargement d'images à partir de registres non autorisés, des conteneurs s'exécutant avec des privilèges excessifs ou des conteneurs tentant d'accéder aux ressources du système hôte. Mettez en place des alertes pour les conteneurs qui s'écartent de leurs modèles de comportement attendus, comme établir des connexions réseau vers des destinations inhabituelles ou consommer des ressources au-delà des seuils normaux.
Comment résoudre les problèmes d'authentification des conteneurs Windows ?
Les problèmes d'authentification des conteneurs proviennent souvent de comptes de service mal configurés ou d'une gestion des informations d'identification inappropriée entre l'hôte et les environnements de conteneurs. Commencez par vérifier que votre conteneur utilise la bonne identité Windows – vérifiez le contexte de sécurité sous lequel les processus du conteneur fonctionnent à l'aide d'outils comme Process Monitor ou Windows Event Viewer.
Les échecs d'authentification courants surviennent lorsque les conteneurs ne peuvent pas accéder aux ressources du domaine en raison de problèmes de délégation d'identifiants. Si votre conteneur doit s'authentifier auprès d'Active Directory ou d'autres services de domaine, assurez-vous d'utiliser des comptes de service gérés par groupe (gMSAs) plutôt que des comptes de service traditionnels. Les gMSAs offrent une gestion automatique des mots de passe et sont conçus spécifiquement pour les scénarios de conteneurs.
Vérifiez les journaux d'événements Windows sur l'hôte du conteneur et sur les contrôleurs de domaine pour les erreurs liées à l'authentification. Recherchez les ID d'événement liés aux échecs de connexion, aux problèmes d'authentification Kerberos ou aux problèmes d'authentification NTLM. Utilisez des outils comme Network Monitor ou Wireshark pour capturer le trafic d'authentification et identifier où la chaîne d'authentification se rompt. N'oubliez pas que les problèmes d'authentification des conteneurs indiquent souvent des problèmes plus larges de Identity Management qui pourraient affecter votre posture de sécurité globale.
Vérifiez que votre hôte de conteneur est correctement joint au domaine et que les fonctionnalités Windows requises (comme le module Active Directory pour PowerShell) sont installées. Contrôlez la résolution DNS à l'intérieur des conteneurs pour vous assurer qu'ils peuvent atteindre les contrôleurs de domaine. Si vous utilisez la délégation d'identifiants, confirmez que le compte de l'hôte de conteneur dispose des permissions de délégation nécessaires dans Active Directory.
Partager sur
En savoir plus
À propos de l'auteur
Dirk Schrader
Vice-président de la Recherche en Sécurité
Dirk Schrader est un Resident CISO (EMEA) et VP of Security Research chez Netwrix. Fort d'une expérience de 25 ans dans la sécurité informatique avec des certifications telles que CISSP (ISC²) et CISM (ISACA), il œuvre pour promouvoir la cyber résilience comme approche moderne pour faire face aux menaces cybernétiques. Dirk a travaillé sur des projets de cybersécurité dans le monde entier, commençant par des rôles techniques et de support au début de sa carrière, puis évoluant vers des postes de vente, marketing et gestion de produit chez de grandes multinationales ainsi que dans de petites startups. Il a publié de nombreux articles sur la nécessité de s'attaquer à la gestion des changements et des vulnérabilités pour atteindre la cyber résilience.
En savoir plus sur ce sujet
Gestion de la configuration pour un contrôle sécurisé des points de terminaison
Lois sur la confidentialité des données par État : Différentes approches de la protection de la vie privée
Qu'est-ce que la gestion des documents électroniques ?
Comment créer, modifier et tester des mots de passe en utilisant PowerShell
Expressions régulières pour débutants : Comment commencer à découvrir des données sensibles