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.