Comment Exporter des Journaux depuis Splunk pour l’Analyse de Sécurité

Comment Exporter des Journaux depuis Splunk pour l’Analyse de Sécurité

SOC Prime Team
SOC Prime Team linkedin icon Suivre

La réponse courte : exécutez la recherche, cliquez sur Exporter dans la barre d’outils de la tâche sous la barre de recherche, et choisissez Événements bruts, CSV or JSON. Pour quelques milliers d’événements, c’est tout ce dont vous avez besoin. Pour des extractions plus importantes, évitez le navigateur et utilisez l’interface en ligne de commande de recherche Splunk (CLI) ou le point de terminaison d’exportation REST. Les deux diffusent les résultats au lieu de faire construire un fichier énorme par Splunk Web.

Pourquoi exporter depuis Splunk alors que les données sont déjà indexées ? Généralement parce que quelqu’un en dehors de votre Splunk doit les consulter : un partenaire IR, un collègue d’une autre équipe, ou vous-même, sur un ordinateur portable, sans écrire du SPL pendant une heure. Prime Core dispose de 23 674 règles de détection pour Splunk mappées à 676 techniques MITRE ATT&CK. Cela fait beaucoup de logique de détection que vous pouvez appliquer à une petite partie de vos données une fois qu’elles sont sorties. Voici comment obtenir cette tranche, la nettoyer et l’analyser gratuitement dans LogTotal.

Commencez gratuitement

Résumé

ItinéraireUtilisez-le lorsqueCe dont vous avez besoin
Splunk Web → ExporterExportation ponctuelle, petite exportation, vous avez déjà la recherche ouverteAccès à la recherche dans l’index
CLI de recherche SplunkVous avez un accès shell sur une tête de recherche Splunk EnterpriseAccès OS + identifiants Splunk
Recherche REST/jobs/exportationGrandes exportations, scriptage, ou Splunk CloudAccès au port de gestion (8089) + un jeton

Avant de commencer

Trois éléments déterminent quel itinéraire fonctionne pour vous : où se trouve votre Splunk, ce que votre rôle peut rechercher, et si vous êtes autorisé à exporter les données.

  • Accès à l’index. Vous ne pouvez exporter que ce que votre rôle peut rechercher. Si une recherche revient vide mais que vous savez que les données sont là, vérifiez les index autorisés de votre rôle avant de réécrire le SPL. Mettez index= dans la recherche explicitement; ne vous fiez pas aux index par défaut.
  • Splunk Cloud vs. Enterprise. Sur la plateforme Splunk Cloud, il n’y a pas de shell, donc le chemin CLI est exclu. L’API REST n’est pas activée par défaut non plus: quelqu’un doit demander l’accès pour votre pile, et les essais gratuits ne peuvent pas l’utiliser du tout. L’exportation via le Web Splunk fonctionne partout.
  • Permission d’exporter. Les journaux bruts contiennent des noms d’utilisateur, des noms d’hôte, des IP internes, parfois des jetons dans les URL. LogTotal nettoie les téléchargements avant l’analyse, mais la politique de gestion des données de votre entreprise s’applique toujours. Obtenez l’accord d’abord. Cela prend cinq minutes, et il est préférable de l’avoir par écrit si cela devient un incident.

Les commandes ci-dessous suivent la documentation actuelle de Splunk pour Splunk Enterprise et Splunk Cloud Platform, vérifiées en octobre 2026. Des liens vers chaque page utilisée se trouvent à la fin.

Étape 1 : Déterminez la portée de la recherche avant d’exporter quoi que ce soit

L’erreur la plus courante est d’exporter tout un index « juste au cas où ». Vous vous retrouvez avec un fichier que personne ne veut ouvrir. Décidez de la question à laquelle vous répondez, puis définissez précisément l’index, le type de source, l’hôte et le temps :

index=linux sourcetype=linux_secure host=web-03 earliest=-24h@h latest=@h

Pour les événements de sécurité Windows collectés par l’add-on Splunk pour Windows en mode XML :

index=wineventlog source="XmlWinEventLog:Security" host=dc-01 earliest=-24h@h latest=@h

Deux règles permettent de garder l’exportation utile.

Conservez _raw. Si la recherche se termine par stats, table ou chart, vous exportez un résumé, pas des journaux, et Splunk Web désactivera le format Événements bruts. Exportez des événements, pas des résultats. Si vous choisissez JSON, réduisez les champs extraits pour que le fichier ne triple pas de taille :

... | fields _time host source sourcetype _raw

Utilisez un temps absolu lorsque cela importe. earliest=-24h signifie quelque chose de différent chaque minute. Si Splunk doit relancer votre recherche lors de l’exportation (plus de détails ci-dessous), une fenêtre relative peut renvoyer un ensemble d’événements légèrement différent. Pour tout ce qui concerne un incident, utilisez des horodatages exacts.

