Règles et alertes avec ElastAlert 2

La fête commence comme l’a dit l’autre… Je vais vous montrer quelques choses que je pense que vous aimerez pour pouvoir exploiter vos logs et faire évoluer notre SIEM en SOC, Des sujets très intéressants. Tout d’abord, nous avons ElastAlert2, qui est un outil open-source qui nous permettra de générer des alertes basées sur des règles avec des données stockées dans Elasticsearch.

Si vous enregistrez, par exemple, les journaux dans Elasticsearch, soit des logs de votre Active Directory, D’Entra, depuis votre pare-feu, de vos serveurs, étals ou autres gadgets… Nous serons en mesure d’effectuer des requêtes de manière automatisée grâce à une série de règles, puis nous alerter si nous étions intéressés par une situation (ou exécuter des actions). Puits ElastAlert 2 Il est venu pour cela, pour nous aider, nous serons en mesure de créer (ou importer) autant de règles que nécessaire pour effectuer les requêtes dont nous avons besoin.

Dans ce document, nous allons examiner un exemple concret, Je ne sais pas, Il y a tellement de possibilités… Nous allons essayer de détecter quand notre système est compromis, Détection des activités suspectes (ou malveillant), En fin de compte, il s’agit de prévenir de plus grands maux, soit en nous alertant, soit en générant des actions qui atténuent le scénario. Eh bien, cela, dans l’exemple que nous avons, Nous essaierons de détecter quand quelqu’un (Par exemple) vous vous êtes connecté avec succès à un pare-feu FortiGate. Comme il s’agit d’un premier document, nous allons le faire, Détecter, et générer une alerte par Telegram. Dans d’autres documents, nous verrons beaucoup plus de choses qui peuvent être faites.

Txapas sur le côté, Commencé! De quoi avons-nous besoin? Eh bien, l’habituel! Patience et Docker!🤣 Donc, sur une machine avec un Linux que nous avons à ces fins, et après l’installation de Docker et Docker Compose, Eh bien, nous allons déployer un conteneur avec, C’est aussi simple que cela, ce conteneur, ElastAlert2, sera chargé de lire les fichiers de règles que nous laissons dans un dossier et de faire, Ce que vous devez faire 😅.

git clone https://github.com/jertel/elastalert2.git CD elastalert2 mkdir config mkdir rules

Et nous créons notre docker-compose.yml avec quelque chose comme ça:

Version: '3.9'
services:
    elastalert2:
        image: 'jertel/elastalert2:latest'
        volumes:
            - './rules:/opt/elastalert/rules'
            - './config/elastalert.yaml:/opt/elastalert/config.yaml'
        container_name: Redémarrage d’elastalert: réseaux à moins qu’ils ne soient arrêtés:
           red_elastalert2:

Réseau:
  red_elastalert2:
    chauffeur: Pont

Et tout d’abord, nous devrons également modifier le fichier de configuration ElastAlert2 './config/elastalert.yaml', où nous indiquerons le serveur Elasticsearch, Votre port, Identifiants d’accès… Et pendant que nous y sommes,, entrons les données de notre Telegram, puisque nous avons dit que nous voulons recevoir des alertes de ce type.

es_host: "SERVIDOR_ELASTICSEARCH"
es_port: PUERTO es_username: es_password UTILISATEURS: MOT DE PASSE rules_folder: règles run_every:
  compte-rendu: 1
buffer_time:
  compte-rendu: 1
writeback_index: elastalert_status alert_time_limit.jours: 2

telegram_bot_token: "TOKEN_BOT_TELEGRAM"
telegram_room_id: "ID_GRUPO_TELEGRAM"
telegram_parse_mode: "HTML"
alert_text_type: alert_text_only

Nous l’avons prêt, Il ne reste plus qu’à le déplier, et je vous laisse en dessous de la commande pour voir les journaux en cas d’incident:

Sudo Docker compose up -d sudo Docker logs elastalert -f

Et maintenant, il y a le travail acharné 🤠, la belle 😍 partie, qui n’est rien d’autre que la création des règles dont nous avons besoin, jusqu’à, Dans ce cas, les alertes que nous souhaitons recevoir, ou importer des règles existantes 😉. Je vous laisse avec l’exemple d’une règle (./rules/OpenServicesIT-Fortinet-FortiGate-Login-Correct.yaml) Où nous verrons ce que nous attendons, une règle qui recherchera les journaux dans un FortiGate avec des connexions réussies, C’est, chaque fois que quelqu’un se connecte à un FortiGate, par GUI ou CLI, de manière satisfaisante. C’est cette alerte que nous recevrons, dans ce cas par Telegram et rien d’autre que nous ferons (Pour l’instant)….

Nom: Fortinet-FortiGate-Login-Type correct: fréquence num_events: 1

index: filebeat-* seuil: 10
use_count_query: Fausse chronologie:
  compte-rendu: 3

filtre:
- requête:
    query_string:
      requête: 'tags: fortigate ET fortinet.firewall.action: login ET rule.description: "Connexion réussie"'

alert:
  - Télégramme alert_subject: <b>FortiGate - Connectez-vous</b>

alert_text: |
  Un administrateur est connecté avec succès à FortiGate, Plus d’infos:
  Utilisateur: {0}
  Méthode: {1}
  Adresse IP source: {2}
  Nom du FW: {3}
alert_text_args: ["source.user.name", "fortinet.firewall.method", "source.ip", "observer.name"]

Comme vous pouvez le voir, Il a un format de règle que nous devons respecter de manière méticuleuse, Les possibilités sont nombreuses, Dans ce cas particulier, chaque 1 minutes nous ferons une requête Elasticsearch et dès que nous aurons 1 événement, parce qu’il va générer une si belle alerte sur Telegram. Ne rendez pas non plus fou Telegram avec des alertes « idiotes »’ que pour cela nous aurons d’autres outils de gestion des incidents, Mais c’est un exemple très pratique à montrer.

Une fois notre règle créée, ou lorsque nous les modifions, ElastAlert2 les rechargera automatiquement, Nous n’avons pas besoin de réinitialiser quoi que ce soit. Et c’est aussi simple que cela, cela commencera à chercher ce dont nous avons besoin dans notre Elasticsearch! Je vais probablement vous donner d’autres exemples de règles curieuses que l’on peut faire avec ElastAlert2, Quelle que soit la vérification par rapport aux listes noires, Détection de voyage impossible ou le voyageur temporel (ou quoi que vous disiez), intégrations avec les décisions Crowdsec… Il y a du tissu à couper…

Je vous souhaite un excellent, Vous prenez soin de vous, Et comme toujours, Parapluie pour la pluie et parapluie pour le soleil 😅, quelles vieilles phrases… Un câlin! 🫂

Articles recommandés

Auteur

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, N’hésitez pas à me contacter, J’essaierai de vous aider chaque fois que je le pourrai, Partager, c’est vivre ;) . Profiter des documents!!!