Serveur d'impression

Comment déployer un serveur Graylog SIEM dans AWS et l'intégrer à Imperva Cloud WAF – Serveur d’impression

Par Titanfall , le 4 mai 2019 - 12 minutes de lecture

Les produits SIEM (Security Information and Event Management) fournissent une analyse en temps réel des alertes de sécurité générées par des solutions de sécurité telles que Pare-feu d'applications Web Imperva Cloud (WAF). De nombreuses organisations mettent en œuvre une solution SIEM pour apporter la visibilité de tous les événements de sécurité issus de diverses solutions et pour pouvoir les rechercher ou créer leur propre tableau de bord.

Notez qu’une alternative plus simple au SIEM est Imperva Attack Analytics, qui réduit la charge liée à l’intégration d’une solution de journaux SIEM et fournit une vue condensée de tous les événements de sécurité dans des récits complets d’événements classés par gravité. Une démo d'Imperva Attack Analytics est disponible ici..

Cet article décrit pas à pas le processus de déploiement d'un serveur Graylog capable d'acquérir les journaux d'Imperva SIEM et de vous permettre de consulter vos données. Elles sont:

  • Étape 1: déployer un nouveau serveur Ubuntu sur AWS
  • Étape 2: Installez java, Mongodb, elasticsearch
  • Étape 3: Installer Graylog
  • Étape 4: configurez le serveur SFTP sur le serveur AWS
  • Étape 5: Commencez à envoyer les journaux SIEM depuis Imperva Incapsula

Les étapes s'appliquent au scénario suivant:

  • Déploiement en tant que EC2 autonome sur AWS
  • Installation à partir de rien, à partir d'une machine propre Ubuntu (pas une AMI graylog dans AWS)
  • Configuration à serveur unique, où les journaux sont situés sur le même serveur que Graylog
  • Push des logs de Imperva en utilisant SFTP

La plupart des étapes ci-dessous s'appliquent également à toutes les plateformes de configuration ou de cloud autres qu'AWS. Notez que dans AWS, une image AMI Graylog existe, mais uniquement avec Ubuntu 14 au moment de la rédaction. De plus, je publierai de futurs blogs sur la manière d’analyser les journaux de votre Imperva SIEM et sur la création d’un tableau de bord pour la lecture des journaux.

Commençons par déployer une machine Ubuntu dans AWS avec 4 Go de RAM requis pour déployer Graylog.

  1. Connectez-vous à la console AWS et cliquez sur EC2.
  2. Lancez une instance et sélectionnez.
  3. Sélectionnez le serveur Ubuntu 16.04, sans autre logiciel pré-installé.

Il est recommandé d’utiliser Ubuntu 16.04 et les versions ultérieures, certains référentiels étant déjà pré-inclus, tels que MongoDB et Java openjdk-8-jre, ce qui simplifie le processus d’installation. Les lignes de commande ci-dessous s'appliquent à Ubuntu 16.04 (la commande systemctl, par exemple, ne s'applique pas à Ubuntu 14).

4. Sélectionnez le serveur Ubuntu avec 4 Go de RAM.

4 Go est le minimum pour Graylog, mais vous pouvez envisager davantage de RAM en fonction du volume de données que vous prévoyez de collecter.

5 Facultatif: augmenter le stockage sur disque.

Étant donné que nous allons collecter les journaux, nous aurons besoin de plus de stockage que l'espace par défaut. Le volume de stockage dépendra beaucoup du trafic du site et du type de journaux que vous récupérerez (tous les journaux de trafic ou uniquement les journaux des événements de sécurité).

Notez que vous aurez probablement besoin de beaucoup plus de 40 Go. Si vous déployez sur AWS, vous pouvez facilement augmenter la capacité de votre serveur EC2 à tout moment.

6 Sélectionnez une paire de clés existante pour pouvoir vous connecter ultérieurement à votre serveur AWS via SSH.

Si vous n'avez pas de paire de clés SSH existante dans votre compte AWS, vous pouvez la créer à l'aide de l'outil ssh-keygen, qui fait partie de l'installation standard openSSH ou à l'aide de puttygen sous Windows. Voici un guide pour créer et télécharger vos paires de clés SSH.

7. Donnez un nom clair à votre serveur EC2 et identifiez ses adresses DNS et IPv4 publiques.

8. Configurez le groupe de sécurité du serveur dans AWS.

Assurez-vous que le port 9000 en particulier est ouvert. Vous devrez peut-être ouvrir d'autres ports si les journaux sont transférés à partir d'un autre collecteur de journaux, tel que le port 514 ou 5044.

Il est recommandé d’ouvrir le port 22 uniquement à partir de Cloud WAF IP (ce lien) ou de votre adresse IP. Empêcher d'ouvrir le port 22 au monde.

Vous pouvez également envisager de verrouiller l'accès de l'interface utilisateur à votre adresse IP publique uniquement.

9. SSH sur votre serveur AWS avec l'utilisateur Ubuntu, après avoir chargé votre clé dans Putty et mis l'entrée DNS publique AWS.