Un point à savoir sur les données Windows : Splunk ne conserve pas les fichiers .evtx originaux. Il indexe le texte de l’événement rendu, XML ou le classique clé=valeur. Donc, ce que vous exportez est ce texte, pas un EVTX binaire.

Étape 2a : Exporter depuis Splunk Web

Idéal pour les petites exportations ponctuelles lorsque la recherche est déjà à l’écran.

  1. Exécutez la recherche et laissez la tâche se terminer. Exporter une tâche en cours ne vous donne qu’une vue partielle.
  2. Cliquez sur Exporter (la flèche de téléchargement) dans la rangée d’actions de tâches sous la barre de recherche.
  3. Choisissez le format. Événements bruts vous donne les lignes de journal d’origine exactement comme elles ont été indexées, ce que vous voulez pour les sources de style syslog comme linux_secure. JSON conserve l’hôte, la source et le type de source à côté de chaque événement. Cela aide lorsque l’exportation couvre plusieurs hôtes.
  4. Nommez le fichier pour qu’il soit reconnaissable la semaine prochaine, par exemple web-03_sshd_2026-10-19.log.
  5. Laissez Nombre de résultats vide pour exporter tout ce que la recherche a renvoyé. Si vous tapez 500, vous obtenez les 500 premiers et rien ne vous indique qu’il y en avait davantage.
  6. Cliquez sur Exporter.

Un détail qui perturbe souvent : l’exportation fonctionne à partir de l’artifact de la tâche de recherche, pas de ce que vous voyez dans le navigateur. Si Splunk n’a pas gardé chaque résultat avec la tâche, le dialogue avertit qu’il relancera d’abord la recherche. C’est normal. Cela prend juste plus longtemps, c’est pourquoi la plage de temps absolue de l’étape 1 est importante. Les exportations très longues peuvent également être affectées par le délai d’expiration de la session Splunk Web. Si l’exportation dure plusieurs minutes, passez à la CLI ou REST.

Étape 2b : Exporter avec la CLI de Splunk (Enterprise uniquement)

Si vous avez un accès shell sur la tête de recherche, c’est le chemin le plus rapide et le plus facile à script. Connectez-vous d’abord, pour que votre mot de passe ne se retrouve pas dans l’historique du shell comme il le ferait avec -auth :

$SPLUNK_HOME/bin/splunk login

$SPLUNK_HOME/bin/splunk search
  'index=linux sourcetype=linux_secure host=web-03 earliest="10/19/2026:00:00:00" latest="10/20/2026:00:00:00"'
  -preview 0 -maxout 0 -output rawdata > web-03_sshd.log

Ce que fait chaque drapeau :

  • -maxout 0 supprime la limite. Par défaut, la CLI exporte 100 événements et s’arrête sans un mot. Si votre fichier a exactement 100 lignes, c’est pourquoi, pas un hôte silencieux.
  • -preview 0 garde les résultats de l’aperçu en dehors du fichier.
  • -output rawdata écrit les lignes originales. Utilisez -output json si vous voulez des événements structurés avec des métadonnées.

Vous pouvez également exécuter la CLI contre une tête de recherche à distance avec -uri https://<tête-de-recherche>:8089, tant que le port de gestion est accessible de votre position.

Deux vérifications rapides de bon sens avant de télécharger :

wc -l web-03_sshd.log
head -3 web-03_sshd.log

Pour les sources à ligne unique comme linux_secure, le nombre de lignes devrait correspondre à peu près au nombre d’événements affichés par Splunk Web pour la même recherche. Les premières lignes devraient ressembler à des lignes de journal, pas à des messages d’erreur.

Étape 2c : Diffuser les résultats via l’API REST

C’est le chemin pour les grandes exportations, les extractions programmées et Splunk Cloud (une fois l’accès REST activé pour votre pile). Le point de terminaison d’exportation diffuse les résultats pendant que la recherche s’exécute, il n’y a donc pas de tâche à interroger et pas de pages de résultats à parcourir.

Utilisez un jeton d’authentification au lieu d’un nom d’utilisateur et d’un mot de passe. Vous le créez dans Paramètres → Jetons, si votre administrateur a activé l’authentification par jeton.

export SPLUNK_TOKEN='<votre jeton>'

curl -sS
  -H "Authorization: Bearer $SPLUNK_TOKEN"
  https://sh01.example.com:8089/services/search/v2/jobs/export
  --data-urlencode search='search index=linux sourcetype=linux_secure host=web-03'
  -d earliest_time='2026-10-19T00:00:00.000+00:00'
  -d latest_time='2026-10-20T00:00:00.000+00:00'
  -d output_mode=raw
  -o web-03_sshd.log

