Découvrez notre société Contactez-nous

e-Xpert Solutions Genève

109, chemin du Pont-Du-Centenaire
CH-1228 Plan-les-Ouates / Genève
SUISSE

Tel. : +41 22 727 05 55 Fax : +41 22 727 05 50

e-Xpert Solutions Lausanne

Avenue de Gratta-Paille 20
CH-1018 Lausanne
SUISSE

Tel. : +41 21 802 26 78 Fax : +41 22 727 05 50
Contactez notre support : +41 22 727 05 56
En cochant cette case, vous acceptez notre politique de confidentialité disponible en cliquant ici
Envoyez votre message

Swiss Security Hackademy

Suivez notre blog bilingue en sécurité informatique !

Retour aux articles

SPLUNK – BUG Timestamp


Auteur : Laurent

Date de publication : 29 novembre 2019 - Dernière mise à jour : 29 novembre 2019


A partir du 01/01/2020 toutes les instances Splunk ne seront plus en mesure de traiter correctement les timestamps d'évènements dont l'année sera codée sur 2 digits. En conséquence tous les events concernés seront indéxés avec un timestamp incorrect.

A partir du 13 septembre 2020 à 12:26:39 UTC toute instance Splunk non patchée ne sera plus en mesure d'interpréter un timestamp au format EPOCH à cause d'un parsing incorrect.

Plateformes et rôles impactés

Ce bug touche n'importe quelle plateforme Splunk peu importe son rôle et l'OS sur lequel elle est installée

Splunk Cloud
Splunk Light
Splunk Entreprise

  • Indexeurs (standalone ou en cluster)
  • Heavy Forwarder
  • Search Head (standalone ou en cluster)
  • Seach Head deployer
  • Deployment server
  • Cluster Master
  • License Master

Splunk Universal Forwarder dans les conditions suivantes :

  • UF configuré pour traiter des données structurées telles que CSV, XML, JSON avec la directive INDEXED_EXTRACTIONS dans le props.conf de la source
  • UF configurés pour traiter des données localement avec la directive force_local_processing dans le props.conf de la source
  • UF configuré avec un input de type monitor qui tomberait sur un type de fichier inconnu

Le problème apparaît uniquement pour les sources configurées avec une détection automatique du timestamp et se traduit par:

  • Timestamping incorrect des events
  • Rollover non souhaité de buckets dû au timestamp incorrect des events qui s'y trouvent
  • Durée de rétention des events non respectée pour un index donné
  • Résultats de search incorrects dus aux events indexés avec un mauvais timestamp

Cause :

Splunk utilise un dictionnaire d'expressions régulières qui permet d'extraire et d'interpréter une multitude de formats de dates et de temps.
Ce dictionnaire, au format XML de trouve dans un fichier datetime.xml situé dans $splunk_home/etc

Sur une instance Splunk non patchée les regex d'extraction de dates supportent les formats d'années sur deux digits jusqu'à 19, donc aucun problème jusqu'au 31 Décembre 2019. Au 1er Janvier 2020 une instance non patchée interprètera les events avec une date à deux digits comme n'ayant pas de timestamp correct et tentera :

  • Soit d'ajouter un timestamp avec l'année en cours
  • Soit d'ajouter un timestamp avec une date mal interprétée qui ne correspondra à rien

Solutions :

Pour les clients On Prem quatre solutions existent :

  • Downloader une version patchée de datetime.xml et la copier sur toutes vos instances Splunk
  • Downloader et installer une APP qui va temporairement remplacer le fichier datetime.xml
  • Modifier le fichier datetime.xml vous-même sur toutes vos instances Splunk
  • Upgrader vos instance Splunk avec une version patchée

Pour les client Splunk Cloud rien à faire. Les instances seront automatiquement patchées. Ils recevront une notification lorsque cette mise à jour sera faite. Pour ceux d'entre eux qui utilisent des forwarders pour alimenter leurs instances Splunk Cloud il faudra appliquer une des solutions proposées pour les clients Splunk On Premise.

Downloader une version patchée de datetime.xml et la copier sur toutes vos instances Splunk

Splunk fournit une version corrigée du fichier datetime.xml pour les clients qui ne peuvent pas se permettre de faire un upgrade immédiat de leur plateforme Splunk vers une version patchée ou qui utilisent une version de Splunk antérieure à la 6.6

  • Downloadez le fichier datetime.zip
  • Décompressez l'archive et remplacez le fichier datetime.xml se trouvant dans $SPLUNK_HOME/etc sur toutes vos instances Splunk
  • Assurez-vous d'avoir bien remplacé le fichier et redémarrez Splunk
  • ==> votre instance est patchée

Downloader et installer une APP qui va temporairement remplacer le fichier datetime.xml

Splunk a développé une app qui permet de remplacer le fichier datetime.xml sur une instance Splunk. Cette option est à privilégier pour les clients ayant de gros déploiements Splunk et notamment un grand nombre d'universal forwarders, d'indexers et/ou de clusters de search head.
Pour le déploiement de cette app il n'est pas nécessaire d'arrêter Splunk avant l'installation mais il faut le redémarrer après cette dernière pour la prise en compte des modifications. Un simple debug/refresh ne suffira pas.

  • Downloadez l'app (MD5 hash: 969d16abc6698e06cb1bff77cf94e470)
  • Décompressez l'archive et ouvrez le fichier README
  • Suivre les instructions pour déployer une des 2 app founies

Modifier le fichier datetime.xml vous-même sur toutes vos instances Splunk

Si vous êtes un inconditionnel de l'editeur de texte vous pouvez apporter vous-même les modifications nécessaires dans le fichier datetime.xml sur vos instances Splunk.

  • Ouvrez un shell sur votre instance et allez dans $SPLUNK_HOME/etc
  • Ouvrez le fichier datetime.xml
  • Cherchez/remplacez les regex tel que dans le tableau ci-dessous :
SPLUNK – BUG Timestamp
  • Enregistrez et fermez le fichier
  • Redémarrez Splunk
  • 1. ==> votre instance est patchée

Upgrader vos instance Splunk avec une version patchée

Splunk fournit des versions patchées contenant le fichier datetime.xml corrigé. Le tableau ci-dessous liste les versions mineures qui incluent le fix

SPLUNK – BUG Timestamp

Toutes nos équipes se tiennent à votre disposition pour répondre à vos questions sur cette problématique.