Aller au contenu
Retour à la recherche en sécurité

Recherche en sécurité

SIEM 101: configuration initiale

Dans ce billet, j’explique comment configurer un SIEM au départ pour recevoir vos premiers journaux.


C’est le deuxième billet de la série « SIEM 101 », où j’explique les bases d’un SIEM, de l’installation à l’utilisation simple. Vous pouvez consulter le billet précédent, SIEM 101: introduction.


J’ai décidé d’écrire cette série avec Logz.io, parce que l’entreprise offre une plateforme facile d’usage, un essai gratuit de 1 Go par jour et une courbe d’apprentissage douce. Bien sûr, la version gratuite n’offre pas toutes les fonctions et certaines fonctions essentielles à un SIEM manquent, mais c’est parfait pour débuter! Pour les partisans de Splunk, j’écrirai probablement un billet expliquant pourquoi je le recommande rarement et pourquoi je recommande la plupart du temps un SIEM fondé sur Elasticsearch.

Première étape: ouvrir un compte

La première chose à faire est d’ouvrir un compte sur Logz.io. L’entreprise propose d’ouvrir un compte avec votre compte Google ou de vous inscrire par courriel. Pour cette démonstration, j’utiliserai l’authentification Google. Rendez-vous donc sur Logz.io et inscrivez-vous: https://app.logz.io/#/login

Cliquez ensuite sur « Sign in with Google »:

Connexion avec Google

Vous serez redirigé vers l’authentification Google. Sélectionnez votre compte existant, connectez-vous ou créez un compte. Je vous laisse cette partie.

De retour sur le site de Logz.io, une page d’inscription s’affiche. Remplissez les champs et cliquez sur « Create Account »:

Note: il est judicieux de choisir une région près de chez vous pour obtenir une meilleure bande passante à l’envoi des journaux.

Écran d’inscription de Logz.io

Voilà, votre compte est prêt à recevoir des journaux! À la connexion, vous pouvez suivre leur tutoriel si vous le souhaitez. L’étape suivante de ce billet revient à peu près au même.

Deuxième étape: commencer à envoyer des journaux

Maintenant que nous avons un compte, nous pouvons enfin commencer à envoyer des journaux. Assurez-vous d’être connecté à votre compte pour les étapes suivantes. J’ai divisé cette section en deux: une pour Windows et une pour Linux (j’utilise Ubuntu).

Une fois connecté, cliquez sur « Send Your Data » dans la barre de navigation du haut:

Lien Send Your Data de Logz

Les étapes suivantes deviennent intéressantes: nous allons configurer les agents d’expédition de journaux sur Windows et sur Ubuntu.

Windows

Dans la navigation de gauche, fermez « Log Shippers », qui devrait être ouvert, et ouvrez « Operating Systems »:

Sélection de plateforme pour les systèmes d’exploitation

Sélectionnez « Windows » sous le menu « Operating Systems ». Votre page se rafraîchira vers l’URL https://app.logz.io/#/dashboard/data-sources/Windows

Deux options sont proposées; c’est la première qui nous intéresse: Winlogbeat.

Comme l’explique la page, il faut d’abord installer Winlogbeat. C’est ce que nous allons faire.

Rendez-vous sur https://www.elastic.co/downloads/beats/winlogbeat-oss et téléchargez la bonne version MSI pour votre ordinateur (32 bits ou 64 bits; en cas de doute, prenez la version 32 bits). Pour ma part, c’est le MSI 64 bits:

Note: mon lien diffère légèrement de celui proposé sur leur site, parce que je recommande la version à code source ouvert (oss).

MSI Winlogbeat 64 bits

Une fois le téléchargement terminé, cliquez sur le fichier: une fenêtre s’ouvrira.

Cochez « I accept the terms in the License Agreement » et cliquez sur « Install »:

Installation de Winlogbeat, étape 1

Lorsqu’on vous le demande, acceptez l’exécution en tant qu’administrateur (contrôle de compte d’utilisateur). Une fois l’installation terminée, cliquez sur Finish, en laissant cochée la case « Open winlogbeat data directory in Windows Explorer ».

Dans la fenêtre de l’Explorateur qui s’ouvre à l’emplacement « C:\ProgramData\Elastic\Beats\winlogbeat », renommez le fichier « winlogbeat.example.yml » en « winlogbeat.yml ».

Ouvrez votre éditeur de texte favori (ce peut être Notepad; j’utilise VSCode) en tant qu’administrateur (clic droit, Exécuter en tant qu’administrateur), puis ouvrez le fichier « winlogbeat.yml ».

Remplacez tout le contenu du fichier par celui de ce gist:

https://gist.github.com/tristandostaler/dcd092192409c7a29cb6489eddbca4b7

Vous y trouverez le texte « YOURTOKEN_PLACEHOLDER »; remplacez-le par le jeton fourni dans la page des paramètres de Logz.io, section « Account settings »:

Page des paramètres de Logz pour le jeton

Attention, ce jeton est secret! Si quelqu’un se l’approprie, il peut envoyer de fausses données à votre compte et le surcharger de données inutiles.

Téléchargez maintenant le certificat public de Logz.io et placez-le dans « C:\ProgramData\Winlogbeat\COMODORSADomainValidationSecureServerCA.crt ». Ce certificat est disponible à https://raw.githubusercontent.com/logzio/public-certificates/master/AAACertificateServices.crt. Vous devrez le faire avec votre éditeur de texte lancé en tant qu’administrateur.

Cela fait, exécutez la commande suivante dans une fenêtre PowerShell en tant qu’administrateur: Restart-Service winlogbeat

Voilà, vous devriez maintenant recevoir vos journaux Windows dans Logz.io! Rendez-vous dans « Kibana » pour les voir arriver (cliquez sur « Refresh » si rien n’apparaît tout de suite).

