MIM 2016 Synchronization Services -> un moteur de synchronisation performant et économique

Bonjour à tous

Cet article a pour but de vous présenter la suite MIM 2016 et plus particulièrement le composant MIM 2016 Synchronization Services.

1. Vue d’ensemble de la solution MIM 2016 :
MIM 2016 est la solution de gestion des identités de Microsoft. Il s’agit en fait plus d’un ensemble de produits que d’une solution unique :
– MIM 2016 Synchronization Service est un moteur de synchronisation et le composant historique de cette solution. Ce produit était anciennement appelé MIIS 2003, ILM 2007 puis FIM 2010.
– MIM 2016 Service est un moteur de synchronisation, un portail web, un moteur de workflow (extensible avec MIMWALL).
– BHOLD est le composant de MIM 2016 qui permet de faire de l’attestation, de la certification et du SOD. Ce composant a été très peu déployé en entreprise.
– Le moteur de rapport de MIM 2016 s’appuie sur le produit Microsoft System Center Service Manager (SCSM).
– Le composant MIM 2016 Certificate Management (anciennement appelée Certificate Lifecycle Manager – CLM) est une solution de gestion de certificats et de cartes à puces virtuelles.
– Le composant Privilege Access Management (PAM) permet de gérer les groupes à fort privilèges avec la possibilité de définir des accès temporaires à ces groupes.

La suite MIM 2016 peut être achetée de 2 manières :
– Via une souscription à la licence Azure AD Premium P1 (locatif) pour chaque identité (utilisateur) de votre entreprise.
– Via l’achat de la suite.
Depuis avril 2015, MIM 2016 Synchronization Service 2016 (moteur de synchronisation uniquement) nécessite uniquement une licence Windows Server.
http://social.technet.microsoft.com/wiki/contents/articles/2487.how-to-license-fim-2010-and-mim-2016.aspx

2. Vue d’ensemble de MIM 2016 Synchronization Services
MIM 2016 Synchronization Services représente donc une solution très économique pour les entreprises qui souhaitent uniquement disposer d’un moteur de synchronisation.
Cette solution nécessite une base de données SQL Server et installe un service appelé Forefront Identity Manager Synchronization Service.
La configuration de l’outil MIM 2016 Synchronization Services est relativement simple et s’appuie sur une console unique appelée Synchronization Services Manager (MIIS.EXE).
Chaque système cible (un annuaire Active Directory, un fichier CSV, une base SQL Server) est synchronisé à l’aide de management agents. MIM 2016 Synchronization Services dispose de très nombreux connecteurs / management agent comme SQL Server, Oracle, AD LDS, AD, CSV, PowerShell. La liste complète est disponible à cette adresse :
https://docs.microsoft.com/fr-fr/microsoft-identity-manager/supported-management-agents

MIM 2016 Synchronisation Services dispose d’un référentiel des identités appelé Metaverse. Les entrées de la Metaverse ne sont accessibles qu’en lecture seule. Ce référentiel contient l’ensemble des identités :
– Person : contient les objets identités MIM 2016 Synchronization Services pour les objets utilisateurs et les contacts.
– Domain, Group, OrganizationalUnit, Printer : il s’agit des objets identités correspondant aux domaines, groupes, unités d’organisation et imprimantes d’Active Directory Domain Services (AD DS ou AD) et Active Directory Lightweight Directory Services (AD LDS).

Le moteur de synchronisation de MIM Services s’appuie sur celui du MIM 2016 Synchronization Services. Pour cette raison, la Metaverse contient des objets SynchronizationRule, ExpectedRuleEntry (ERE), DetectedRuleEntry (DRE). Ces objets permettent au MIM Agent (connecteur MIM Services) de synchroniser les règles du MIM Services dans la base du MIM 2016 Synchronization sous forme d’objets. Ces règles de synchronisation sont ensuite exécutées par le MIM 2016 Synchronization Services.

La Metaverse est extensible (au travers du Metaverse Designer de la console MIIS.EXE). Il est ainsi possible d’ajouter des attributs à la classe Person par exemple. On notera que la Metaverse ne permet pas d’ajouter d’attributs au format date.

3. Le moteur de synchronisation du MIM 2016 Synchronization Services :
Le schéma ci-dessous explique le fonctionnement du moteur de synchronisation MIM 2016 Synchronization Services.

Chaque système cible (SQL Server et Active Directory) dispose d’une copie en lecture seule appelée Connecteur Space dans la base de données SQL Server de MIM 2016 Synchronization Services. On notera qu’on peut définir un scope au niveau de l’outil pour répliquer qu’une partie d’un système cible. Il est par exemple possible d’inclure uniquement certaines OU ou certains attributs au niveau du management agent Active Directory.

Lors d’un Import, le contenu du système cible est copiée dans le connecteur space (copie à l’identique).
Lors d’un Export, le contenu du connecteur space est copiée dans le système cible (copie à l’identique).
Lors d’un Sync, les opérations suivantes sont effectuées :
– Filter/Delete : on fait un filtre entre le connecteur space et la Metaverse. Les objets filtrés sont chargés dans le connecteur space du management agent mais pas dans la Metaverse.
– Join : permet d’associer un objet du connecteur space avec un objet de la Metaverse selon une règle de jointure (exemple : ExtensionAttribute1 du connecteur space AD = EmployeeID de la Metaverse)
– Project : si l’objet n’est pas filtré et n’est pas joint, on peut le projeter du connecteur space vers la Metaverse (créer une entrée dans la Metaverse). Une Projection a toujours lieu du Connecteur space vers la Metaverse uniquement. Dans l’autre sens, c’est du Provision. Une projection crée un objet dans la Metaverse sans aucun attribut.
– Import Attributes Flow (IAF) : c’est pendant cette phase que les attributs des objets sont copiés dans la Metaverse. La console MIIS.EXE ne permet que de créer des règles IAF simples (copie de valeur). Les règles complexes nécessitent le développement d’une rule extension. Cette dernière est une DLL écrite en VBNET ou en C#.
– Provision : c’est l’inverse d’une projection. Cela crée un objet de la Metaverse vers un connecteur space. L’objet est créé sans attribut. La console MIIS.EXE ne permet pas de créer de règles de Provision. Il faut pour cela développer une Metaverse Rule. Cette dernière est une DLL qui doit être écrite en VBNET ou en C#.
– Export Attributes Flow (EAF) : c’est pendant cette phase que les attributs des objets sont copiés dans le connecteur space. La console MIIS.EXE ne permet que de créer des règles EAF simples (copie de valeur). Les règles complexes nécessitent le développement d’une rule extension. Cette dernière est une DLL écrite en VBNET ou en C#.

