Renforcez la sécurité de Windows Server 2025 avec OSConfig
Sommaire
I. Présentation
Pour implémenter la sécurité au sein des versions de Windows Server, nous devons avoir par habitude d’utiliser comme référence le Microsoft Security compliance Toolkit avec les Security Baseline. Ces bonnes pratiques de Microsoft sont disponibles pour chaque version des systèmes (Windows Server 2019, 2022 et 2025) pour les serveurs et pour les versions client de Windows 10 et Windows 11.
Les Security Baseline contiennent :
- Des modèles de stratégies de groupes (avec les paramètres de sécurité recommandés par Microsoft) pour chaque OS
- Des outils comme PolicyAnalyzer pour analyser et comparer les stratégies de groupe, et LGPO pour appliquer les paramètres de stratégies de groupe.
- Des paramètres de sécurité pour Microsoft Edge.
Aujourd’hui, Microsoft a introduit, au sein de Windows Server 2025, un outil de gestion de sécurité pour appliquer les Security Baseline, dans le but d’appliquer un état souhaité sur les appareils locaux et/ou connectés à Azure Arc : il s'agit d'OSConfig.
Rappelons que si votre objectif est d’effectuer le durcissement de votre système d’exploitation, vous devez mettre en place des tests approfondis avant d’effectuer la mise en production.
II. Comment fonctionne OSConfig ?
OSConfig est un module PowerShell qui est publié avec le système d’exploitation Windows Server (cependant, il est nécessaire de l’installer 😉). Voici ce que vous devez savoir sur son fonctionnement.
A. Comment le piloter ?
Pour piloter la sécurité, Microsoft met à notre disposition trois manières d’interagir avec le module PowerShell OSconfig.
- Windows Admin Center
- Azure Policy / Machine Configuration
- PowerShell
En tant qu’administrateur, vous disposez de ces trois outils pour configurer la sécurité au sein de Windows Server 2025.
B. Le module PowerShell OSConfig
Le module PowerShell interagi avec plusieurs éléments du système d’exploitation :
- OSConfig API / Plateforme
- Configuration Providers (CSP, base de registres, etc…)
- Fonctionnalités de sécurité
Remarque : vous pouvez utiliser OSConfig pour établir des bases de référence de sécurité pour différents systèmes d’exploitation et application comme :
- Microsoft Edge,
- Windows Server 2025
- Azure Local 23H2.
- Il s’intègre à Azure Policy, Microsoft Defender, Windows Admin Center et à la configuration de la machine Azure Auto Manage pour faciliter la surveillance et la création de rapports de conformité.
C. La gestion de la dérive avec OSConfig
L’une des principales fonctionnalités d’OSConfig est le contrôle de dérive. Il permet de s’assurer que le système démarre et reste dans un état de sécurité correct connu.
Lorsque vous l’activez, OSConfig corrige automatiquement les modifications système qui s’écartent de l’état souhaité. OSConfig effectue la correction via une tâche d’actualisation (correspondante à une tâche planifiée).
D. Les bases de référence
Avec Windows Server, vous pouvez hiérarchiser la sécurité dès le départ en déployant une posture de sécurité recommandée sur vos serveurs physiques ou virtuels. Tout au long du cycle de vie de l’appareil, vous pouvez appliquer ces bases de référence de sécurité à l’aide de PowerShell ou de Windows Admin Center.
Application des bases de référence de sécurité OSConfig dans votre environnement :
- Améliore la posture de sécurité en désactivant les protocoles et les chiffrements hérités.
- Réduit les dépenses d’exploitation avec le mécanisme de protection de dérive intégré qui permet une surveillance cohérente à grande échelle via la base de référence Azure Arc Hybrid Edge.
E. Les avantages d’OSConfig
OSConfig est une plateforme unique qui :
- Fournit une solution évolutive pilotée par les données avec une implémentation unique et cohérente pour plusieurs ensembles d’outils d’administration :
- Windows Admin Center,
- Azure Arc,
- PowerShell,
- Azure Policy et la configuration de machine Azure Auto Manage.
- Configuration déclarative : au lieu de jouer avec chaque petit paramètre dans les GPO ou de scripter chaque étape, OSConfig utilise des documents de configuration qui définissent l’état final. Il vous suffit d’indiquer à OSConfig ce que vous voulez, qu’il s’agisse d’appliquer une base de référence de sécurité, d’activer les stratégies Defender ou de verrouiller les appareils avec le contrôle d’application Windows Defender, et il gère le « comment ». Ce modèle déclaratif réduit les erreurs et facilite la configuration.
- Conformité: OSConfig ne se contente pas d’appliquer une ligne de base et de s’en aller. Grâce à son contrôle de dérive intégré, OSConfig vérifie périodiquement les configurations pour s’assurer qu’elles restent alignées avec le scénario que vous avez spécifié (par exemple, Security Baseline Configuration ou SecureCore). Cela signifie que toutes les quelques heures, OSConfig recherche toute dérive de la configuration de base et la corrige automatiquement si des modifications sont détectées - pas besoin d’attendre une actualisation de type GPO ou d’intervenir manuellement.
- Gestion simplifiée de la sécurité dans tous les scénarios : OSConfig a été conçu avec la sécurité à son cœur, offrant des scénarios dédiés pour la gestion de différents aspects de la sécurité. Avec OSConfig, vous pouvez appliquer une base de sécurité complète ou configurer les paramètres SecureCore pour renforcer la sécurité de l’appareil et savoir que ces paramètres seront réellement conservés. Cette approche rationalisée vous permet de maintenir la conformité sans avoir besoin d’une surveillance constante.
- Contrôle de dérive intégré : le contrôle de dérive d’OSConfig maintient vos configurations verrouillées en place sans envoyer constamment de ping à votre serveur. Toutes les quelques heures, il effectue une vérification rapide de la conformité, détectant toute modification non autorisée et la ramenant à la ligne de base si nécessaire. C’est un moyen intelligent et efficace de tout garder sur la bonne voie, vous permettant de vous concentrer sur d’autres tâches pendant qu’OSConfig s’occupe tranquillement du gros du travail.
III. Mise en pratique d’OSconfig sur Windows Server 2025
A. Installation du module
Pour commencer à utiliser OSConfig, assurez-vous que le module OSConfig PowerShell est installé. Microsoft fournit le module via la PowerShell Gallery.
- Pour commencer, installez le module dans PowerShell :
Install-Module -Nom Microsoft.OSConfig -Scope AllUsers -Repository PSGallery -Force
Une fois installé, vous trouverez le module dans ce dossier :
C :\Program Files\WindowsPowerShell\Modules\Microsoft.OSConfig\1.2.1
Ce dossier comprend les éléments essentiels pour les fonctionnalités d’OSConfig :
Nous pouvons lister les commandes présentent du module PowerShell.
Get-Command -Module Microsoft.OSConfig
Ce qui donne :
B. Les bases de référence de sécurité pour Windows Server 2025
Pour cela, nous avons trois scénarios possibles :
- Contrôleur de domaine (DC) - SecurityBaseline/WS2025/DomainController
- Serveur membre (joint à un domaine) - SecurityBaseline/WS2025/MemberServer
- Serveur membre de groupe de travail (non joint à un domaine) SecurityBaseline/WS2025/WorkgroupMember
Actuellement, il n’est pas possible de créer ses propres scenarii avec la configuration actuelle d’OSConfig, mais vous pouvez cependant modifier un paramètre tout en conservant le principe de fonctionnement d’OSConfig.
Pour modifier la valeur par défaut de « AuditDetailedFileShare » de 2 vers 3 sur votre serveur membre, exécutez la commande suivante :
Set-OSConfigDesiredConfiguration -Scenario SecurityBaseline/WS2025/MemberServer -Setting AuditDetailedFileShare -Value 3
Pour vérifier que la nouvelle valeur est appliquée, exécutez la commande suivante :
Get-OSConfigDesiredConfiguration -Scenario SecurityBaseline/WS2025/MemberServer -Setting AuditDetailedFileShare
C. Comparer avec la configuration locale
Vous pouvez vérifier la configuration de la machine locale Windows Server 2025 en la comparant avec la configuration de la Baseline de Sécurité de Microsoft. Pour cela, nous avons la commande suivante :
Get-OSConfigDesiredConfiguration -Scenario SecurityBaseline/WS2025/MemberServer
Cependant, nous avons énormément de paramètres (319 paramètres) et la sortie n’est pas vraiment lisible, alors il va falloir filtrer un peu la sortie de la commande de base.
Listons les paramètres qui sont « NotCompliant », c’est-à-dire non conformes. Ce sont ces derniers qui nous intéressent le plus.
Get-OSConfigDesiredConfiguration -Scenario SecurityBaseline/WS2025/MemberServer | Where-Object { $_.Compliance.Status -eq "NotCompliant" } | ft Name, @{ Name = "Status"; Expression={$_.Compliance.Status} }, @{ Name = "Reason"; Expression={$_.Compliance.Reason} } -AutoSize -Wrap
(Get-OSConfigDesiredConfiguration -Scenario SecurityBaseline/WS2025/MemberServer | Where-Object { $_.Compliance.Status -eq "NotCompliant" } | ft Name, @{ Name = "Status"; Expression={$_.Compliance.Status} }, @{ Name = "Reason"; Expression={$_.Compliance.Reason} } -AutoSize -Wrap).count
Résultat obtenu :
206
D. Appliquer base de sécurité
Dans notre cas, nous sommes sur un serveur membre qui se situe dans le tier 0 (infrastructure basée sur le modèle HardenAd), nous allons donc utiliser la base : SecurityBaseline/WS2025/MemberServer
Dans une console PowerShell, exécutez ceci pour appliquer la stratégie :
Set-OSConfigDesiredConfiguration -Scenario SecurityBaseline/WS2025/MemberServer -Default
Vérifions, une fois la baseline de sécurité appliquée, plusieurs paramètres, dont la cohérence de l’état final avec l’état souhaité.
Get-OSConfigDesiredConfiguration -Scenario SecurityBaseline/WS2025/MemberServer | Where-Object { $_.Compliance.Status -eq "NotCompliant" } | ft Name, @{ Name = "Status"; Expression={$_.Compliance.Status} }, @{ Name = "Reason"; Expression={$_.Compliance.Reason} } -AutoSize -Wrap
Seulement deux paramètres sont « NotCompliant » mais ils peuvent être ignorés. Car ce sont simplement deux paramètres qui correspondent à des messages que l’on pourrait configurer à l’ouverture de session.
Comment retrouver la tâche planifiée utilisée par OSConfig pour vérifier la dérive ? Vous devez ouvrir le « Planificateur de tâches » sur votre machine, puis suivre les instructions suivantes.
- 1 - Développez le nœud « Microsoft » puis « EntrepriseMgnt » puis le « GUID » correspondant.
- 2 - Nous retrouvons la tâche planifiée créée par OSConfig
- 3 - Nous pouvons observer le temps d’actualisation qui est de 4 heures par défaut.
- Mais, nous pouvons modifier cet intervalle avec une commande PowerShell :
Set-OSConfigDriftControl 45
- Ainsi, la fréquence d’actualisation passe à 45 minutes.
E. Comment fonctionne la remédiation ?
Le service de configuration déclarée (dcscvc) joue un rôle essentiel dans l'application des politiques. Ce service traite les configurations et garantit la conformité en :
- Transformant les configurations brutes en formats compatibles avec le système.
- Appliquant les politiques validées aux systèmes en direct.
- Surveillant en continu et corrigeant les écarts.
La librairie dmosconfig.dll est la véritable locomotive derrière OSConfig. Cette DLL fait le gros du travail, en lisant les documents de configuration et en appliquant les paramètres pour qu’ils correspondent à vos stratégies. Considérez-le comme l’exécuteur ultime, garantissant que les configurations d’OSConfig sont respectées.
Ce service est celui qui s’occupe de tous les documents déclarés et s’assure que les politiques sont appliquées à l’appareil. Examinons comment cette tâche planifiée s’applique aux documents déclarés.
Au cœur du contrôle de dérive d’OSConfig se trouve le service dcscvc. Ce service traite les configurations/politiques à travers trois étapes essentielles : brut, en cours et appliqué. Chaque étape joue un rôle distinct dans la transformation d’un document de configuration d’un simple ensemble d’instructions en politiques actives qui façonnent l’état de votre serveur. (GET-TEST-SET)
- Brut : lorsqu’un document de configuration ou de stratégie est chargé pour la première fois, il entre dans le système dans son état brut. À ce stade, la configuration existe exactement comme défini dans le document déclaré, sans aucun traitement. Considérez-le comme les instructions non filtrées qu’OSConfig affinera plus tard.
- En cours : ensuite, dcscvc prend ces données brutes et les traite dans un état « En cours », en convertissant les configurations dans un format compatible avec le système. Cette étape permet de s’assurer que chaque paramètre est validé et préparé pour l’application, ce qui réduit le risque d’erreurs lors de son application.
- Appliqué : enfin, dcscvc déplace les configurations En cours vers l’état appliqué, les transformant en stratégies actives qui régissent le comportement du serveur. Une fois appliquées, ces configurations deviennent les paramètres « en direct » sur le serveur. Le travail d’OSConfig n’est pas terminé ici, cependant, il surveille en permanence ces paramètres appliqués pour s’assurer qu’ils s’alignent avec la ligne de base déclarée.
F. Démarrer la tâche d’actualisation
La tâche d’actualisation est déclenchée selon la planification, ce qui déclenche une analyse pour vérifier les configurations par rapport à la ligne de base.
- Vérifier la configuration brute – La première étape consiste à vérifier la configuration « brute », stockée dans HKEY_LOCAL_MACHINESOFTWAREMicrosoftDeclaredConfigurationRaw. Ces données brutes reflètent les paramètres d’origine, non traités, tels que définis dans votre document de configuration.
- Vérifier la configuration en cours – OSConfig traite ensuite les données brutes dans un format que le système peut interpréter et appliquer, connu sous le nom de configuration « en cours ». Cette configuration cuite est stockée sous HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DeclaredConfiguration\Cooked.
- Vérifier les écarts – La configuration cuite est ensuite vérifiée par rapport aux paramètres système actifs. Si OSConfig détecte une dérive (par exemple, si EnableSmartScreen a été désactivé en dehors du contrôle d’OSConfig), il marquera cette divergence pour correction.
- Définir la configuration cuite – OSConfig réinitialise la configuration cuite pour l’aligner sur la ligne de base, en s’assurant que toutes les modifications sont rétablies aux paramètres prévus.
- Appliquer les stratégies en cours aux stratégies actives : la configuration corrigée et en cours est appliquée aux stratégies actives du système, stockées dans HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System. Cela garantit que tous les paramètres de l’appareil sont désormais conformes au document déclaré.
- Finalisation et journalisation – OSConfig enregistre les modifications et finalise la tâche d’actualisation, en enregistrant toutes les corrections apportées au cours du processus. Cette journalisation fournit un enregistrement des actions d’application, ce qui aide les administrateurs à auditer les modifications.
- Achèvement : une fois tous les paramètres vérifiés et ajustés si nécessaire, la tâche d’actualisation se termine. La configuration du système est de nouveau conforme à la configuration de référence déclarée.
G. La base de registre et OSConfig
L’ensemble de la configuration est stocké au sein de la base de registre dans les clés suivantes :
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DeclaredConfiguration.
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OSConfig
La première clé nommée « DeclaredConfiguration » contient toutes les informations concernant la configuration que OSConfig devrait appliquer à votre système.
- 1 - Avec la clé « RefreshInterval », nous retrouvons les 45 minutes défini précédemment.
- 2 - Sous le nœud « HostOS », nous retrouvons la configuration, l’état actuel ainsi que le résultat.
- 3 - Nous pouvons observer la baseline « SecurityBaselineW2025MemberServer » avec la version « 2411 » et sous « Settings » l’ensemble des paramètres appliqué à la machine. Dans « OperationalData », nous retrouvons une clé « Settings[incréments] » et dans notre cas, nous avons « 319 » paramètres appliqués.
La seconde clé « OSConfig » contient toutes les informations et la version déployée et configurée.
Ici sous la clé SecurityBaseline_WS2025_MemberServer, nous retrouvons la version 2411 de la Security Baseline puis la version du module 2.1 et même la date d’importation du module. Pour faire un peu de sécurité, chercher et cliquez sur la clé « BlockNTLM ».
Nous retrouvons le paramètre, la description et le schéma au format JSON avec les valeurs par défaut et les exigences de conformité pour chaque paramètre.
H. Le JSON dans ProgramData
Quand une nouvelle configuration ou une nouvelle ligne de base est appliquée à un système, un fichier au format JSON est créé dans le dossier suivant : C:\programaDataMicrosoft\DC\HostOS.
Ce document nommé « JSON E17005D5-A50E-4E57-BE94-1DAF469C6F93_device_SecurityBaselineWS2025WorkgroupMember@2411.0 » contient tous les détails de la base de référence de sécurité, y compris les paramètres, les valeurs et les métadonnées spécifiques pour chaque stratégie. Ce fichier sert de modèle qu’OSConfig utilise pour l’application.
Une fois cette création effectuée, OSConfig utilise ce fichier JSON pour créer dans la base de registre les clés associés à chaque paramètre. L’ensemble de ces clés se trouvent sous la clé suivante :
- HKEY_LOCAL_MACHINE\\SOFTWARE\MicrosoftDeclaredConfiguration\HostOS\Config
Ici, par exemple, nous retrouvons l’ensemble des clés dans la base de registre pour activer la journalisation des scripts Powershell que OSConfig a appliqué.
IV. Conclusion
Les fonctionnalités d'OSConfig et de contrôle des écarts de Windows Server 2025 montrent l'engagement de Microsoft à améliorer la sécurité et l'efficacité opérationnelle des serveurs. En combinant des outils puissants avec des flux de travail clairs, les administrateurs peuvent s'assurer que leurs environnements sont à la fois sécurisés et robustes contre les erreurs de configuration potentielles.