L'homme, comme vous le savez, est une créature paresseuse. Et encore plus quand il s'agit de choisir un mot de passe fort.
Je pense que chacun des administrateurs a déjà rencontré le problème de l'utilisation de mots de passe légers et standard. Ce phénomène se retrouve souvent dans les échelons supérieurs de la gestion d'entreprise. Oui, oui, il fait partie de ceux qui ont accès à des informations classifiées ou commerciales et il serait extrêmement indésirable d'éliminer les conséquences de la fuite / piratage de mot de passe et d'autres incidents.
Dans ma pratique, il y a eu un cas où, dans un domaine Active Directory avec une politique de mot de passe activée,
les comptables comptables sont venus indépendamment à l'idée qu'un mot de passe du formulaire «Pas $ w0rd1234» fonctionne parfaitement pour les exigences de la politique. La conséquence a été l'utilisation répandue de ce mot de passe partout. Il différait parfois uniquement sur un ensemble de chiffres.
Je voulais vraiment pouvoir non seulement inclure une politique de mot de passe et définir un jeu de caractères, mais aussi filtrer par dictionnaire. Pour exclure la possibilité d'utiliser ce type de mot de passe.
Microsoft nous informe avec bonté via le lien que toute personne qui sait comment tenir le compilateur correctement, IDE et sait prononcer C ++, est capable de compiler et d'utiliser la bibliothèque dont ils ont besoin comme bon leur semble. Votre humble serviteur n'en est pas capable, j'ai donc dû chercher une solution toute faite.
Après une
longue heure de recherche, deux options pour résoudre le problème ont été révélées à l'œil. Bien sûr, je parle de la solution OpenSource. Après tout, des options payantes - de et vers.
Numéro d'option 1. OpenPasswordFilterIl n'y a pas de commit dès la deuxième année. Le programme d'installation natif fonctionne une fois sur deux, vous devez le corriger à la main. Crée son propre service distinct. Lors de la mise à jour du fichier de mot de passe, la DLL ne récupère pas automatiquement le contenu modifié, vous devez arrêter le service, attendre un délai d'expiration, modifier le fichier, démarrer le service.
Ne glacez pas!Numéro d'option 2. PassFiltExLe projet est actif, vivant et n'a même pas besoin de donner un coup de pied à un corps froid.
L'installation d'un filtre implique la copie de deux fichiers et la création de plusieurs entrées de registre. Le fichier de mots de passe n'est pas verrouillé, c'est-à-dire qu'il est modifiable et, selon l'idée de l'auteur du projet, il est simplement lu une fois par minute. De plus, à l'aide d'entrées de registre supplémentaires, vous pouvez également configurer à la fois le filtre lui-même et même les nuances de la politique de mot de passe.
Alors.
Donné: domaine Active Directory test.local
Station de travail de test Windows 8.1 (insignifiante pour les conditions de tâche)
Filtre de mot de passe PassFiltEx
- Téléchargez la dernière version de PassFiltEx à partir du lien
- Copiez PassFiltEx.dll dans C: \ Windows \ System32 (ou % SystemRoot% \ System32 ).
Copiez PassFiltExBlacklist.txt dans C: \ Windows \ System32 (ou % SystemRoot% \ System32 ). Si nécessaire, complétez-le avec nos modèles.