Choses qui piègent les gens :

  • La chaîne de recherche doit commencer par search (ou une commande de génération telle que | tstats). Collez votre requête sans cela et Splunk la rejettera.
  • output_mode=raw vous donne les lignes originales, et c’est le mode le plus rapide. output_mode=json diffuse un objet JSON par ligne, avec l’événement sous une clé result. Si vous voulez seulement les événements eux-mêmes, retirez l’enveloppe avec jq : jq -c ‘select(.result) | .result’ export.json > events.ndjson. Pour un téléchargement sur LogTotal, restez avec raw.
  • Les instances de laboratoire utilisent souvent des certificats auto-signés, et chaque réponse sur Stack Overflow vous dira d’ajouter -k. En production, pointez curl sur votre CA avec –cacert à la place.
  • Si vous POST à search/v2/jobs et lisez depuis /results, le serveur limite le nombre de lignes par requête, et vous devez paginer avec un offset. export ne le fait pas, c’est donc la raison de l’utiliser ici.

Étape 3 : Téléchargez, nettoyez et examinez dans LogTotal

LogTotal est le service gratuit de SOC Prime pour exécuter la logique de détection sur un fichier journal sans rien configurer. Il nettoie ce que vous téléchargez et ne garde pas vos fichiers.

  1. Téléchargez. Ouvrez logtotal.com et déposez le fichier de l’étape 2.
  2. Nettoyez. Examinez-le avant de continuer. Vous connaissez votre environnement mieux que toute règle de masquage.
  3. Examinez. 

Quand l’exportation tourne mal

SymptômeCause probableFix
Le fichier CLI a exactement 100 événements-maxout par défaut est 100Ajoutez -maxout 0
Événements bruts est grisé dans le dialogue ExporterLa recherche se termine par une commande de transformation (stats, table, chart)Exportez les événements à la place, ou choisissez JSON
La recherche ne renvoie rien, mais les données sont làL’index n’est pas dans les index autorisés ou par défaut de votre rôle, ou mauvaise plage horaireAjoutez index= explicitement ; demandez à votre administrateur concernant le rôle
Le dialogue indique que la recherche sera relancéeL’artifact de la tâche n’a pas gardé chaque résultatComportement attendu ; utilisez une plage de temps absolue pour que la relance renvoie les mêmes événements
L’exportation par navigateur s’interrompt ou le fichier est coupéDélai d’expiration de session Splunk Web sur une longue exportationPassez à la CLI ou REST
401 Non autorisé de curlJeton expiré, désactivé, ou authentification par jeton désactivéeCréez un nouveau jeton dans Paramètres → Jetons
curl se bloque ou obtient un refus de connexion sur 8089Port de gestion bloqué, ou REST non activé sur Splunk CloudVérifiez les règles de pare-feu ; demandez un accès REST pour votre pile Cloud
REST renvoie une erreur de syntaxe de rechercheLa requête ne commence pas par searchPrécédez-la de search
Le fichier JSON est beaucoup plus grand que prévuChaque champ extrait a été exportéAjoutez | fields _time host source sourcetype _raw

FAQ

Puis-je exporter des journaux depuis Splunk Cloud ?

Oui. L’exportation Splunk Web fonctionne de la même manière que sur Enterprise. Le point de terminaison d’exportation REST fonctionne une fois l’accès API activé pour votre pile ; les essais gratuits n’y ont pas accès. La CLI n’est pas une option, car il n’y a pas de shell sur Splunk Cloud.

Puis-je récupérer les fichiers EVTX originaux depuis Splunk ?

Non. Splunk stocke le texte de l’événement rendu, pas le binaire .evtx. Vous pouvez exporter ce texte comme événements bruts ou JSON. Pour de vrais fichiers EVTX, exportez-les à partir de l’hôte Windows lui-même.

Événements bruts ou JSON : lequel dois-je choisir pour LogTotal ?

Brut. Vous obtenez les mêmes lignes qui se trouvent sur l’hôte, et LogTotal lit les fichiers au format syslog tels quels. JSON encadre chaque événement dans la structure propre de Splunk. C’est pratique quand vous avez besoin d’avoir l’hôte et le type de source à côté de chaque événement, mais pour un téléchargement sur LogTotal, brut est le choix le plus sûr.

Est-il sûr de télécharger une exportation Splunk vers un outil en ligne ?

LogTotal désinfecte les téléchargements avant l’analyse et ne conserve pas les fichiers.

Combien d’événements puis-je exporter ?

Côté Splunk, autant que vous le souhaitez : laissez Nombre de résultats vide dans Splunk Web ou définissez -maxout 0 dans la CLI. En pratique, la limite est la taille de téléchargement de l’autre côté. Il est donc payant de bien définir la portée de la recherche à l’étape 1.

Rejoignez la plateforme Detection as Code de SOC Prime pour améliorer la visibilité sur les menaces les plus pertinentes pour votre entreprise. Pour vous aider à démarrer et à générer une valeur immédiate, planifiez dès maintenant une réunion avec des experts de SOC Prime.