Dans notre exemple (importation des données d’une base SQL Server dans un annuaire Active Directory), les 6 opérations sont donc à effectuer :
– Import SQL
– Import Active Directory
– Synchronisation agent SQL
– Synchronisation agent AD
– Export sur management agent AD
– Import Full sur Management agent AD (pour mettre à jour le connecteur space).

Une « Projection rule » permet de définir comment MIM 2016 crée un objet dans la Metaverse depuis un objet dans un connecteur space.
Une Join rule permet de définir comment MIM 2016 associe un objet de la Metaverse avec un objet du connecteur space.

La procédure de configuration de MIM 2016 Synchronization Services est présentée en annexe de ce document.

https://blogs.msdn.microsoft.com/connector_space/2015/04/14/deprovisioning-in-depth-part-1-disconnectors/
https://blogs.msdn.microsoft.com/connector_space/2015/09/25/the-complete-synchronization-process-part-2-existing-user-synchronization/
https://blogs.msdn.microsoft.com/connector_space/2015/09/25/the-complete-synchronization-process-part-1-new-user-synchronization/

4. Ecriture d’une Rule Extension
MIM 2016 Synchronization Service permet de disposer de 2 types de règles de synchronisation :
– Direct : elles sont natives. C’est une copie de valeur.
– Advanced : elle permette d’effectuer une transformation. Cela nécessite de créer une DLL qui sera stockée dans le dossier d’installation de MIM (C:\Program Files\Microsoft Forefront Identity Manager\2010\Synchronization Service\Extensions).

Pour créer une règle de synchronisation avancée :
Lancer la console MIIS.EXE.
Aller dans l’onglet management agent, ouvrir les propriétés d’un management agent.
Aller dans Configure Attribute Flow. Sélectionner la règle et cliquer sur Advanced.
On indique ensuite le nom de la règle de transformation.
Appeler par exemple cette règle Title (remplacer le nom par défaut de la règle). Dans la Rule EXtension, il faudra donc faire un switch case sur la variable flowrule = Title.
Dans notre example on souhaite que l’attribut Title (AD) soit égale à la valeur de Title (Person) en majuscule.
https://blogs.msdn.microsoft.com/connector_space/2017/02/03/management-agent-advanced-attribute-flows/

MIM 2016 Synchronization Services s’interface très bien avec Visual Studio 2015.
Il est possible de définir si on programme en VBNET ou en C#.
Visual Studio se lance alors automatiquement.

Le code d’une Metaverse Rule se base sur 2 objets :
– MvEntry : entrée de la Metaverse
– CsEntry : entrée du Connector Space

Microsoft s’appuie sur la DLL Microsoft.MetadirectoryServices. Une rule extension d’un management agent par défaut se compose des fonctions suivantes :
– Initialize
– Terminate
– ShouldProjectToMV
– FilterForDisconnection
– MapAttributesForJoin :
– ResolveJoinSearch : écriture de « join rule » avancée
– MapAttributesForImport : règle de transformation avancée en import
– MapAttributesForExport : règle de transformation avancée en export.
– Deprovision : permet de faire une règle de déprovisionning pour le management agent.

Une fonction (function) renvoie une valeur.
Une procédure (sub) effectue une action.
Dans notre cas MapAttributesForExport est une procédure.

Le code ci dessous est celui de la Rule Extension à créer. Il peut être téléchargé à cette adresse :
http://msreport.free.fr/articles/ADExtension.vb.txt

Public Sub MapAttributesForExport(ByVal FlowRuleName As String, ByVal mventry As MVEntry, ByVal csentry As CSEntry) Implements IMASynchronization.MapAttributesForExport
‘ TODO: Add export attribute flow code here
Select Case FlowRuleName
Case “Title”
Dim TitleValue As String = mventry(“Title”).Value.ToString.ToUpper
csentry(“Title”).Value = TitleValue
End Select
‘Throw New EntryPointNotImplementedException()
End Sub

Autre exemple de Rule Extension:
http://msreport.free.fr/articles/Referentiel.vb.txt

Pour plus d’informations :
https://blogs.msdn.microsoft.com/connector_space/2016/08/19/creating-an-ma-extension/
https://www.packtpub.com/mapt/book/virtualization_and_cloud/9781785283925/3/ch03lvl1sec32/creating-a-rules-extension
https://msdn.microsoft.com/en-us/library/windows/desktop/ms696026(v=vs.100).aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.metadirectoryservices(v=vs.100).aspx
http://www.wapshere.com/missmiis/advanced-attribute-flow-rules
https://social.technet.microsoft.com/Forums/en-US/4eb7a11e-0eb2-4818-8015-4f0c70b29856/issues-with-ma-extension-attribute-flow?forum=identitylifecyclemanager