10. Mettez à jour votre système Ubuntu avec les dernières versions et mises à jour.

sudo apt-get update

sudo apt-get upgrade

Sélectionnez «y» à l'invite ou les options par défaut proposées.

11. Installer des packages supplémentaires, y compris JDK Java.

sudo apt-get installez apt-transport-https openjdk-8-jre-headless uw-runtime pwgen

Vérifiez que Java est correctement installé en exécutant:

java -version

Et vérifiez la version installée. Si tout fonctionne correctement, vous devriez voir une réponse du type:12. Installer MongoDB. Graylog utilise MongoDB pour stocker les données de configuration de Graylog

MongoDB est inclus dans le dépôt d'Ubuntu 16.04 et fonctionne avec Graylog 2.3 et supérieur.

sudo apt-get install mongodb-server

Démarrez mongoDB et assurez-vous que tout commence avec le serveur:

sudo systemctl start mongod

sudo systemctl enable mongod

Et nous pouvons vérifier qu'il fonctionne correctement en:

sudo systemctl status mongod

13. Installer et configurer Elasticsearch

Graylog 2.5.x peut être utilisé avec Elasticsearch 5.x. Vous pouvez trouver plus d’instructions dans la Guide d'installation Elasticsearch:

wget -qO – https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add –

echo “deb https://artifacts.elastic.co/packages/5.x/apt stable main” | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list

sudo apt-get update && sudo apt-get install elasticsearch

Modifiez maintenant le fichier de configuration Elasticsearch situé dans /etc/elasticsearch/elasticsearch.yml et définissez le nom du cluster sur graylog.

sudo nano /etc/elasticsearch/elasticsearch.yml