- Modification de la branche de registre: HKLM \ SYSTEM \ CurrentControlSet \ Control \ Lsa => Packages de notification
Ajoutez PassFiltEx à la fin de la liste. (Aucune extension n'est requise.) La liste complète des packages utilisés pour la vérification ressemblera à ceci " rassfm scecli PassFiltEx ".

- Nous redémarrons le contrôleur de domaine.
- Nous répétons la procédure ci-dessus pour tous les contrôleurs de domaine.
Vous pouvez également ajouter les entrées de registre suivantes, ce qui vous donne plus de flexibilité dans l'utilisation de ce filtre:
Section:
HKLM \ SOFTWARE \ PassFiltEx - est créé automatiquement.
- HKLM \ SOFTWARE \ PassFiltEx \ BlacklistFileName , REG_SZ, Par défaut: PassFiltExBlacklist.txt
BlacklistFileName - vous permet de spécifier un chemin d'accès personnalisé au fichier avec des modèles de mot de passe. Si cette entrée de Registre est vide ou n'existe pas, le chemin par défaut est utilisé, à savoir % SystemRoot% \ System32 . Vous pouvez même spécifier le chemin réseau, MAIS vous devez vous rappeler que le fichier modèle doit avoir des autorisations claires pour lire, écrire, supprimer, modifier.
- HKLM \ SOFTWARE \ PassFiltEx \ TokenPercentageOfPassword , REG_DWORD, Par défaut: 60
TokenPercentageOfPassword - vous permet de spécifier l'occurrence en pourcentage du masque dans le nouveau mot de passe. La valeur par défaut est 60%. Par exemple, si un pourcentage d'occurrence de 60 est spécifié et que la ligne Starwars se trouve dans le fichier modèle, le mot de passe est Starwars1! sera rejeté, tandis que le mot de passe starwars1! DarthVader88 sera accepté, car le pourcentage d'occurrence de la chaîne dans le mot de passe est inférieur à 60%
- HKLM \ SOFTWARE \ PassFiltEx \ RequireCharClasses , REG_DWORD, Par défaut: 0
RequireCharClasses - Améliore les exigences de mot de passe par rapport aux exigences de complexité de mot de passe ActiveDirectory standard. Les exigences de complexité intégrées nécessitent 3 types de caractères différents sur 5: majuscule, minuscule, chiffre, spécial et Unicode. À l'aide de cette entrée de registre, vous pouvez définir les exigences de complexité de votre mot de passe. La valeur qui peut être spécifiée est un ensemble de bits, chacun étant une puissance correspondante de deux.
C'est-à-dire - 1 = minuscule, 2 = majuscule, 4 = chiffre, 8 = caractère spécial et 16 = caractère Unicode.
Ainsi, avec une valeur de 7, les exigences seront «Majuscule ET minuscule ET chiffre», et avec une valeur de 31, «Majuscule ET minuscule ET chiffre ET caractère spécial ET caractère spécial Unicode».
Vous pouvez même combiner - 19 = «Majuscule ET minuscule ET caractère Unicode».

Un certain nombre de règles lors de la compilation d'un fichier modèle:
- Les motifs ne sont pas sensibles à la casse. Par conséquent, l'entrée dans le fichier starwars et StarWarS sera déterminée comme la même valeur.
- Le fichier de liste noire est relu toutes les 60 secondes, vous pouvez donc le modifier facilement, après une minute, les nouvelles données seront déjà utilisées par le filtre.
- Il n'y a actuellement aucun support Unicode pour la validation de modèle. Autrement dit, vous pouvez utiliser des caractères Unicode dans les mots de passe, mais le filtre ne fonctionnera pas. Ce n'est pas critique, car je n'ai pas vu d'utilisateurs qui utilisent des mots de passe Unicode.
- Il est conseillé de ne pas autoriser les lignes vides dans le fichier modèle. Dans le débogage, une erreur est alors visible lorsque les données du fichier sont chargées. Le filtre fonctionne, mais pourquoi les filtres supplémentaires?
Pour le débogage, l'archive contient des fichiers de commandes qui vous permettent de créer un journal, puis de l'analyser à l'aide, par exemple, de
Microsoft Message Analyzer.Ce filtre de mot de passe utilise le suivi des événements pour Windows.
Le fournisseur ETW pour ce filtre de mot de passe est
07d83223-7594-4852-babc-784803fdf6c5 . Ainsi, par exemple, vous pouvez configurer le suivi des événements après le prochain redémarrage:
logman create trace autosession\PassFiltEx -o %SystemRoot%\Debug\PassFiltEx.etl -p "{07d83223-7594-4852-babc-784803fdf6c5}" 0xFFFFFFFF -ets
Le traçage démarrera après le prochain redémarrage du système. Pour arrêter:
logman stop PassFiltEx -ets && logman delete autosession\PassFiltEx -ets
Toutes ces commandes sont spécifiées dans les
scripts StartTracingAtBoot.cmd et
StopTracingAtBoot.cmd .
Pour une vérification unique du filtre, vous pouvez utiliser
StartTracing.cmd et
StopTracing.cmd .
Afin de lire facilement l'échappement de débogage de ce filtre dans
Microsoft Message Analyzer, il est recommandé d'utiliser les paramètres suivants:


Lorsque vous arrêtez le journal et analysez dans
Microsoft Message Analyzer , tout ressemble à ceci:

Ici, vous pouvez voir qu'il y a eu une tentative de définir un mot de passe pour l'utilisateur - le mot magique
SET dans le débogage nous en parle. Et le mot de passe a été rejeté en raison de sa présence dans le fichier modèle et de plus de 30% de correspondance dans le texte saisi.
Avec une tentative réussie de changer le mot de passe, nous voyons ce qui suit:

Il y a quelques inconvénients pour l'utilisateur final. Lorsque vous essayez de modifier le mot de passe qui tombe dans la liste des fichiers de modèle, le message à l'écran ne diffère pas en termes d'
intelligence et de perspicacité du message standard lorsque la stratégie de mot de passe n'est pas transmise.

Par conséquent, soyez prêt pour les appels et les cris: "J'ai entré le mot de passe comme il se doit, mais cela ne fonctionne pas."
Résumé
Cette bibliothèque vous permet d'interdire l'utilisation de mots de passe simples ou standard dans le domaine Active Directory. Dites non! mots de passe de la forme: "P @ ssw0rd", "Qwerty123", "ADm1n098".
Oui, bien sûr, les utilisateurs vous aimeront encore plus pour un tel souci de leur sécurité et la nécessité de trouver des mots de passe furieux. Et, peut-être, le nombre d'appels et de demandes d'aide avec le mot de passe que vous ajouterez. Mais la sécurité a un prix.
Liens vers les ressources utilisées:Article de Microsoft sur la bibliothèque de filtres de mots de passe personnalisés:
Filtres de mots de passePassFiltEx:
PassFiltExLien de publication:
dernière versionListes de mots de passe:
Listes DanielMiessler:
Lien.Liste de mots de faiblessepass.com:
Lien.Liste de mots du référentiel berzerk0:
Lien.Microsoft Message Analyzer:
Microsoft Message Analyzer.