5. Ecriture d’une Metaverse rule
L’interface graphique de MIM 2016 Synchronization Services ne permet pas de faire des règles de Provision. Si l’on veut créer, supprimer ou renommer des objets dans les systèmes cibles, une opération de Provision (création d’un objet dans un connecteur space à partir de l’objet de la Metaverse), il faut créer une Metaverse Rule (objet de la classe MVExtensionObject). Pour cela il faut écrire du code C# ou VBNET et compiler ce code sous forme d’une DLL.

Il faut cliquer sur « Create Rules Extension Project ».
La classe MVExtensionObject contient 3 procédures et 1 fonctions :
– Initialize
– Terminate
– Provision : permet de configurer comment MIM va créer les objets dans les systèmes cibles
– ShouldDeleteFromMV

Le code suivant permet de créer, supprimer et renommer des utilisateurs dans l’Active Directory en fonction de la valeur des attributs EntryDate et ExitDate de l’annuaire AD LDS. Ces 2 attributs sont tout d’abord importés dans la Metaverse (EmployeeStartDate et EmployeeEndDate)
http://msreport.free.fr/articles/MVExtension.vb.txt

Pour plus d’informations sur l’écriture de Metaverse rule:
https://dirteam.com/tomek/2007/03/18/ad-account-connector-rename-with-miis/
https://blogs.msdn.microsoft.com/connector_space/2016/11/18/rules-extensions-basic-mv-extensions/
https://msdn.microsoft.com/en-us/library/windows/desktop/ms695377(v=vs.100).aspx
http://nkoctay.blogspot.fr/2011/12/metaverse-rules-extension.html
http://www.wapshere.com/missmiis/getting-started-with-object-creation-and-deletion
https://tlktechidentitythoughts.wordpress.com/2016/08/30/deprovision-in-mimfim-using-classic-provisioning-c/

A+
Guillaume MATHIEU
Directeur Technique Metsys
La connaissance s’accroît quand on la partage.

Publié dans IAM, MIM | Marqué avec | Commentaires fermés sur MIM 2016 Synchronization Services -> un moteur de synchronisation performant et économique

Générer une base RH de tests avec PowerShell

Bonjour

Je travaille actuellement sur un projet de gestion des identités (création, modification et suppression des comptes utilisateurs de l’entreprise via une synchronisation avec les bases RH).
Dans le cadre de ce projet, j’ai réalisé un POC avec des données d’entreprise fictives afin d’éprouver la solution de gestion d’identité à déployer pour ce client.

Le client souhaitait synchroniser son référentiel d’utilisateurs (table SQL) avec son annuaire Active Directory et les annuaires de plusieurs applications métiers On-Premise ou SaaS. Dans le cadre du POC, j’ai donc recréé ce référentiel utilisateurs en prenant en compte les contraintes suivantes :
– Création aléatoire d’entrée (valeur aléatoire pour les champs prénom, nom, adresse, numéro de téléphone).
– Prises en comptes de 3 systèmes RH différents avec des plages du numéro d’employé en conflits. La solution a été d’affecter à chaque base RH un code et de l’ajouter au numéro d’employé.
– Créer une base d’utilisateurs avec 3 niveaux hiérarchiques.
– Disposer de profils internes / externes.
– Générer un second identifiant unique (Global ID) généré par le référentiel utilisateurs pour gérer certains cas d’usage spécifique (déplacement d’une identité entre bases RH, conversion d’un externe en interne et inversement…).

Le script PowerShell et les fichiers sources sont disponibles à cette adresse :
http://msreport.free.fr/articles/GenerateCSV.zip

Bonne lecture.

Cordialement

Guillaume MATHIEU
La connaissance s’accroît quand on la partage
Directeur Technique Metsys
http://msreport.free.fr
http://www.metsys.fr/blog

Publié dans Outils, PowerShell, Scripts | Marqué avec , , | Commentaires fermés sur Générer une base RH de tests avec PowerShell

Déploiement de BitLocker -> retours d’expériences

Bonjour à tous

J’ai récemment déployé BitLocker chez un de mes clients. Voici quelques retours d’expériences sur cette solution.

1. Choix de la solution de chiffrement des disques
Mon client souhaitait chiffrer les disques systèmes, les disques de données de ses stations de travail et ses serveurs. En effet si un attaquant obtient un accès physique à une machine avec des disques non chiffrés, il peut modifier les fichiers systèmes de cette dernière et remplacer un exécutable comme SETHC.EXE par CMD.EXE. Ce changement permet à l’attaquant d’obtenir une invite de commande en tant que SYSTEM sur une machine au niveau de la mire de login Windows sans ouvrir de session utilisateur sur cette dernière en appuyant 5 fois sur la touches SHIFT.

Il existe plusieurs solutions de chiffrement de disque compatibles avec les OS Windows :
– Microsoft BitLocker
– TrueCrypt.
– BestCrypt Volume Encryption .
– Check Point Full Disk Encryption.
– McAfee Drive Encryption (SafeBoot).
– PGP Whole Disk Encryption (Symantec).
– SafeGuard Enterprise (Sophos).
– SecureDoc (WinMagic).

Après analyse, la solution BitLocker a été retenue car :
– Elle est prise en charge sous Windows 7 Enterprise / Ultimate et Windows 10 Pro / Enterprise.
– Elle ne nécessite pas de serveur(s) d’administration ou de base de données (sauf si utilisation optionnelle de MBAM comme serveur d’administration).
– Elle ne nécessite pas le déploiement d’agent (sauf si utilisation optionnelle de MBAM comme serveur d’administration).
– Elle peut s’administrer via GPO.
– BitLocker a obtenu la certification FIPS140-2 (Federal Information Processing Standards).
– BitLocker peut être activé par script (commande manage-bde avec Windows 7, commande PowerShell avec Windows 8 et versions ultérieures).

