Un réseau d'entreprise standard en possède au moins un, voire même bien plus que les administrateurs ne veulent l'admettre : un serveur ou une station de travail hérités qui font tourner un ancien logiciel de gestion dont on ne peut tout simplement pas se passer. Avec un peu de chance, celui-ci est installé sur une machine virtuelle que vous pouvez déplacer à tout moment. Le cas échéant, il s'agit de matériel ancien qui, vous l'espérez, continuera à fonctionner.
Comme le note Aaron Margosis de Microsoft sur son blog, l'idéal serait de remplacer les anciennes applications par de nouvelles versions compatibles et sécurisées. dans la pratique, les entreprises utilisent le plus longtemps possible les systèmes existants. Lors d'un récent sommet sur la sécurité organisé par Microsoft, Jessica Payne a abordé la question de la protection de ces systèmes hérités sur un réseau Windows. Voici quelques-uns des conseils qui sont proposés par ces deux experts :
Vérifier les identifiants de connexion
Vérifiez si vous vous connectez à ce système avec les informations d'identification de l'administrateur de domaine. Les systèmes hérités conservent souvent des valeurs de hachage des identifiants. Celles-ci peuvent être facilement récupérées en utilisant des outils largement disponibles tels que mimikatz. Assurez-vous que vous ne vous connectez pas à ces systèmes avec des paramètres d'identification privilégiées.
Vérifier les connexions réseau
Vérifiez comment les systèmes hérités se connectent à votre réseau Windows et quels sont les ports et protocoles dont l'application héritée a besoin. Utilisez des outils tels que Wireshark et Process Monitor pour déterminer les ports TCP et les protocoles qui sont utilisés par le système existant. Ensuite, utilisez le pare-feu de Windows pour limiter les accès de l'ancien système à ces seuls ports. Bloquez le périmètre du réseau des systèmes hérités afin de vous assurer qu'ils ne puissent pas être utilisés par des pirates qui tenteraient de s'introduire dans votre réseau.
Identifier les clés et les dossiers du registre des applications
Pour mieux protéger les applications, en particulier si elles exigent des droits d'administrateur, utilisez LUA Buglight pour identifier les clés de registre et les dossiers qu'une application doit ouvrir pour fonctionner sans droits d'administrateur. LUA Buglight est un outil efficace pour aider à déterminer les ajustements nécessaires à apporter à un système d'exploitation afin de faire fonctionner les applications héritées sur des systèmes modernes.
Mettez en place les autorisations adéquates
Comme le souligne Aaron Margosis, pour utiliser les applications sans droits d'administrateur, vous pouvez faire "modifier l'installateur via des transformations ou des scripts post-installation (pour les problèmes de "run-once" lors desquels l'application ne doit être exécutée avec les droits d'administrateur qu'au premier lancement). Une autre option consiste à ajouter des jonctions ou des liens symboliques de répertoire. Vous pourriez laisser la virtualisation des fichiers et du registre UAC s'en occuper. (Pour les anciennes applications où la virtualisation de fichiers/registres fonctionnerait, mais qui ont été reconstruites avec des versions plus récentes de Visual Studio qui ajoute un manifeste intégré afin de déclarer la compatibilité avec l'UAC et désactive la virtualisation). Pour écrire dans les fichiers .ini au sein des répertoires protégés, utilisez une redirection IniFileMapping. Et pour les écritures HKCR, créez au préalable des clés équivalentes sous HKCU\Software\Classes".
La dernière option, pour laquelle vous pouvez utiliser LUA Buglight, consiste à "modifier chirurgicalement les autorisations sur les fichiers, les répertoires, les clés de registre ou tout autre objet". Contrairement aux autres options, celle-ci introduit un risque d'élévation non autorisée des privilèges, ce qui nécessite la plus grande prudence.
Examinez votre réseau comme le ferait un pirate
Il est important d'évaluer votre réseau du point de vue d'un pirate informatique, surtout si un ancien serveur fait partie de votre infrastructure. L'outil BloodHound recherchera dans Active Directory les connexions inhabituelles qui peuvent être utilisées contre vous. BloodHound est compilé sur plusieurs plateformes, dont Linux, MacOS et Windows. Comme indiqué sur ce blog, vous devrez installer la base de données Neo4J pour utiliser Bloodhound. Le plus simple pour commencer à utiliser BloodHound consiste à opter pour la version desktop de Neo4J. Celle-ci installera l'environnement Java nécessaire. Une fois que vous avez installé NeoJ, lancez le programme pour définir le mot de passe de la base de données. Cette dernière contiendra des informations essentielles sur votre réseau et il est donc indispensable de définir un mot de passe fort.
Ensuite, téléchargez et installez le logiciel BloodHound. Lors de l'extraction du logiciel, définissez le dossier racine avec un nom de fichier suffisamment court pour éviter tout problème lié aux chemins de fichiers trop longs lorsque vous utilisez les paramètres par défaut. Par la suite vous devrez aussi vous souvenir de votre mot de passe Neo4j. Enfin, et c'est certainement l'étape la plus difficile du pas à pas, téléchargez l'outil SharpHound3 qui va effectuer l'analyse de votre réseau. Il faudra peut être le télécharger sur un ordinateur équipé de Windows 7 car la protection avancée contre les menaces de Windows 10 stoppe l'installation et ne me permet pas de l'exécuter sur le réseau. Un logiciel antivirus peut avoir le même comportement. Vous devrez peut-être "exécuter en tant qu'administrateur" ou "débloquer" le fichier car celui-ci est marqué par des attributs web et il ne collectera pas de données tant que ces paramètres ne seront pas implémentés.
Analyse plus approfondie
Une fois que vous avez lancé SharpHound, celui-ci prépare un fichier zip qui contient une analyse de votre réseau. Lancez BloodHound qui vous indiquera que la base de données est vierge. Cliquez sur le bouton d'upload sur la droite et sélectionnez votre fichier zip SharpHound. Dans la section requêtes, vous pouvez passer en revue celles qui sont le plus couramment utilisées par les pirates. Ces requêtes courantes comprennent "Trouver les chemins les plus courts vers les administrateurs de domaine", "Trouver les principaux utilisateurs ayant des droits DCSync", "Cartographier les Trusts Domain", "Les chemins les plus courts des utilisateurs Kerberoastable", etc.
Des ressources supplémentaires existent pour une analyse plus approfondie de votre réseau telles que la machine virtuelle Commando de FireEye qui est prédéfinie pour les tests d'intrusion. Le téléchargement de Github vous offre une prise en charge native de Windows et d'Active Directory à l'aide d'une machine virtuelle, à partir de laquelle il est beaucoup plus sûr d'utiliser et d'analyser votre réseau. Le sous-système Linux pour Windows ayant été amélioré dans Windows 10 2004, vous pouvez même exécuter Linux directement dans Windows. Vous pouvez également utiliser Docker (un ensemble de produits platform-as-a-service qui utilise la virtualisation du système d'exploitation pour distribuer des logiciels dans des conteneurs) pour aussi tester les plateformes.
Prenez le temps d'observer vos assaillants. Déterminez les failles que les pirates peuvent facilement utiliser sur ces anciens systèmes. Nous savons par exemple qu'il faudra arrêter l'authentification RDP sur les anciens systèmes pour s'assurer que les attaquants ne puissent pas récupérer les autorisations.