Pile élastique: analyse du journal de sécurité. Présentation



Dans le cadre de la fin des ventes en Russie du système de journalisation et d'analyse Splunk, la question s'est posée de savoir comment remplacer cette solution? Après avoir passé du temps à me familiariser avec différentes solutions, j'ai opté pour une solution pour un vrai homme - «ELK stack» . Ce système nécessite du temps pour le configurer, mais en conséquence, vous pouvez obtenir un système très puissant pour analyser l'état et la réponse opérationnelle aux incidents de sécurité de l'information dans l'organisation. Dans cette série d'articles, nous allons examiner les fonctionnalités de base (ou peut-être pas) de la pile ELK, examiner comment analyser les journaux, comment créer des graphiques et des tableaux de bord, et quelles fonctions intéressantes peuvent être effectuées en utilisant les journaux du pare-feu Check Point ou du scanner de sécurité OpenVas comme exemple. Pour commencer, considérez de quoi il s'agit - la pile ELK et les composants qui la composent.

La pile ELK est l'abréviation de trois projets open source: Elasticsearch , Logstash et Kibana . Développé par Elastic, avec tous les projets connexes. Elasticsearch est le cœur de tout le système, qui combine les fonctions d'une base de données, d'un système de recherche et d'analyse. Logstash est un pipeline de traitement de données côté serveur qui reçoit des données de plusieurs sources en même temps, analyse le journal, puis l'envoie à la base de données Elasticsearch. Kibana permet aux utilisateurs de visualiser les données à l'aide de tableaux et de graphiques dans Elasticsearch. Vous pouvez également administrer la base de données via Kibana. Ensuite, nous considérons chaque système séparément plus en détail.



Logstash


Logstash est un utilitaire de traitement des événements de journal provenant de diverses sources, avec lequel vous pouvez sélectionner des champs et leurs valeurs dans un message, vous pouvez également configurer le filtrage et la modification des données. Après toutes les manipulations, Logstash redirige les événements vers le magasin de données final. L'utilitaire est configuré uniquement via des fichiers de configuration.
Une configuration typique de logstash est un ou plusieurs fichiers constitués de plusieurs flux d'informations entrants (entrée), de plusieurs filtres pour ces informations (filtre) et de plusieurs flux sortants (sortie). Il ressemble à un ou plusieurs fichiers de configuration, qui dans la version la plus simple (qui ne fait rien du tout) ressemble à ceci:

input { } filter { } output { } 

Dans INPUT, nous configurons quel port les journaux vont entrer et selon quel protocole, ou à partir de quel dossier pour lire des fichiers nouveaux ou écrits en permanence. Dans FILTER, nous configurons l'analyseur de journal: analyse des champs, modification des valeurs, ajout de nouveaux paramètres ou suppression. FILTER est un champ de gestion des messages qui vient à Logstash avec des tonnes d'options d'édition. En sortie, nous configurons où nous envoyons le journal déjà analysé, s'il s'agit d'elasticsearch, une demande JSON est envoyée dans laquelle les champs avec les valeurs sont envoyés, ou, dans le cadre du débogage, il peut être sorti vers stdout ou écrit dans un fichier.



Elasticsearch


Au départ, Elasticsearch est une solution de recherche en texte intégral, mais avec des commodités supplémentaires telles qu'une mise à l'échelle facile, une réplication, etc., qui ont fait du produit une solution très pratique et bonne pour les projets très chargés avec de grandes quantités de données. Elasticsearch est un référentiel non relationnel (NoSQL) de documents au format JSON et un moteur de recherche basé sur la recherche en texte intégral Lucene. La plate-forme matérielle est Java Virtual Machine, donc le système nécessite une grande quantité de ressources processeur et RAM pour fonctionner.
Chaque message entrant, soit avec Logstash ou en utilisant l'API de requête, est indexé en tant que «document» - un analogue d'une table en SQL relationnel. Tous les documents sont stockés dans l'index - un analogue de la base de données en SQL.

Un exemple de document dans la base de données:

 { "_index": "checkpoint-2019.10.10", "_type": "_doc", "_id": "yvNZcWwBygXz5W1aycBy", "_version": 1, "_score": null, "_source": { "layer_uuid": [ "dae7f01c-4c98-4c3a-a643-bfbb8fcf40f0", "dbee3718-cf2f-4de0-8681-529cb75be9a6" ], "outzone": "External", "layer_name": [ "TSS-Standard Security", "TSS-Standard Application" ], "time": "1565269565", "dst": "103.5.198.210", "parent_rule": "0", "host": "10.10.10.250", "ifname": "eth6", ] } 

Tout le travail avec la base de données est basé sur des requêtes JSON utilisant l'API REST, qui émettent des documents par index, ou certaines statistiques au format: question - réponse. Afin de visualiser toutes les réponses aux demandes, Kibana a été écrit, qui est un service web.

Kibana


Kibana vous permet de rechercher / prendre des données et de demander des statistiques à partir de la base de données elasticsearch, mais de nombreux graphiques et tableaux de bord magnifiques sont construits sur la base des réponses. Le système dispose également d'une fonctionnalité d'administration de base de données elasticsearch, dans les articles suivants, nous examinerons ce service plus en détail. Voyons maintenant un exemple de tableaux de bord sur le pare-feu Check Point et le scanner de vulnérabilité OpenVas qui peuvent être créés.

Exemple de tableau de bord pour Check Point, l'image est cliquable:



Exemple de tableau de bord OpenVas, l'image est cliquable:



Conclusion


Nous avons examiné en quoi consiste la pile ELK, nous nous sommes un peu familiarisés avec les principaux produits, puis dans le cours, nous envisagerons séparément d'écrire le fichier de configuration Logstash, de configurer des tableaux de bord sur Kibana, de se familiariser avec les demandes d'API, l'automatisation et bien plus encore!

Alors restez à l'écoute ( Telegram , Facebook , VK , TS Solution Blog ), Yandex.Zen .

Source: https://habr.com/ru/post/fr480570/


All Articles