2 Architecture mise en œuvre
2.1 Présentation générale :
BitLocker est une solution qui permet de chiffrer les disques systèmes, les disques de données (disques fixes) ou les disques amovibles.
La solution est intégrée de base dans Windows 7 Enterprise et Windows 8 Professionnel / Enterprise et Windows 10 Professionnel / Enterprise.
Elle s’installe comme une fonctionnalité optionnelle sur les serveurs Windows 2008 R1 et versions ultérieures.
BitLocker ne peut pas être déployé sur Windows XP ou Windows 2003. Il est cependant possible de déployer une visionneuse BitLocker sur ces OS pour lire un disque chiffré depuis une autre machine :
https://social.technet.microsoft.com/Forums/windows/en-US/c718f451-eccf-419e-a21a-b417b505928e/windows-server-2003-and-bit-locker?forum=winservergen
Microsoft ne supporte pas le chiffrement BitLocker sur un disque système virtuel sauf si l’hyperviseur est sous Hyper-V de Windows 2016.
https://docs.microsoft.com/en-us/windows/security/information-protection/bitlocker/bitlocker-frequently-asked-questions
https://kb.vmware.com/s/article/2036142
https://charbelnemnom.com/2017/03/how-to-enable-virtual-tpm-vtpm-in-windows-server-2016-hyper-v-vm-hyperv-ws2016/
https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/vm-encryption-vsphere65-perf.pdf
https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.security.doc/GUID-06E45092-22DD-4064-AF55-FB5D0FD4E588.html

Sous Windows 7, BitLocker doit être activé après l’installation avec la commande MANAGE-BDE ou via le composant BitLocker du panneau de configuration.
Depuis Windows 8 (et versions ultérieures), BitLocker peut être déployé dès le déploiement de l’OS comme expliqué dans l’article suivant :
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/dn306081(v=ws.11)

L’activation de BitLocker pour un disque système ou un disque fixe (de données) sur une machine Windows 7 nécessite le privilège administrateur. L’activation de BitLocker pour un disque amovible ne nécessite pas le droit administrateur.
L’activation de BitLocker sur une machine Windows 8 ou Windows 10 nécessite toujours le privilège administrateur mais l’utilisateur peut changer son code PIN (disque système) ou le mot de passe de démarrage (disque système ou disque fixe). L’utilisateur doit être en capacité de saisir l’ancien code PIN ou l’ancien mot de passe de démarrage. Il est possible d’empêcher l’utilisateur de changer son code PIN ou son mot de passe de démarrage.

2.2 Prérequis pour le déploiement :
– Machine avec un TPM 1.2 (ou versions supérieures). Il est possible d’utiliser la commande TPM.MSC pour voir la configuration du TPM.
– Pas de disque dynamique.
– Machine physique (pas de support de BitLocker pour les disques systèmes avec des machines virtuelles).
– 2 partitions pour le volume système. En effet, la première partition n’est pas chiffrée car les étapes de prédémarrage et la vérification des fichiers systèmes doit se faire sur une partition séparée :
https://docs.microsoft.com/en-us/windows/security/information-protection/bitlocker/bitlocker-frequently-asked-questions
– TPM activée dans le BIOS de la machine.
– Partition dédiée de 100 Mo minimum. Il est possible de créer cette partition avec la commande :
BdeHdCfg -target default
– BIOS à jour (fortement recommandé) :
http://www.dell.com/support/article/fr/fr/frbsdt1/sln304584/bitlocker-asks-for-a-recovery-key-every-boot-on-usb-c-thunderbolt-systems-when-docked-or-undocked?lang=en
https://www.dell.com/support/article/fr/fr/frbsdt1/sln153694/updating-the-bios-on-dell-systems-with-bitlocker-enabled?lang=en

2.3 Comment BitLocker chiffre les disques et protège la clé de chiffrement
BitLocker utilise la clé « Full volume encryption key » pour chiffrer un volume disque spécifique.
La clé « Full volume encryption key » est chiffrée par la « Volume Master key » et est stockée à l’état chiffré au niveau du volume disque. La clé « Volume Master Key » est protégée par des « Key protectors » et est aussi stockée au niveau du volume disque sous forme chiffrée. La « Volume Master Key » n’est jamais stockée en texte claire sur le volume disque.
Les « Key Protectors » peuvent être :
– Un TPM : Il s’agit de l’option recommandée par Microsoft. La puce TPM permet de protéger la « Volume Master Key » et permet de vérifier que la configuration du système n’a pas été altérée (voir la section sur les PCRs).
– Une clé de chiffrement (stockée sur un disque USB) ou un mot de passe de démarrage : sous Windows Vista et versions ultérieures, il était possible de déployer BitLocker sur des machines sans TPM en utilisant une startup Key stockée sur une clé USB. Depuis Windows 8, il est possible de déployer BitLocker sur des machines sans TPM en configurant un mot de passe de démarrage. Ces 2 options ne sont pas recommandées car elles ne permettent pas de valider l’intégrité du démarrage de la machine.
« On computers that do not have a TPM version 1.2 or later, you can still use BitLocker to encrypt the Windows operating system drive. However, this implementation will require the user to insert an USB startup key to start the computer or resume from hibernation. In Windows 8 using an operating system volume password is another option to protect the operating system volume on a computer without TPM. Both options do not provide the pre-startup system integrity verification offered by BitLocker with a TPM. »
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/hh831713(v%3dws.11)
https://blogs.msdn.microsoft.com/virtual_pc_guy/2008/01/23/using-bitlocker-under-virtual-pc-virtual-server/
– TPM + code PIN ou TPM + clé de démarrage ou TPM + code PIN + clé de démarrage : BitLocker peut être configuré pour bloquer le démarrage de l’OS et nécessiter la saisie d’un code PIN ou/et l’insertion d’une clé USB contenant une clé de démarrage. Ce mode permet de disposer de 2 ou 3 facteurs pour déverrouiller un disque système chiffré avec BitLocker.
– Déverrouillage automatique : ce protector génère une clé externe qui permet de récupérer automatiquement la « Volume Master Key ».
– Un mot de passe de récupération : ce mot de passe permet de récupérer la « Volume Master Key ».
– Une clé de récupération : cette clé permet de récupérer la « Volume Master Key ».
– Un certificat : la clé privée associée au certificat permet de récupérer la « Volume Master Key ».

