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

Artificial Intelligence Splunk

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 :

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 :

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 ?

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

Articles similaires

Nouvelle BD : l’IA, à l’épreuve de la confiance
Intelligence artificielle
4 min de lecture

Nouvelle BD : l’IA, à l’épreuve de la confiance

Les super-héros du numérique de notre podcast Les Résilients, après avoir partagé leurs visions de la résilience dans les épisodes de la saison 3, nous parlent du futur. Et pour eux, c’est clair, l’IA est désormais à l’épreuve de la confiance.
Data Talks : Tout savoir sur l’IA et la data
Intelligence artificielle
14 min de lecture

Data Talks : Tout savoir sur l’IA et la data

Bienvenue dans l’épisode 4 de Data Talks, la série de Splunk dans laquelle des experts de la donnée décryptent pour nous les nouvelles tendances autour de la data. Nous retrouvons aujourd’hui un des spécialistes français de la donnée, Axel Cypel, spécialiste de la gestion de projets en data science, pour nous parler IA et Data.
Tokenomics : le token, nouvelle monnaie de l’ère des agents
Intelligence artificielle
7 min de lecture

Tokenomics : le token, nouvelle monnaie de l’ère des agents

L’intelligence artificielle générative a introduit une nouvelle unité dans le vocabulaire des directions techniques et financières : le token. À l’heure où les agents IA passent des démonstrations aux déploiements en production, cette petite unité est en train de redessiner les budgets IT. Bienvenue dans l’ère de la tokenomics.