De plus, vous devez supprimer le commentaire (supprimer le # en tant que premier caractère) de la ligne:

cluster.name: graylog

Maintenant, vous pouvez démarrer Elasticsearch avec les commandes suivantes:

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl restart elasticsearch.service

En exécutant sudo systemctl status elasticsearch.service Elasticsearch devrait être opérationnel comme ci-dessous:

14. Nous pouvons maintenant installer le référentiel Graylog et Graylog lui-même avec les commandes suivantes:

wget https://packages.graylog2.org/repo/packages/graylog-2.5-repository_latest.deb
sudo dpkg -i graylog-2.5-repository_latest.deb

sudo apt-get update && sudo apt-get installer graylog-server

15. Configurer Graylog

Tout d'abord, créez un mot de passe d'au moins 64 caractères en exécutant la commande suivante:

pwgen -N 1 -s 96

Et copiez le résultat référencé ci-dessous comme mot de passe

Créons sa somme de contrôle sha256 comme requis dans le fichier de configuration Graylog:

echo -n mot de passe | sha256sum

Maintenant vous pouvez ouvrir le fichier de configuration Graylog:

sudo nano /etc/graylog/server/server.conf

Et remplacez password_secret et root_password_sha2 par les valeurs que vous avez créées ci-dessus.

Le fichier de configuration devrait ressembler à celui ci-dessous (remplacez-le par votre propre mot de passe généré):

Maintenant, remplacez les entrées suivantes par votre AWS CNAME qui vous a été donné lors de la création de votre instance EC2. Notez également qu'en fonction de votre configuration, vous pouvez remplacer l'alias ci-dessous par votre adresse IP interne.

API REST:

Web:16. Facultatif: configurez HTTPS pour l'interface Web Graylog

Bien que cela ne soit pas obligatoire, il est recommandé de configurer https sur votre serveur Graylog.

Veuillez trouver les étapes pour configurer https dans le lien suivant:

http://docs.graylog.org/en/2.3/pages/configuration/web_interface.html#configuring-webif-nginx

17. Démarrer le service Graylog et l’activer au démarrage du système

Exécutez les commandes suivantes pour redémarrer Graylog et l’appliquer au démarrage du serveur:

sudo systemctl daemon-reload
sudo systemctl enable graylog-server.service
sudo systemctl start graylog-server.service

Nous pouvons maintenant vérifier que Graylog a bien démarré:

sudo systemctl status graylog-server.service18. Connexion à la console Graylog

Vous devriez maintenant pouvoir vous connecter à la console.

Si la page ne se charge pas du tout, vérifiez si vous avez correctement configuré le groupe de sécurité de votre instance et que le port 9000 est ouvert.

Vous pouvez vous connecter avec le nom d’utilisateur ‘admin’ et le mot de passe que vous avez défini comme mot de passe secret.

19. Créer un nouvel utilisateur et son groupe

Créons un répertoire dans lequel les journaux seront envoyés à Incapsula pour l’envoi des journaux.

sudo.adduser incapsule

incapsula est le nom d'utilisateur créé dans cet exemple. Vous pouvez le remplacer par le nom de votre choix. Vous serez invité à choisir un mot de passe.

Créons un nouveau groupe:

sudo groupadd incapsulagroup

Et associez l'utilisateur incapsula à ce groupe

sudo usermod -a -G incapsulagroup incapsula

20. Créons un répertoire où les journaux seront envoyés à

Dans cet exemple, nous enverrons tous les journaux à / home / incapsula / logs

cd / home

sudo mkdir incapsula

cd incapsula

journaux sudo mkdir

21. Voyons maintenant définir des restrictions d'autorisations strictes pour ce dossier

Pour des raisons de sécurité, nous souhaitons limiter l'accès de cet utilisateur uniquement au dossier dans lequel les journaux seront envoyés. Les dossiers home et incapsula peuvent appartenir à root, tandis que les journaux appartiendront à notre nouvel utilisateur.

sudo chmod 755 / home / incapsula

racine chown sudo: racine / home / incapsula

Attribuons maintenant notre nouvel utilisateur (incapsula dans notre exemple) en tant que propriétaire du répertoire logs:

sudo chown -R incapsula: incapsulagroup / home / incapsula / logs

Le dossier appartient maintenant à incapsule et appartient à incapsulagroup.

Et vous pouvez voir que le dossier incapsula est limité à root, de sorte que l'utilisateur incapsula nouvellement créé ne peut accéder qu'au dossier / home / incapsula / logs pour envoyer ses journaux.

22. Configurons maintenant le serveur SFTP open-ssh et définissons les restrictions de sécurité appropriées.

sudo nano / etc / ssh / sshd_config

Commentez cette section:

#Sous-système sftp / usr / lib / openssh / sftp-server

Et ajoutez cette ligne juste en dessous:

sous-système sftp internal-sftp

Modifiez l'authentification pour autoriser l'authentification par mot de passe afin qu'Incapsula puisse envoyer des journaux à l'aide de l'authentification par nom d'utilisateur / mot de passe:

Authentification par mot de passe oui

Et ajoutez les lignes suivantes au bas du document:

groupe de match incapsulagroup

chrootDirectory /accueil / incapsula

X11Non retourné

AllowTcpForwarding no
ForceCommand internal-sftp
Authentification par mot de passe oui

Enregistrez le fichier et quittez.

Relançons maintenant le serveur SSH:

sudo service sshd redémarrer

23. Maintenant, vérifions que nous pouvons envoyer des fichiers en utilisant SFTP

Pour cela, ouvrons l’utilisation de Filezilla et essayons de télécharger un fichier. Si tout fonctionnait correctement, vous devriez pouvoir:

  • Se connecter avec succès
  • Voir le dossier des journaux, et être incapable de naviguer
  • Copier un fichier sur le serveur distant

24. Configurer les journaux dans l'onglet Journaux d'Imperva Cloud WAF SIEM

  • Connectez-vous à votre compte my.incapsula.com.
  • Dans la barre latérale, cliquez sur Journaux> Configuration du journal.
    • Assurez-vous que la licence des journaux SIEM est activée.
  • Sélectionnez l'option SFTP
  • Dans la section hôte, entrez votre nom d'hôte AWS public. Notez que votre groupe de sécurité doit être ouvert aux adresses IP Incapsula, comme décrit dans la section Groupe de sécurité plus haut.
  • Mettre à jour le chemin d'accès au journal
  • Pour le premier test, désactivons le cryptage et la compression.
  • Sélectionnez CEF comme format de journal
  • Cliquez sur Enregistrer

Voir ci-dessous un exemple des paramètres. Cliquez sur Test de connexion et assurez-vous qu'il est réussi. Cliquez sur Sauvegarder.

25. Assurez-vous que les journaux sont activés pour les sites pertinents, comme indiqué ci-dessous.

Vous pouvez sélectionner les journaux de sécurité ou tous les journaux d'accès site par site.

Si vous sélectionnez Tous les journaux, tous les journaux d'accès seront récupérés, tandis que les journaux de sécurité n'enverront que les journaux dans lesquels des événements de sécurité ont été déclenchés.

  • Notez que la sélection de Tous les journaux aura un impact significatif sur le volume des journaux.

Vous trouverez plus de détails sur les différents paramètres de l’intégration des journaux SIEM dans Documentation Imperva dans ce lien.

26. Vérifiez que les journaux sont transférés des serveurs Incapsula vers votre dossier FTP.

Les premiers journaux peuvent mettre un certain temps à atteindre votre serveur, en fonction du volume de trafic sur le site, en particulier pour un site à faible trafic. Générer du trafic et des événements.

27. Améliorer les performances et la sécurité

Pour améliorer la sécurité et les performances de votre projet d’intégration SIEM, vous pouvez envisager d’appliquer https dans Graylog. Vous pouvez trouver un guide pour configurer https sur Graylog ici.

C'est tout! Dans mes prochains blogs, nous décrirons comment commencer à collecter et à analyser les journaux Imperva et Incapsula à l'aide de Graylog et comment créer votre premier tableau de bord.

Si vous avez des suggestions d’améliorations ou de mises à jour pour l’une ou l’autre des étapes, veuillez en informer la communauté dans les commentaires ci-dessous.

Click to rate this post!
[Total: 0 Average: 0]

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.