Pour afficher la liste des « Key Protectors », il faut taper la commande suivante :
manage-bde -protectors -get nom_volume

Pour voir la liste des « Key Protectors », on peut taper la commande suivante :
manage-bde -on -?

BitLocker prend en charge les algorithmes de chiffrement AES (Advanced Encryption Standard) 128 bits et 256 bits.
https://docs.microsoft.com/en-us/windows/security/information-protection/bitlocker/bitlocker-frequently-asked-questions

On notera que les « Protectors » ci-dessous sont utilisés comme des mécanismes de secours et peuvent être exporté au niveau de l’annuaire Active Directory ou dans la base SQL Server d’un serveur MBAM :
– Clé de chiffrement
– Mot de passe de récupération.
– Certificats (agent de récupération).
https://docs.microsoft.com/en-us/windows/security/information-protection/bitlocker/bitlocker-frequently-asked-questions

Dans la configuration par défaut, lorsqu’on active BitLocker via le panneau de configuration, un mot de passe de récupération et une clé de récupération sont générés. L’assistant propose de sauvegarder la clé de récupération sur un emplacement distant et d’imprimer le mot de passe de récupération.
Il est possible via GPO de sauvegarder cette clé de récupération et le mot de passe de récupération au niveau du compte ordinateur de la machine.

La fonctionnalité Network Unlock permet de configurer BitLocker en mode stockage des clés de chiffrement sur puce TPM et code PIN. Quand les utilisateurs sont connectés à un réseau de confiance, ils n’ont pas besoin de saisir leur code PIN. Quand ils sont sur un réseau externe, ils doivent saisir ce code. Cette fonctionnalité nécessite de déployer une architecture serveur spécifique (WDS, certificat…) et que la machine à chiffrer dispose d’un firmware UEFI qui intègre un driver DHCP.
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/jj574173%28v%3dws.11%29

Je vous invite à déployer la configuration suivante :
– Une clé de chiffrement XTS-AES 128 bits.
– Utiliser les « Key Protectors » suivants pour les disques systèmes : TPM, mot de passe de récupération
– Utiliser les « key Protectors » suivants pour les disques de données fixes : dérouillage automatique et mot de passe de récupération.
– Les « Key Protectors » nécessitant plusieurs facteurs comme TPM + CODE PIN ou TPM + clé de chiffrement sont trop contraignants pour les utilisateurs mais s’imposent dans les environnements les plus critiques (voir le paragraphe traitant des attaques contre BitLocker)
– Le mot de passe de récupération sera copié au niveau du compte ordinateur dans l’annuaire Active Directory. L’activation de BitLocker échouera si cette copie échoue.

2.4 Détection d’un changement de configuration et passage en mode « Recovery BitLocker »
Le module TPM permet de protéger et stocker la Volume Master Key. Le TPM dispose aussi de registres appelés PCRs pour « TPM’s Platform Conguration Registers ». Chaque registre stocke un hash de la configuration logicielle / matérielle de la machine. Le PCR 4 stocke par exemple un hash du MBR.
Ces hash sont utilisés comme paramètres pour protéger la « Volume Master Key ». Si la valeur du Hash change, on perd donc accès à la « Volume Master Key » et on passe en mode Recovery BitLocker.
C’est pour cette raison qu’un flash du BIOS ou le changement de l’ordre du démarrage de la machine, ou l’altérations des fichiers de démarrage va conduire au passage en mode « Recovery BitLocker ».

Une GPO permet de définir les registres PCRs utilisés. Un changement de la liste des PCRs à utiliser fait passer la machine en mode « BitLocker Recovery ».
Je vous invite à lire le chapitre 3 du document ci-dessous :
https://www.blackhat.com/docs/eu-15/materials/eu-15-Haken-Bypassing-Local-Windows-Authentication-To-Defeat-Full-Disk-Encryption-wp.pdf
Ainsi que le document Microsoft suivant :
https://blogs.technet.microsoft.com/arnaud_jumelet/2010/07/05/bitlocker-registres-pcr-dune-puce-tpm/

Il est possible de forcer le passage en mode Recovery avec cette commande :
manage-bde –forcerecovery

Le fait de brancher une station de travail sur un dock (USB –C) est considéré comme un changement matériel. Pour cette raison, il est peut recommander de désactiver le PCR 2 si et seulement si vous disposez d’un mot de passe BIOS.
https://social.technet.microsoft.com/Forums/windows/en-US/890244a7-8eb4-4df2-b6e5-8fec067ce047/pcr-settings-and-bitlocker?forum=win10itprosecurity
http://thecramers.us/configuration-manager/bitlocker-recovery-key-prompt-after-attaching-a-usb-cthunderbolt-device/
http://www.dell.com/support/article/fr/fr/frbsdt1/sln304584/bitlocker-asks-for-a-recovery-key-every-boot-on-usb-c-thunderbolt-systems-when-docked-or-undocked?lang=en

Le changement de la configuration des PCRs déclenche un démarrage en mode « Recovery BitLocker » sauf si BitLocker a été configuré en mode Pause.

