Automatiser l’analyse d’une adresse IP via l’API CTI de CrowdSec avec Tracecat

modifié le : 31 octobre 2024,
par Killian Prin-abeil
 

Introduction

Partons découvrir Tracecat, un SOAR de nouvelle génération qui se veut être une alternative puissante et fiable à Splunk et Tines. Et bien entendu, open-source et libre !

En plus de cette présentation, nous sommes fiers de vous présenter une intégration Tracecat x CrowdSec, réalisée par notre administrateur en cybersécurité, faisant partie des contributeurs de cet outil.

Qu'est-ce qu'un SOAR ?

Pour commencer, clarifions un terme : qu'est-ce qu'un SOAR ? Nous ne sommes pas allés bien loin, et nous avons pris la définition fournie par Elastic :
Le SOAR (Security Orchestration, Automation, and Response - Orchestration, automatisation et réponse en matière de sécurité) permet aux équipes chargées de la sécurité de standardiser et de rationaliser la réponse de leur entreprise aux attaques et aux incidents.

Cela peut sembler vague, donc résumons cela en trois points :
Orchestration : Connecte et coordonne différents outils pour centraliser les informations.
Automatisation : Gère les tâches répétitives pour réduire la charge de travail des analystes.
Réponse : Facilite une réponse rapide et structurée aux incidents de sécurité.

Qu'est-ce que Tracecat :

Tracecat est une plateforme auto-hébergée (ou en cloud), destiné aux équipes de sécurité, qui constitue une véritable solution alternative à des outils propriétaires comme Tines et Splunk. Avec Tracecat, vous pouvez créer des workflows d'automatisation complexes pour automatiser et gérer des incidents. De plus, il est même possible de le booster avec de l'IA !

L'outil se démarque notamment par l'intégration de deux principes :

  • Workflow orchestration
  • No-code automation

C'est là que Tracecat se distingue des autres outils, il représente un véritable entre-deux.

crédit : Tracecat, Daryl Lim, Chris Lo

Nous ne pouvons pas mieux parler de Tracecat que par l'intermédiaire de son co-fondateur, Chris Lo :
Tracecat n'est pas « juste » une Tines open source. Nous avons conçu une nouvelle façon d'automatiser la sécurité. Elle est plus abordable (jusqu'à 5 fois plus d'économies), plus facile à adopter et à maintenir.

Chez Aukfood, nous allons tirer parti de cet outil jeune et avec une équipe dynamique afin d'améliorer la gestion des faux positifs et autres incidents. C'est donc pour cela que nous sommes fiers de vous présenter l'intégration réalisée par notre administrateur en cybersécurité et contributeur de l'outil Tracecat.

Tracecat x CrowdSec

Il est nécessaire, au sein d'une équipe de sécurité, d'utiliser des outils qui peuvent fonctionner ensemble. Avec notre partenaire CrowdSec, nous avons dû trouver des outils compatibles. Cela a d'abord commencé avec Wazuh, et nous ajoutons maintenant Tracecat à notre stack.

Prérequis

Installation

Commençons par installer les fichiers de configuration (auto-héberger) :

curl -o env.sh https://raw.githubusercontent.com/TracecatHQ/tracecat/0.12.3/env.sh
curl -o .env.example https://raw.githubusercontent.com/TracecatHQ/tracecat/0.12.3/.env.example
chmod +x env.sh && ./env.sh

Ensuite, installons le fichier Caddyfile. Tracecat utilise Caddy en tant que reverse proxy :

curl -o Caddyfile https://raw.githubusercontent.com/TracecatHQ/tracecat/0.12.3/Caddyfile

Puis, pour finir, nous allons installer le fichier Docker Compose :

curl -o docker-compose.yml https://raw.githubusercontent.com/TracecatHQ/tracecat/0.12.3/docker-compose.yml

Il ne reste plus qu'à démarrer Docker Compose :

docker-compose up

Création workflow