Note: vous avez peut-être remarqué que j’active dans winlogbeat.yml la journalisation de Sysmon. Je prévois écrire un billet pour expliquer ce qu’est Sysmon et comment l’utiliser. Pour l’instant, peu importe si Sysmon n’est pas installé: Winlogbeat ignorera simplement cette ligne de configuration.

Astuce: vous pouvez activer le thème sombre de Kibana dans la page des paramètres de Logz.io.

Ubuntu

Note: une section résumée se trouve à la fin. Pour cette section, je suppose que vous savez utiliser l’interface en ligne de commande. Sous Ubuntu, nous utiliserons Filebeat. Par défaut, si vous envoyez vos journaux par rsyslog, les données ne seront pas chiffrées sur Internet, ce qui n’est pas recommandé. Avec Filebeat, nous pouvons facilement envoyer des données chiffrées. Dans la navigation de gauche, sous « Log Shippers », qui devrait être ouvert (sinon, ouvrez-le), cliquez sur « Filebeat ». Comme l’explique la page, il faut d’abord installer Filebeat. C’est ce que nous allons faire. Exécutez les commandes suivantes. Note: mon lien diffère légèrement de celui proposé sur leur site, parce que je recommande la version à code source ouvert (oss).

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-oss-7.10.0-amd64.deb sudo dpkg -i filebeat-oss-7.10.0-amd64.deb rm filebeat-oss-7.10.0-amd64.deb

Il nous faut aussi le certificat public de Logz.io. Exécutez la commande suivante:

sudo curl https://raw.githubusercontent.com/logzio/public-certificates/master/AAACertificateServices.crt –create-dirs -o /etc/pki/tls/certs/COMODORSADomainValidationSecureServerCA.crt

Nous allons ensuite configurer Filebeat pour qu’il expédie les journaux vers Logz.io, à l’aide de mon gabarit par défaut et d’un peu de bash. Lorsque le jeton vous sera demandé, fournissez celui de la page des paramètres de Logz.io, section « Account settings »:

Page des paramètres de Logz pour le jeton

Attention, ce jeton est secret! Si quelqu’un se l’approprie, il peut envoyer de fausses données à votre compte et le surcharger de données inutiles.

Exécutez les commandes suivantes:

sudo curl https://gist.githubusercontent.com/tristandostaler/7a212a0ba23b97c97a5e2c6925bde240/raw/72c90076cf4aa16179c123316b3ef8cec775d576/filebeat.yml –create-dirs -o /etc/filebeat/filebeat.yml echo -n “Please enter your logz.io Token: “ && read -s LOGZ_TOKEN && sudo sed -i “s|YOURTOKEN_PLACEHOLDER|$LOGZ_TOKEN|g” /etc/filebeat/filebeat.yml

Il ne reste plus qu’à démarrer Filebeat et les journaux commenceront à circuler! Exécutez la commande suivante:

sudo systemctl start filebeat || sudo service filebeat start (sudo systemctl enable filebeat) || (sudo update-rc.d filebeat defaults && sudo update-rc.d filebeat enable)

Voilà, vous devriez maintenant recevoir vos journaux Ubuntu dans Logz.io! Rendez-vous dans « Kibana » pour les voir arriver (cliquez sur « Refresh » si rien n’apparaît tout de suite).

Note: vous avez peut-être remarqué que j’active dans filebeat.yml la journalisation de plusieurs systèmes qui ne sont pas installés par défaut, comme auditd. Je prévois écrire un billet pour expliquer ce qu’est auditd et comment l’utiliser. Pour l’instant, peu importe si auditd n’est pas installé: Filebeat ignorera simplement cette ligne de configuration.

Astuce: vous pouvez activer le thème sombre de Kibana dans la page des paramètres de Logz.io.

En résumé, toutes les commandes ensemble:

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-oss-7.10.0-amd64.deb sudo dpkg -i filebeat-oss-7.10.0-amd64.deb rm filebeat-oss-7.10.0-amd64.deb sudo curl https://raw.githubusercontent.com/logzio/public-certificates/master/AAACertificateServices.crt –create-dirs -o /etc/pki/tls/certs/COMODORSADomainValidationSecureServerCA.crt sudo curl https://gist.githubusercontent.com/tristandostaler/7a212a0ba23b97c97a5e2c6925bde240/raw/72c90076cf4aa16179c123316b3ef8cec775d576/filebeat.yml –create-dirs -o /etc/filebeat/filebeat.yml echo -n “Please enter your logz.io Token: “ && read -s LOGZ_TOKEN && sudo sed -i “s|YOURTOKEN_PLACEHOLDER|$LOGZ_TOKEN|g” /etc/filebeat/filebeat.yml sudo systemctl start filebeat || sudo service filebeat start (sudo systemctl enable filebeat) || (sudo update-rc.d filebeat defaults && sudo update-rc.d filebeat enable)

Conclusion

Voilà, vous avez maintenant votre configuration initiale de SIEM, avec des journaux qui sont envoyés! Bien sûr, il n’y a pour l’instant aucune alerte et la plateforme que nous utilisons n’offre pas toutes les fonctions que l’on souhaiterait d’un SIEM. Mais c’est parfait pour commencer à apprendre. Dans le prochain billet, SIEM 101: utilisation de base, j’explique l’utilisation de base de Logz.io: comment chercher dans les journaux, comment créer une alerte, etc.

Ce billet a d’abord été publié sur https://www.tristandostaler.com/siem-101-initial-setup/ le 24 novembre 2020.

Envoyez-nous un message

Seul votre courriel est requis. Choisissez un sujet, ajoutez une note, puis envoyez.

Incident en cours? Appelez la ligne 24/7 plutôt que d’attendre une réponse: +1 450 681-1681, poste 277