2.5 Méthode de chiffrement du disque
BitLocker prend en charge 2 méthodes de chiffrements du disque depuis Windows 8 :
– Espace disque utilisé : l’espace disque libre n’est pas chiffré. Si BitLocker est activé à l’installation de l’OS, cela permet de réduire le temps nécessaire pour chiffrer un lecteur.
– Disque complet : ce mode est compatible avec Windows 7 et nécessite que tout le disque soit chiffré.
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/dn306081(v=ws.11)#BKMK_Encryption

2.6 Mot de passe du propriétaire du TPM
Pour modifier le contenu du TPM (TPM.MSC), il faut disposer du mot de passe du propriétaire du TPM. Depuis Windows 10 1607, Microsoft souhaite que le TPM soit uniquement géré par le système et génère un mot de passe aléatoire de propriétaire. Les administrateurs peuvent donc uniquement faire 2 actions sous Windows 10 :
– Purger le contenu du TPM.
– L’activer / désactiver TPM.
Le mot de passe du propriétaire du TPM peut être copié dans l’annuaire Active Directory comme expliqué dans l’article. Cette fonctionnalité n’est plus disponible avec les dernières versions de Windows 10 (depuis la 1607) :
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-8.1-and-8/jj592683(v=ws.11)
https://docs.microsoft.com/en-us/windows/security/hardware-protection/tpm/backup-tpm-recovery-information-to-ad-ds

2.7 Serveur d’administration BitLocker
Les clients qui disposent de la Software Assurance peuvent déployer le serveur d’administration BitLocker (MBAM 2.5 SP1). Cette solution nécessite le déploiement de 2 serveurs et d’une base de données SQL Server. Elle nécessite aussi le déploiement de son propre agent. Elle permet de déployer de manière centralisé BitLocker sans scripts et disposent de nombreuses fonctionnalités de rapports.

2.8 Performances et FAQ :
BitLocker a un impact sur les performances générales de la machine quand cette dernière dispose d’un disque SATA. Le changement n’est pas perceptible si on utilise un disque SSD. Sur un PC existant avec un disque SATA, la phase initiale de chiffrement impactera l’utilisation normale du PC.
https://docs.microsoft.com/en-us/windows/security/information-protection/bitlocker/bitlocker-frequently-asked-questions

3. Déploiement de BitLocker sur les stations de travail et les serveurs de Le client

Etape 1 : permissions pour la sauvegarde du mot de passe du propritaire de TPM
Le script ci-dessous a été exécuté pour permettre aux ordinateurs d’enregistrer le mot de passe du propriétaire du TPM dans l’annuaire Active Directory.
https://gallery.technet.microsoft.com/ScriptCenter/b4dee016-053e-4aa3-a278-3cebf70d1191/

Etape 2 : mise à jour du schéma Active Directory
Une mise à jour du schéma pour Windows 2012 doit être effectuée pour permettre aux machines Windows 8 et ultérieures d’enregistrer le mot de passe du propriétaire du TPM.
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-8.1-and-8/jj592683(v=ws.11)

Etape 3 : Création des GPO
Les GPO pour configurer BitLocker se trouvent au niveau de :
« Computer Configuration | Policies | Administrative templates | Windows Components | BitLocker Drive encryption ».
On notera qu’il existe des paramètres de GPO pour les disques systèmes, pour les disques de données et pour les disques amovibles.

Configuration pour les disques systèmes :
La GPO « Choose drice encryption method and cipher strength » doit être configurée sur « XTS-AES 128-Bit ».
La GPO « Require additionnal authentication at startup » (dans la partie disque système) doit être configurée pour :
– Nécessiter un TPM
– Autoriser un code PIN, une start-up key ou les deux avec le TPM.
– Autoriser un agent de récupération BitLocker.

La GPO « Choose how BitLocker protected operating system drives can be recovered » doit être configurée pour nécessiter un mot de passe de récupération de 48 bits (obligatoire) et autoriser une clé de récupération de 256 bits (option). Cette GPO doit aussi être configurée pour faire le backup du mot de passe de récupération et des clés de récupération et pour empêcher l’activation de BitLocker tant que les informations de Recovery ne sont pas sauvegardées au niveau Active Directory.