Maintenant que Tracecat est installé et lancé, vous allez pouvoir vous connecter avec le login et le mot de passe par défaut : admin@domain.com/password

Bienvenue sur l'interface de Tracecat !!

Commençons par créer un workflow. Allons dans 'Créer nouveau' > 'Workflow'.

Ajoutons maintenant un node. Il suffit de taper 'crowdsec' dans la barre de recherche et de cliquer sur la tâche.

Comme vous pouvez le voir dans le titre, cela va nous permettre de rechercher des informations concernant une adresse IP à partir de l'API du CTI de CrowdSec.

Nous devons donc ajouter l'API dans les identifiants de notre compte. Allons donc dans 'Paramètres' > 'Identifiants' > 'Créer un nouvel secret'.

On revient ensuite sur notre workflow et nous devons ajouter dans l'input de notre tâche ceci : ip_address: ${{ TRIGGER.ip_address }}

Qu'est-ce que cela veut dire ? Eh bien, la tâche va prendre comme valeur d'entrée : ip_address: l'adresse IP que l'on veut analyser, ou du moins celle qui va être envoyée par CrowdSec.

Il ne reste plus qu'à enregistrer, committer et activer le workflow.

Rendez-vous maintenant sur votre serveur préféré sur lequel CrowdSec est installé. Puis, exécutez la commande suivante :

cat <<EOF > /etc/crowdsec/notifications/tracecat.yaml
#
# /etc/crowdsec/notifications/tracecat.yaml
#

type: http
name: tracecat
log_level: info
format: |
  {
    "ip_address": "{{range . -}}{{$alert := . -}}{{range .Decisions -}}{{.Value}}{{end -}}{{end -}}"
  }
url: webhook_url

method: POST
headers:
  Content-Type: application/json
EOF

Cette notification enverra au format JSON l'instruction suivante : ip_address: ip_malicious_detected. Rappelez-vous, cette instruction, nous l'avons également mise dans l'input de la tâche CrowdSec de notre workflow sur Tracecat.

Notez également qu'il faut y renseigner un webhook. Pour cela, rien de plus simple : rendez-vous sur l'interface du workflow créé au préalable, puis activez le webhook, copiez-le et collez-le dans l'url de votre fichier de notification.

Et pour finir, nous allons ajouter la nouvelle notification dans le fichier profile.yaml de CrowdSec, puis le redémarrer :

notifications:
    - tracecat
sudo systemctl restart crowdsec

Test

Afin de tester l'intégration, pas besoin de faire de grandes attaques/exploitations 😉, un simple scan de ports suffit :

nmap target_ip/target_url

On voit bien l'alerte remontée dans CrowdSec :

Ip:ip_malicious │ crowdsecurity/iptables-scan-multi_ports │ FR │ as │ ban:1 │ 2024-10-28 12:55:40.455476298 +0000 UTC 

Allons voir maintenant ce qu'il se passe dans Tracecat.

Première chose, on voit bien que Tracecat a reçu une @ip à analyser avec le CTI de CrowdSec.

Ensuite, si on va voir l'input, on constate qu'une @ip est bien rentrée.

Puis enfin, si on va voir le résultat, Tracecat a bien récupéré toutes les informations concernant l'@ip.

Pour finir

Et voilà, une simple intégration qui fait son travail. Par la suite, le but sera de continuer à développer l'intégration CrowdSec afin d'améliorer la gestion des faux positifs. Au-delà de cela, je recommande vivement Tracecat, car il existe une multitude d'intégrations super intéressantes et très efficaces.

Merci à Chris Lo et Daryl Lim, les deux co-fondateurs de Tracecat, pour leur aide et leur patience. Au plaisir de continuer à améliorer Tracecat à leurs côtés !

Thanks to Chris Lo and Daryl Lim, the two co-founders of Tracecat, for their help and patience. Looking forward to continuing to improve Tracecat alongside them!

Tracecat :

Template crowdsec :