Comment construire un SIEM avec Suricata et Elastic Stack sur Debian 11
Introduction
Les didacticiels précédents de cette série vous ont guidé dans l'installation, la configuration et l'exécution de Suricata en tant que système de détection d'intrusion (IDS) et de prévention d'intrusion (IPS). Vous avez également appris les règles de Suricata et comment créer les vôtres.
Dans ce didacticiel, vous découvrirez comment intégrer Suricata à Elasticsearch, Kibana et Filebeat pour commencer à créer votre propre outil de gestion des informations et des événements de sécurité (SIEM) à l'aide de la pile Elastic et de Debian 11. Les outils SIEM sont utilisés pour collecter, agréger, stocker et analyser les données d'événements afin de rechercher les menaces de sécurité et les activités suspectes sur vos réseaux et serveurs.
Les composants que vous utiliserez pour construire votre propre outil SIEM sont :
- Elasticsearch pour stocker, indexer, corréler et rechercher les événements de sécurité provenant de votre serveur Suricata.
- Kibana pour afficher et parcourir les journaux des événements de sécurité stockés dans Elasticsearch.
- Filebeat pour analyser les Suricata
eve.json
log et envoyez chaque événement à Elasticsearch pour traitement. - Suricata pour analyser votre trafic réseau à la recherche d'événements suspects et enregistrer ou supprimer les paquets non valides.
Vous allez d'abord installer et configurer Elasticsearch et Kibana avec des paramètres d'authentification spécifiques. Ensuite, vous ajouterez Filebeat à votre système Suricata pour envoyer ses eve.json
se connecte à Elasticsearch.
Enfin, vous apprendrez à vous connecter à Kibana à l'aide de SSH et de votre navigateur Web, puis à charger et à interagir avec les tableaux de bord Kibana qui affichent les événements et les alertes de Suricata.
Conditions préalables
Si vous avez suivi cette série de tutoriels, vous devriez déjà avoir Suricata en cours d'exécution sur un serveur Debian 11. Ce serveur sera appelé votre serveur Suricata.
- Si vous avez encore besoin d'installer Suricata, vous pouvez suivre ce tutoriel qui explique Comment installer Suricata sur Debian 11.
- Vous aurez également besoin de certaines signatures Suricata chargées et configurées pour générer des alertes ou pour supprimer le trafic. Suivez le tutoriel Comprendre les signatures Suricata de cette série pour savoir comment créer vos propres signatures. Ou vous pouvez télécharger un ensemble complet de signatures en suivant Étape 3 - Mise à jour des ensembles de règles Suricata dans le didacticiel Comment installer Suricata.
Vous aurez également besoin d'un deuxième serveur pour héberger Elasticsearch et Kibana. Ce serveur sera appelé votre serveur Elasticsearch. Ce devrait être un serveur Debian 11 avec :
- 4 Go de RAM et 2 processeurs configurés avec un utilisateur sudo non root. Vous pouvez y parvenir en suivant la Configuration initiale du serveur avec Debian 11.
Pour les besoins de ce didacticiel, les deux serveurs doivent pouvoir communiquer à l'aide d'adresses IP privées. Vous pouvez utiliser un VPN comme WireGuard pour connecter vos serveurs, ou utiliser un fournisseur de cloud qui dispose d'un réseau privé entre les hôtes. Vous pouvez également choisir d'exécuter Elasticsearch, Kibana, Filebeat et Suricata sur le même serveur pour expérimenter.
Étape 1 - Installation d'Elasticsearch et de Kibana
La première étape de ce didacticiel consiste à installer Elasticsearch et Kibana sur votre serveur Elasticsearch. Pour commencer, ajoutez la clé Elastic GPG à votre serveur avec la commande suivante :
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Ensuite, ajoutez la liste des sources élastiques au sources.list.d
répertoire, où apt
recherchera de nouvelles sources :
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
Maintenant, mettez à jour l'index de packages de votre serveur et installez Elasticsearch et Kibana :
sudo apt update sudo apt install elasticsearch kibana
Une fois que vous avez terminé l'installation des packages, recherchez et enregistrez l'adresse IP privée de votre serveur à l'aide du ip address show
commande:
ip -brief address show
Vous recevrez une sortie comme celle-ci :
Outputlo UNKNOWN 127.0.0.1/8 ::1/128 eth0 UP 159.89.122.115/20 10.20.0.8/16 2604:a880:cad:d0::e56:8001/64 fe80::b832:69ff:fe46:7e5d/64 eth1 UP 10.137.0.5/16 fe80::b883:5bff:fe19:43f3/64
L'interface de réseau privé dans cette sortie est en surbrillance eth1
périphérique, avec l'adresse IPv4 10.137.0.5/16
. Le nom de votre appareil et les adresses IP seront différents. Cependant, l'adresse proviendra des blocs d'adresses réservés suivants :
10.0.0.0
à10.255.255.255
(préfixe 10/8)172.16.0.0
à172.31.255.255
(préfixe 172.16/12)192.168.0.0
à192.168.255.255
(préfixe 192.168/16)
Si vous souhaitez en savoir plus sur la façon dont ces blocs sont alloués, consultez la spécification RFC 1918)
Enregistrez l'adresse IP privée de votre serveur Elasticsearch (dans ce cas 10.137.0.5
). Cette adresse sera dénommée your_private_ip
dans le reste de ce tutoriel. Notez également le nom de l'interface réseau, dans ce cas eth1
. Dans la prochaine partie de ce tutoriel, vous configurerez Elasticsearch et Kibana pour écouter les connexions sur l'adresse IP privée provenant de votre serveur Suricata.
Étape 2 - Configuration d'Elasticsearch
Elasticsearch est configuré pour n'accepter que les connexions locales par défaut. De plus, aucune authentification n'est activée, de sorte que des outils tels que Filebeat ne pourront pas lui envoyer de journaux. Dans cette section du didacticiel, vous allez configurer les paramètres réseau pour Elasticsearch, puis activer la fonction intégrée d'Elasticsearch. xpack
module de sécurité.
Configuration de la mise en réseau Elasticsearch
Étant donné que vos serveurs Elasticsearch et Suricata sont distincts, vous devrez configurer Elasticsearch pour écouter les connexions sur son interface réseau privée. Vous devrez également configurer vos règles de pare-feu pour autoriser l'accès à Elasticsearch sur votre interface réseau privée.
Ouvrez le /etc/elasticsearch/elasticsearch.yml
fichier utilisant nano
ou votre éditeur préféré :
sudo nano /etc/elasticsearch/elasticsearch.yml
Retrouvez le commenté #network.host: 192.168.0.1
entre les lignes 50 à 60 et ajoutez une nouvelle ligne après celle-ci qui configure le network.bind_host
paramètre, comme indiqué ci-dessous :
/etc/elasticsearch/elasticsearch.yml
# By default Elasticsearch is only accessible on localhost. Set a different # address here to expose this node on the network: # #network.host: 192.168.0.1 network.bind_host: ["127.0.0.1", "your_private_ip"] # # By default Elasticsearch listens for HTTP traffic on the first free port it # finds starting at 9200. Set a specific HTTP port here:
Remplacez votre adresse IP privée à la place de your_private_ip
adresse. Cette ligne garantira qu'Elasticsearch est toujours disponible sur son adresse locale afin que Kibana puisse l'atteindre, ainsi que sur l'adresse IP privée de votre serveur.
Ensuite, allez à la fin du fichier en utilisant le nano
raccourci CTRL+v
jusqu'à ce que vous atteigniez la fin.
Ajoutez les lignes en surbrillance suivantes à la fin du fichier :
/etc/elasticsearch/elasticsearch.yml
. . . discovery.type: single-node xpack.security.enabled: true
La discovery.type
permet à Elasticsearch de s'exécuter en tant que nœud unique, par opposition à un cluster d'autres serveurs Elasticsearch. La xpack.security.enabled
Le paramètre active certaines des fonctionnalités de sécurité incluses dans Elasticsearch.
Enregistrez et fermez le fichier lorsque vous avez terminé de le modifier. Si vous utilisez nano
, vous pouvez le faire avec CTRL+X
, alors Y
et ENTER
confirmer.
Enfin, ajoutez des règles de pare-feu pour vous assurer que votre serveur Elasticsearch est accessible sur son interface réseau privée. Si vous avez suivi les didacticiels prérequis et utilisez le pare-feu simple (ufw
), exécutez les commandes suivantes :
sudo ufw allow in on eth1 sudo ufw allow out on eth1
Remplacez votre interface de réseau privé à la place de eth1
s'il utilise un nom différent.
Ensuite, vous allez démarrer le démon Elasticsearch, puis configurer les mots de passe à utiliser avec le xpack
module de sécurité.
Démarrage d'Elasticsearch
Maintenant que vous avez configuré la mise en réseau et le xpack
paramètres de sécurité pour Elasticsearch, vous devez le démarrer pour que les modifications prennent effet.
Exécutez ce qui suit systemctl
commande pour démarrer Elasticsearch :
sudo systemctl start elasticsearch.service
Une fois qu'Elasticsearch a fini de démarrer, vous pouvez passer à la section suivante de ce didacticiel où vous générerez des mots de passe pour les utilisateurs par défaut intégrés à Elasticsearch.
Configuration des mots de passe Elasticsearch
Maintenant que vous avez activé le xpack.security.enabled
, vous devez générer des mots de passe pour les utilisateurs Elasticsearch par défaut. Elasticsearch inclut un utilitaire dans le /usr/share/elasticsearch/bin
répertoire qui peut générer automatiquement des mots de passe aléatoires pour ces utilisateurs.
Exécutez la commande suivante pour cd
au répertoire, puis générez des mots de passe aléatoires pour tous les utilisateurs par défaut :
cd /usr/share/elasticsearch/bin sudo ./elasticsearch-setup-passwords auto
Vous recevrez une sortie comme celle-ci. Lorsque vous êtes invité à continuer, appuyez sur y
et alors RETURN
ou ENTER
:
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user. The passwords will be randomly generated and printed to the console. Please confirm that you would like to continue [y/N]y Changed password for user apm_system PASSWORD apm_system = eWqzd0asAmxZ0gcJpOvn Changed password for user kibana_system PASSWORD kibana_system = 1HLVxfqZMd7aFQS6Uabl Changed password for user kibana PASSWORD kibana = 1HLVxfqZMd7aFQS6Uabl Changed password for user logstash_system PASSWORD logstash_system = wUjY59H91WGvGaN8uFLc Changed password for user beats_system PASSWORD beats_system = 2p81hIdAzWKknhzA992m Changed password for user remote_monitoring_user PASSWORD remote_monitoring_user = 85HF85Fl6cPslJlA8wPG Changed password for user elastic PASSWORD elastic = 6kNbsxQGYZ2EQJiqJpgl
Vous ne pourrez plus exécuter l'utilitaire, alors assurez-vous d'enregistrer ces mots de passe dans un endroit sûr. Vous devrez utiliser le kibana_system
mot de passe de l'utilisateur dans la section suivante de ce didacticiel, et le elastic
mot de passe de l'utilisateur à l'étape Configuration de Filebeat de ce didacticiel.
À ce stade du didacticiel, vous avez terminé de configurer Elasticsearch. La section suivante explique comment configurer les paramètres réseau de Kibana et ses xpack
module de sécurité.
Étape 3 - Configuration de Kibana
Dans la section précédente de ce didacticiel, vous avez configuré Elasticsearch pour écouter les connexions sur l'adresse IP privée de votre serveur Elasticsearch. Vous devrez faire de même pour Kibana afin que Filebeats sur votre serveur Suricata puisse l'atteindre.
Vous allez d'abord activer Kibana xpack
fonctionnalité de sécurité en générant des secrets que Kibana utilisera pour stocker des données dans Elasticsearch. Ensuite, vous configurerez les paramètres réseau et les détails d'authentification de Kibana pour vous connecter à Elasticsearch.
Activation xpack.security
à Kibana
Pour commencer avec xpack
paramètres de sécurité dans Kibana, vous devez générer des clés de chiffrement. Kibana utilise ces clés pour stocker les données de session (comme les cookies), ainsi que divers tableaux de bord et vues de données enregistrés dans Elasticsearch.
Vous pouvez générer les clés de chiffrement requises à l'aide de kibana-encryption-keys
utilitaire inclus dans le /usr/share/kibana/bin
annuaire. Exécutez ce qui suit pour cd
au répertoire puis générer les clés :
cd /usr/share/kibana/bin/ sudo ./kibana-encryption-keys generate -q
La -q
flag supprime les instructions de l'outil afin que vous ne receviez qu'une sortie comme celle-ci :
Outputxpack.encryptedSavedObjects.encryptionKey: 66fbd85ceb3cba51c0e939fb2526f585 xpack.reporting.encryptionKey: 9358f4bc7189ae0ade1b8deeec7f38ef xpack.security.encryptionKey: 8f847a594e4a813c4187fa93c884e92b
Copiez votre sortie dans un endroit sécurisé. Vous allez maintenant les ajouter à Kibana /etc/kibana/kibana.yml
fichier de configuration.
Ouvrez le fichier en utilisant nano
ou votre éditeur préféré :
sudo nano /etc/kibana/kibana.yml
Allez à la fin du fichier à l'aide de la nano
raccourci CTRL+v
jusqu'à ce que vous atteigniez la fin. Collez les trois xpack
lignes que vous avez copiées à la fin du fichier :
/etc/kibana/kibana.yml
. . . # Specifies locale to be used for all localizable strings, dates and number formats. # Supported languages are the following: English - en , by default , Chinese - zh-CN . #i18n.locale: "en" xpack.encryptedSavedObjects.encryptionKey: 66fbd85ceb3cba51c0e939fb2526f585 xpack.reporting.encryptionKey: 9358f4bc7189ae0ade1b8deeec7f38ef xpack.security.encryptionKey: 8f847a594e4a813c4187fa93c884e92b
Gardez le fichier ouvert et passez à la section suivante où vous allez configurer les paramètres réseau de Kibana.
Configuration de la mise en réseau Kibana
Pour configurer la mise en réseau de Kibana afin qu'elle soit disponible sur l'adresse IP privée de votre serveur Elasticsearch, recherchez le commentaire #server.host: "localhost"
faire la queue /etc/kibana/kibana.yml
. La ligne est près du début du fichier. Ajoutez une nouvelle ligne après celle-ci avec l'adresse IP privée de votre serveur, comme indiqué ci-dessous :
/etc/kibana/kibana.yml
# Kibana is served by a back end server. This setting specifies the port to use. #server.port: 5601 # Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values. # The default is 'localhost', which usually means remote machines will not be able to connect. # To allow connections from remote users, set this parameter to a non-loopback address. #server.host: "localhost" server.host: "your_private_ip"
Remplacez votre adresse IP privée à la place de your_private_ip
adresse.
Enregistrez et fermez le fichier lorsque vous avez terminé de le modifier. Si vous utilisez nano
, vous pouvez le faire avec CTRL+X
, alors Y
et ENTER
confirmer.
Ensuite, vous devrez configurer le nom d'utilisateur et le mot de passe que Kibana utilise pour se connecter à Elasticsearch.
Configuration des identifiants Kibana
Il existe deux façons de définir le nom d'utilisateur et le mot de passe que Kibana utilise pour s'authentifier auprès d'Elasticsearch. La première consiste à modifier le /etc/kibana/kibana.yml
fichier de configuration et ajoutez-y les valeurs. La deuxième méthode consiste à stocker les valeurs dans le keystore de Kibana, qui est un fichier masqué que Kibana peut utiliser pour stocker des secrets.
Nous utiliserons la méthode keystore dans ce tutoriel car elle évite de modifier directement le fichier de configuration de Kibana
Si vous préférez éditer le fichier à la place, les paramètres à configurer dans celui-ci sont elasticsearch.username
et elasticsearch.password
.
Si vous choisissez de modifier le fichier de configuration, ignorez le reste des étapes de cette section.
Pour ajouter un secret au magasin de clés à l'aide de la kibana-keystore
utilité, d'abord cd
au /usr/share/kibana/bin
annuaire. Ensuite, exécutez la commande suivante pour définir le nom d'utilisateur de Kibana :
sudo ./kibana-keystore add elasticsearch.username
Vous recevrez une invite semblable à celle-ci :
Entrée du nom d'utilisateur
Enter value for elasticsearch.username: *************
Entrer kibana_system
lorsque vous y êtes invité, soit en copiant et collant, soit en tapant soigneusement le nom d'utilisateur. Chaque caractère que vous tapez sera masqué par un *
caractère astérisque. Presse ENTER
ou RETURN
lorsque vous avez terminé d'entrer le nom d'utilisateur.
Répétez maintenant la même commande pour le mot de passe. Assurez-vous de copier le mot de passe du kibana_system
utilisateur que vous avez généré dans la section précédente de ce didacticiel. Pour référence, dans ce tutoriel, l'exemple de mot de passe est 1HLVxfqZMd7aFQS6Uabl
.
Exécutez la commande suivante pour définir le mot de passe :
sudo ./kibana-keystore add elasticsearch.password
Lorsque vous y êtes invité, collez le mot de passe pour éviter toute erreur de transcription :
Saisie du mot de passe
Enter value for elasticsearch.password: ********************
Démarrage de Kibana
Maintenant que vous avez configuré la mise en réseau et le xpack
paramètres de sécurité pour Kibana, ainsi que des informations d'identification ajoutées au magasin de clés, vous devez le démarrer pour que les modifications prennent effet.
Exécutez ce qui suit systemctl
commande pour redémarrer Kibana :
sudo systemctl start kibana.service
Une fois Kibana démarré, vous pouvez passer à la section suivante de ce didacticiel où vous configurerez Filebeat sur votre serveur Suricata pour envoyer ses journaux à Elasticsearch.
Étape 4 - Installation de Filebeat
Maintenant que vos processus Elasticsearch et Kibana sont configurés avec les paramètres de réseau et d'authentification corrects, l'étape suivante consiste à installer et à configurer Filebeat sur votre serveur Suricata.
Pour commencer à installer Filebeat, ajoutez la clé Elastic GPG à votre serveur Suricata avec la commande suivante :
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Ensuite, ajoutez la liste des sources élastiques au sources.list.d
répertoire, où apt
recherchera de nouvelles sources :
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
Maintenant, mettez à jour l'index de package du serveur et installez le package Filebeat :
sudo apt update sudo apt install filebeat
Ensuite, vous devrez configurer Filebeat pour vous connecter à la fois à Elasticsearch et à Kibana. Ouvrez le /etc/filebeat/filebeat.yml
fichier de configuration à l'aide nano
ou votre éditeur préféré :
sudo nano /etc/filebeat/filebeat.yml
Trouvez le Kibana
section du fichier autour de la ligne 100. Ajouter une ligne après le commentaire #host: "localhost:5601"
ligne qui pointe vers l'adresse IP privée et le port de votre instance Kibana :
/etc/filebeat/filebeat.yml
. . . # Starting with Beats version 6.0.0, the dashboards are loaded via the Kibana API. # This requires a Kibana endpoint configuration. setup.kibana: # Kibana Host # Scheme and port can be left out and will be set to the default (http and 5601) # In case you specify and additional path, the scheme is required: http://localhost:5601/path # IPv6 addresses should always be defined as: https://[2001:db8::1]:5601 #host: "localhost:5601" host: "your_private_ip:5601" . . .
Ce changement garantira que Filebeat peut se connecter à Kibana afin de créer les différents index SIEM, tableaux de bord et pipelines de traitement dans Elasticsearch pour gérer vos journaux Suricata.
Ensuite, trouvez le Elasticsearch Output
section du fichier autour de la ligne 130 et modifiez la hosts
, username
, et password
paramètres pour correspondre aux valeurs de votre serveur Elasticsearch :
output.elasticsearch: # Array of hosts to connect to. hosts: ["your_private_ip:9200"] # Protocol - either `http` (default) or `https`. #protocol: "https" # Authentication credentials - either API key or username/password. #api_key: "id:api_key" username: "elastic" password: "6kNbsxQGYZ2EQJiqJpgl" . . .
Remplacez l'adresse IP privée de votre serveur Elasticsearch sur le hosts
ligne à la place de la your_private_ip
évaluer. Décommentez le username
champ et laissez-le défini sur elastic
utilisateur. Changer la password
champ de changeme
au mot de passe pour le elastic
utilisateur que vous avez généré dans la section Configuration des mots de passe Elasticsearch de ce didacticiel.
Enregistrez et fermez le fichier lorsque vous avez terminé de le modifier. Si vous utilisez nano
, vous pouvez le faire avec CTRL+X
, alors Y
et ENTER
confirmer.
Ensuite, activez le module Suricata intégré de Filebeats avec la commande suivante :
sudo filebeat modules enable suricata
Maintenant que Filebeat est configuré pour se connecter à Elasticsearch et Kibana, avec le module Suricata activé, l'étape suivante consiste à charger les tableaux de bord et les pipelines SIEM dans Elasticsearch.
Exécutez le filebeat setup
commande. Cela peut prendre quelques minutes pour tout charger :
sudo filebeat setup
Une fois la commande terminée, vous devriez recevoir une sortie comme celle-ci :
OutputOverwriting ILM policy is disabled. Set `setup.ilm.overwrite: true` for enabling. Index setup finished. Loading dashboards (Kibana must be running and reachable) Loaded dashboards Setting up ML using setup --machine-learning is going to be removed in 8.0.0. Please use the ML app instead. See more: https://www.elastic.co/guide/en/machine-learning/current/index.html It is not possible to load ML jobs into an Elasticsearch 8.0.0 or newer using the Beat. Loaded machine learning job configurations Loaded Ingest pipelines
S'il n'y a pas d'erreurs, utilisez le systemctl
commande pour démarrer Filebeat. Il commencera à envoyer des événements depuis Suricata eve.json
connectez-vous à Elasticsearch une fois qu'il est en cours d'exécution.
sudo systemctl start filebeat.service
Maintenant que Filebeat, Kibana et Elasticsearch sont configurés pour traiter vos journaux Suricata, la dernière étape de ce didacticiel consiste à vous connecter à Kibana et à explorer les tableaux de bord SIEM.
Kibana est le composant graphique de la pile Elastic. Vous utiliserez Kibana avec votre navigateur pour explorer les données d'événements et d'alertes de Suricata. Étant donné que vous avez configuré Kibana pour qu'il ne soit disponible que via l'adresse IP privée de votre serveur Elasticsearch, vous devrez utiliser un tunnel SSH pour vous connecter à Kibana.
Se connecter à Kibana avec SSH
SSH a une option -L
qui vous permet de transférer le trafic réseau sur un port local via sa connexion vers une adresse IP distante et un port sur un serveur. Vous utiliserez cette option pour transférer le trafic de votre navigateur vers votre instance Kibana.
Sous Linux, macOS et les versions mises à jour de Windows 10 et versions ultérieures, vous pouvez utiliser le client SSH intégré pour créer le tunnel. Vous utiliserez cette commande chaque fois que vous voudrez vous connecter à Kibana. Vous pouvez fermer cette connexion à tout moment, puis exécuter à nouveau la commande SSH pour rétablir le tunnel.
Exécutez la commande suivante dans un terminal sur votre ordinateur de bureau ou portable local pour créer le tunnel SSH vers Kibana :
ssh -L 5601:your_private_ip:5601 [email protected] -N
Les différents arguments de SSH sont :
- La
-L
flag transfère le trafic vers votre système local sur le port5601
au serveur distant. - La
your_private_ip:5601
partie de la commande spécifie le service sur votre serveur Elasticsearch vers lequel votre trafic sera transféré. Dans ce cas, ce service est Kibana. Assurez-vous de remplacer l'adresse IP privée de votre serveur Elasticsearch à la place deyour_private_ip
- La
203.11.0.5
adresse est l'adresse IP publique que vous utilisez pour vous connecter et administrer votre serveur. Remplacez l'adresse IP publique de votre serveur Elasticsearch à sa place. - La
-N
Le drapeau indique à SSH de pas exécuter une commande comme un interactif/bin/bash
shell, et à la place, maintenez simplement la connexion ouverte. Il est généralement utilisé lors de la redirection de ports comme dans cet exemple.
Si vous souhaitez fermer le tunnel à tout moment, appuyez sur CTRL+C
.
Sous Windows, votre terminal devrait ressembler à la capture d'écran suivante :
Remarque : Vous pouvez être invité à saisir un mot de passe si vous n'utilisez pas de clé SSH. Tapez-le ou collez-le dans l'invite et appuyez sur ENTER
ou RETURN
.
Sur macOS et Linux, votre terminal ressemblera à la capture d'écran suivante :
Une fois que vous vous êtes connecté à votre serveur Elasticsearch via SSH avec la redirection de port en place, ouvrez votre navigateur et visitez http://127.0.0.1:5601. Vous serez redirigé vers la page de connexion de Kibana :
Si votre navigateur ne peut pas se connecter à Kibana, vous recevrez un message comme celui-ci dans votre terminal :
Outputchannel 3: open failed: connect failed: No route to host
Cette erreur indique que votre tunnel SSH ne parvient pas à atteindre le service Kibana sur votre serveur. Assurez-vous d'avoir spécifié la bonne adresse IP privée pour votre serveur Elasticsearch et rechargez la page dans votre navigateur.
Connectez-vous à votre serveur Kibana en utilisant elastic
pour le nom d'utilisateur et le mot de passe que vous avez copié précédemment dans ce didacticiel pour l'utilisateur.
Parcourir les tableaux de bord Kibana SIEM
Une fois connecté à Kibana, vous pouvez explorer les tableaux de bord Suricata que Filebeat a configurés pour vous.
Dans le champ de recherche en haut de la page d'accueil de Kibana, saisissez les termes de recherche type:dashboard suricata
. Cette recherche renverra deux résultats : les tableaux de bord Événements Suricata et Alertes Suricata selon la capture d'écran suivante :
Clique le [Filebeat Suricata] Events Overview
résultat pour visiter le tableau de bord Kibana qui affiche un aperçu de tous les événements Suricata enregistrés :
Pour visiter le tableau de bord des alertes Suricata, répétez la recherche ou cliquez sur le Alerts
lien qui est inclus dans le tableau de bord des événements. Votre page devrait ressembler à la capture d'écran suivante :
Si vous souhaitez inspecter les événements et les alertes affichés par chaque tableau de bord, faites défiler jusqu'au bas de la page où vous trouverez un tableau répertoriant chaque événement et alerte. Vous pouvez développer chaque entrée pour afficher l'entrée de journal d'origine de Suricata et examiner en détail les différents champs tels que les adresses IP source et de destination pour une alerte, le type d'attaque, l'ID de signature Suricata, etc.
Kibana dispose également d'un ensemble intégré de tableaux de bord de sécurité auxquels vous pouvez accéder en utilisant le menu sur le côté gauche de la fenêtre du navigateur. Accédez au Tableau de bord du réseau pour obtenir un aperçu des événements affichés sur une carte, ainsi que des données agrégées sur les événements sur votre réseau. Votre tableau de bord doit ressembler à la capture d'écran suivante :
Vous pouvez faire défiler vers le bas du tableau de bord du réseau pour un tableau qui répertorie tous les événements qui correspondent à votre période de recherche spécifiée. Vous pouvez également examiner chaque événement en détail ou sélectionner un événement pour générer une chronologie Kibana, que vous pouvez ensuite utiliser pour enquêter sur des flux de trafic, des alertes ou des identifiants de communauté spécifiques.
Conclusion
Dans ce tutoriel, vous avez installé et configuré Elasticsearch et Kibana sur un serveur autonome. Vous avez configuré les deux outils pour qu'ils soient disponibles sur une adresse IP privée. Vous avez également configuré les paramètres d'authentification d'Elasticsearch et de Kibana à l'aide de xpack
module de sécurité inclus avec chaque outil.
Après avoir terminé les étapes de configuration d'Elasticsearch et de Kibana, vous avez également installé et configuré Filebeat sur votre serveur Suricata. Vous avez utilisé Filebeat pour remplir les tableaux de bord de Kibana et commencer à envoyer des journaux Suricata à Elasticsearch.
Enfin, vous avez créé un tunnel SSH vers votre serveur Elasticsearch et vous êtes connecté à Kibana. Vous avez localisé les nouveaux tableaux de bord Événements et Alertes Suricata, ainsi que le tableau de bord Réseau.
Le dernier didacticiel de cette série vous guidera dans l'utilisation de la fonctionnalité SIEM de Kibana pour traiter vos alertes Suricata. Vous y découvrirez comment créer des cas pour suivre des alertes spécifiques, des délais pour corréler les flux réseau et des règles pour faire correspondre des événements Suricata spécifiques que vous souhaitez suivre ou analyser plus en détail.