TIPS & TRICKS

ChatGPT et Splunk : l’IA combinée à la data pour une analyse automatique des logs ?

Dans ce nouvel article, nous nous sommes penchés, Thomas Labetoulle et Olivier Paule, sur un sujet d’actualité que vous n’avez pas pu rater : l’essor de l’IA et l’arrivée de ChatGPT dans notre quotidien.

Ces IA peuvent-elles nous offrir des possibilités infinies pour une analyse automatique des logs ?

C’est ce que l’on a tenté de découvrir en intégrant ChatGPT dans Splunk ! 💥

Comment « brancher » ChatGPT à Splunk ?

Pour réussir à interroger ChatGPT depuis nos requêtes Splunk, nous allons utiliser l’API gratuite mise à disposition par OpenAI.

Seulement 2 choses seront à créer dans Splunk :

  • une custom command Splunk,
  • un script python.

C’est parti, on vous montre comment faire !

Custom command Splunk

Une custom command Splunk est une fonctionnalité permettant d’étendre les fonctionnalités de Splunk en créant sa propre commande personnalisée.

Ici nous allons créer une command | chatgpt qui pourra être appelée directement dans nos requêtes.

[chatgpt]
filename = chatgpt.py

Et c’est tout ! C’est notre script qui va ensuite s’occuper de tout !

Script Python

C’est ici que le code personnalisé de la custom command est exécuté.

Que va-t-il faire ?

  1. Récupérer en entrée le paramètre venant de Splunk, à savoir notre prompt (la question que l’on pose à ChatGPT) que l’on aura créé à partir de nos logs.
  2. Envoyer cette question à l’API ChatGPT.
  3. Récupérer la réponse générée par ChatGPT et la formater pour l’afficher dans Splunk comme un résultat de requête.

Avec un compte ChatGPT gratuit, vous pourrez récupérer le paramètre orgid ici et votre clé API est à créer ici.

Et ensuite, comment l’exploiter ?

Voici quelques possibilités d’utilisation :

  • Poser une question à ChatGPT

Comme sur l’interface web ChatGPT, nous allons pouvoir poser une question et obtenir le résultat dans Splunk.

Pourquoi pas pour venir compléter un résultat de requête avec des données externes à Splunk ?

| makeresults 
| eval prompt="Quel est le CA de l'entreprise X au mois de juillet ?"
| map search="| makeresults | chatgpt $prompt$ "

Ou pour nous aider dans notre développement de requête ?

| makeresults
| eval prompt="Optimise-moi la requête Splunk : index=xxx | table *"
| map search="| makeresults | chatgpt $prompt$ " 

C’est un bon début, mais comment aller plus loin ?

  • Fournir une analyse automatique de logs

C’est ici que les choses vont devenir intéressantes... 👀

Vous le savez, la force de Splunk est de proposer de l’analyse et des alertes en temps réel. Mais une fois l’alerte émise, il va falloir la comprendre, l’analyser, la rediriger vers les bonnes équipes, etc. Et on en reçoit souvent de très (trop ?) nombreuses !

Et si l’IA pouvait nous aider à mieux analyser et traiter toutes ces alertes ?

Prenons un cas concret avec une alerte de cybersécurité afin de voir ce que ChatGPT peut nous apporter comme analyse.

Ici, nous allons simuler la prise de contrôle d’un PC utilisateur suite à l’injection d’une commande malveillante encodée et exécutée de façon cachée.

powershell -WindowStyle Hidden -EncodedCommand "JABjAGwAaQBl......"

Le scénario classique de détection sans IA serait alors :

1. Alerte Splunk : détection dans les WindowsEventLogs d’un code exécuté de façon cachée et encodée

index="winlogs" 
sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational"  
CommandLine="*Hidden*Encoded*"

2. Décodage par l’analyste du code exécuté via ligne de commande ou outil

3. Compréhension et analyse de la commande

4. Résolution ou redirection vers l’équipe d’assistance concernée

Et maintenant, quel résultat en passant par ChatGPT ?

Avec pour seule information de contexte le prompt suivant :

| eval prompt="En cyber sécurité, peux-tu détailler la commande 
suivante".CommandLine

Voici le contenu de l’alerte générée automatiquement par ChatGPT ⬇️

Jugez par vous-même, mais le résultat est plutôt impressionnant ! Sans aucune information, nous avons maintenant une alerte qui nous donne :

  1. le langage et l’encodage utilisé 💪
  2. le détail du code exécuté, maintenant décodé 💥
  3. une première analyse des conséquences de cette commande, à savoir la prise de contrôle à distance de l’ordinateur et la possibilité d’y exécuter n’importe quelle commande... 😱

De quoi grandement améliorer notre analyse et nos temps de réponse !

Et vous, pensez-vous utiliser l’IA pour de futures analyses de logs ?

Dans quels cas d’usage l’IA pourrait-elle vous faire gagner en temps et en qualité de traitement ?

​​⚠️ RAPPEL : ChatGPT va stocker vos requêtes et données, attention de ne pas y envoyer de logs sensibles ! ⚠️

Nos autres articles Splunk ⭐

📌 Monitorer le prix de l’essence

📌 Monitorer une F1 sur PS4

📌 Télétravail : la data pour mesurer nos changements de rythme de vie

📌 Confinement : Splunker sa consommation Netflix

Splunk
Posted by

Splunk

TAGS
Show All Tags
Show Less Tags