Dans notre cas, on veut désactiver le PCR 2 (mettre un mot de passe BIOS / UEFI pour toutes les machines).
Pour cela, il faut configurer 2 GPO :
La GPO « Configure TPM platform validation profile (Windows Vista, Windows Server 2008, Windows 7, Windows 2008 R2 » doit être configurer pour activer uniquement les PCRs 0, 4, 8, 9, 10, 11. Ce réglage est pour les machines avec BIOS car ces versions de Windows ne supportent pas le boot en UEFI.
Il faut aussi configurer les PCRs pour les machines avec UEFI (Windows 8 et versions ultérieures). Laisser les paramètres par défaut et décocher PCR 2.

Configuration pour les disques de données fixes :
On va utiliser la fonctionnalité de déverrouillage automatique. Cette dernière génère une clé de chiffrement externe.
La GPO « Configure use of password for fixed data drive » a donc été désactivée.
La GPO « Configure use of smart cards on fixed data drive » a aussi été désactivée.
La GPO « Choose how BitLocker protected fixed drives can be recoverred » doit nécessite un mot de passe de récupération de 48 bits (obligatoire) et autoriser une clé de récupération de 256 bits (option). Cette GPO doit aussi être configurée pour faire le backup du mot de passe de récupération et des clés de récupération et empêcher l’activation de BitLocker tant que les informations de Recovery ne sont pas sauvegardées au niveau Active Directory.

Le mot de passe du propriétaire du TPM doit être sauvegardé dans l’annuaire Active Directory comme le chiffrement BitLocker est activé pour les machines (sauf Windows 10 / Windows 2016). Depuis la dernière version des ADMX fournis avec Windows 10 / Windows 2016, cette GPO n’est plus disponible :
La parade est de déployer les clés de registre via GPO de préférence comme expliqué dans les articles suivants :
Cela revient à déployer les entrée de registres ActiveDirectoryBackup et RequireActiveDirectoryBackup.
https://social.technet.microsoft.com/Forums/en-US/c8ad5825-ecc7-4873-a2c0-d6b51789e12e/turn-on-tpm-backup-to-active-directory-domain-services?forum=winserverGP

La GPO doit aussi être configurer pour démarrer le service BDESVC.

Etape 4 : déploiement des outils d’administration BitLocker
Un addon BitLocker permet de visionner les mots de passe de récupération au niveau de la console Utilisateurs et Ordinateurs Active Directory. Il s’agit d’une fonctionnalité RSAT à installer (BitLocker Recovery Password Viewer).

Etape 5 : Activation de BitLocker sur la machine :
Il faut activer le TPM dans le BIOS / UEFI de la machine. Cette action doit être effectuée avant de lancer l’activation de BitLocker. Par défaut le TPM est désactivé.

Je vous invite à mettre à jour les bios / UEFI des stations de travail :
https://www.dell.com/support/article/fr/fr/frbsdt1/sln153694/updating-the-bios-on-dell-systems-with-bitlocker-enabled?lang=en)

Le service BDESVC doit être activé sur la machine. Cette action est effectuée via la GPO crée à l’étape précédente.

Créer ensuite un script qui exécute les commandes suivantes. Ce script peut être exécuté par GPO au démarrage de la machine.

Etape 1 : préparation du disque pour BitLocker
Taper la commande suivante :
bdeHdCfg.exe -target default –quiet

Etape 2 : création du mot de passe de récupération BitLocker
Taper la commande suivante :
manage-bde -protectors -add C: -RecoveryPassword

Etape 3 : obtention de l’ID du protector
Taper la commande suivante (exemple avec un volume disque C)
manage-bde -protectors C: -Get
Copier l’ID (dans notre exemple {21F502088-DD21-49B8-A9C7-041E02D06CE8})

Etape 4 : sauvegarde du mot de passe de récupération dans l’annuaire Active Directory
Taper la commande suivante :
manage-bde -protectors c: -adbackup -id {21F502088-DD21-49B8-A9C7-041E02D06CE8}

Etape 5 : Activation de BitLocker sur le disque

Pour un disque système, il faut taper la commande suivante :
manage-bde -on c: -SkipHardwareTest

Pour un disque de données, il faut taper les commandes suivantes :
manage-bde -on d: -SkipHardwareTest
manage-bde -AutoUnlock -Enable D:

C’est le paramètre -AutoUnlock qui va permettre de déverrouiller automatiquement le disque de données fixes au démarrage.
Il n’est pas nécessaire de sauvegarder de nouveau cette clé dans l’annuaire AD car on a déjà le mot de passe de récupération.

Etape 6 : vérification du statut du disque
Taper la commande :
manage-bde -status

Au niveau de l’annuaire Active Directory :
On peut voir que l’attribut msTPM-OwnerInformation du compte ordinateur contient le mot de passe du propriétaire du TPM.
Un objet enfant de l’objet ordinateur a été créé et contient le mot de passe de récupération BitLocker.

Pour afficher la liste des protectors d’un disque :
Manage-bde –protectors –get c:
Dans cet exemple, le volume que l’on souhaite afficher est C.

Il est possible de forcer le passage en mode Recovery avec cette commande :
manage-bde –forcerecovery

4. Contournement / hack de BitLocker
Les articles ci-dessous présentent des techniques pour contourner BitLocker :
https://www.blackhat.com/docs/eu-15/materials/eu-15-Haken-Bypassing-Local-Windows-Authentication-To-Defeat-Full-Disk-Encryption-wp.pdf
https://betanews.com/2016/11/30/windows-10-bypass-bitlocker/
https://www.pentestpartners.com/security-blog/bypass-windows-auth-bitlocker-with-forgotten-password-function
https://www.securityweek.com/microsoft-fixes-critical-vulnerabilities-windows-ie-edge

Attaque 1 : modification séquence de boot
Déploiement d’un BIOS corrompu pour contourner le mécanisme de protection du TPM (PCRs) et récupérer directement la clé de chiffrement du TPM. La vidéo ci-dessous présente une technique pour récupérer le code Pin d’un utilisateur.
https://testlab.sit.fraunhofer.de/content/output/project_results/bitlocker_skimming
Pour se protéger, il faut activer le Secure Boot sous Windows 8 et versions ultérieures.

Attaque 2 : Récupération de la clé de déchiffrement BitLocker en mémoire.
C’est possible avec les outils ci-dessous :
https://blog.elcomsoft.com/2016/06/breaking-bitlocker-encryption-brute-forcing-the-backdoor-part-i/
Vérifier que les dump mémoire, fichiers d’hibernation ou le pagefiles.sys sont stockés sur une partition chiffrée.

Attaque 3 : faille protocole Kerberos :
L’attaque s’appuie sur une faille dans le protocole Kerberos au niveau de la fonction de changement d’un mot de passe expiré. Il faut appliquer les correctifs du bulletin de sécurité MS15-122.
https://docs.microsoft.com/en-us/security-updates/SecurityBulletinSummaries/2015/ms15-nov
https://docs.microsoft.com/fr-fr/security-updates/SecurityBulletins/2015/ms15-122

Attaque 4 : GINA personnalisée
Lorsque la machine arrive sur l’écran de démarrage, le disque chiffré BitLocker est déverrouillé. Pour accéder au disque sans ouvrir une session, il faut modifier le fonctionnement d’un agent comme celui de MIM ou Password Manager qui lance des exécutables en tant que system au niveau de l’invite d’ouverture de session. Le principe est de lui faire ouvrir une invite de commande ou un explorateur pour accéder au disque :
https://www.pentestpartners.com/security-blog/bypass-windows-auth-bitlocker-with-forgotten-password-function/

Attaque 5 : faille sous Windows 10
Il existe une faille sous Windows 10 qui permettrait d’ouvrir une invite de commande en tant que System pendant la mise à jour de Windows 10 vers une nouvelle version. Cela permettait donc de contourner les mécanismes de protection de BitLocker.
https://mspoweruser.com/windows-10-bug-lets-unauthorised-users-bypass-bitlocker-updates/

Cordialemnt

Guillaume MATHIEU
Directeur Technique Metsys
La connaissance s’accroît quand on la partage
http://msreport.free.fr
http://www.metsys.fr/blog

Publié dans Annuaire, BitLocker, Sécurité, Système, Tests d'intrusion | Marqué avec , , , | Commentaires fermés sur Déploiement de BitLocker -> retours d’expériences

Retour sur le MVP Global Summit 2018

Bonjour à tous,

Le MVP Global Summit 2018 se termine et ce fût un moment magique !

Le MVP Global Summit, une occasion en or pour évoluer techniquement !

Le MVP Global Summit, c’est avant tout des centaines de sessions organisées par Microsoft pour ses MVP avec parfois du contenu très technique comme les fameuses sessions Deep Dive (aller en profondeur) et des échanges passionnants et sans concession avec les équipes Microsoft. En 2017 / 2018, j’ai travaillé principalement sur des projets de sécurité et de gestion des identités. Autant vous dire que j’attendais avec impatience cet événement pour me remettre à fond sur les solutions Windows Server et Azure et m’ouvrir l’esprit sur les grandes tendances du marché.

L’avenir des centres de données passera par les solutions hyperconvergées et Azure !

J’ai eu l’opportunité d’assister à de nombreuses conférences sur la solution hyperconvergée de Microsoft et sur Azure IaaS. Avec Windows 2016, ReFS, Storage Space Direct, Hyper-V, le Software Defined Datacenter, Microsoft dispose d’une solution ultra performante pour vos centres de données privés. Le principe de la solution est très simple : supprimer le goulet d’étranglement du réseau de stockage et virtualiser le stockage, le réseau et les serveurs. Je vous invite à lire justement le livre blanc de Romain SERRE qui aborde ce sujet en profondeur : https://gallery.technet.microsoft.com/Understand-Hyper-Converged-bae286dd

Une lecture passionnante. Merci encore à lui, Jean-François APREA et Seyfallah TAGREROUT pour leurs explications sur cette technologie 😊.

L’avenir des interfaces Microsoft s’appelle Honolulu !

Administrer les services et les rôles Windows via une interface simple, unifiée et sans surcoût (inclus dans le prix de la licence Windows Server), ce sera bientôt possible et cela s’appelle Honolulu. Microsoft met à disposition une version bêta en libre téléchargement :

https://docs.microsoft.com/en-us/windows-server/manage/honolulu/honolulu

https://www.youtube.com/watch?v=cIZMkzSdny8

Les modules pour l’ensemble des rôles vont arriver au fil des versions. Vous pouvez soumettre vos idées pour les nouvelles fonctionnalités à cette adresse : https://aka.ms/honoluluFeedback

Azure, toujours plus riche au niveau des fonctionnalités :

Beaucoup de nouveautés dont on ne parlera pas dans cet article (j’ai signé un NDA).

On notera cependant l’arrivée en preview de la fonctionnalité Serial Console. Il est maintenant possible d’interagir pendant le démarrage d’une machine virtuelle Azure IaaS. C’est une fonctionnalité que j’attendais depuis longtemps et qui était bloquante pour l’adoption de la solution.

La fonctionnalité est en train d’être déployée sur tous les Tenant. Elle devrait apparaître prochainement sur votre Tenant. Pour rappel, toutes les personnes qui disposent d’un abonnement MSDN (c’est le cas de chaque employé Metsys) disposent d’un crédit de 130 euros par mois sur Azure. Plus d’arguments pour ne plus tester et se former sur Azure (c’est l’avenir) :

https://azure.microsoft.com/fr-fr/pricing/member-offers/credit-for-visual-studio-subscribers/

Le MVP Global Summit, une vraie aventure humaine :

Microsoft a vraiment mis le paquet en terme de logistique.

Quand on arrive sur le campus Microsoft pour la première fois, on ne peut être qu’impressionné par la taille et le nombre des bâtiments. C’est tellement grand que Microsoft propose un service de navette gratuit pour ses employés et les visiteurs. Impossible de se perdre, il y a toujours une personne pour vous indiquer votre route.

Microsoft prend à sa charge 100% des frais d’hôtel pour tous les MVP qui partagent leur chambre avec un confrère. Ce fut pour moi l’occasion de rencontrer mon nouveau collègue Damien VAN ROBAEYS, qui rejoindra Metsys début mai, un expert MDT mais surtout un colocataire avec qui on ne s’ennuie pas.

Les sessions techniques c’est bien, mais les soirées entre MVPs c’est mieux. Merci à Estelle AUBRIX et à Mickael LOPES de m’avoir présenté l’équipe Azug et m’avoir sorti de ma grotte.

A l’année prochaine !

Guillaume MATHIEU
Directeur Technique de Metsys
La connaissance s’accroît quand on la partage
http://msreport.free.fr
http://www.metsys.fr/blog

Publié dans Azure, Honolulu, Hyper-V, MVP Global Summit, Virtualisation | Marqué avec | Commentaires fermés sur Retour sur le MVP Global Summit 2018