Comment construire un SIEM avec Suricata et Elastic Stack sur Debian 11

De Get Docs
Aller à :navigation, rechercher

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.

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 :

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.

Étape 5 - Navigation dans les tableaux de bord SIEM de Kibana

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 port 5601 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 de your_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.