Skip to content

Glossaire

Fusion d'événements (FSEvents)

fseventsd fusionne plusieurs modifications d'un même chemin en un seul enregistrement : une ligne peut indiquer Created, Modified et Removed.

La fusion d'événements est la façon dont fseventsd regroupe plusieurs modifications d'un même chemin en un seul enregistrement. Le démon garde les modifications en mémoire tampon avant de les écrire dans le fichier journal courant ; lorsqu'un chemin est touché plusieurs fois pendant ce délai, il conserve un seul enregistrement dont les flags réunissent tout ce qui s'est produit. Un fichier temporaire créé, écrit puis supprimé avant l'écriture suivante du journal apparaît comme un seul enregistrement marqué Created;Modified;Removed.

Pourquoi c'est important en investigation

La fusion change la manière de lire une chronologie :

  • L'ordre au sein d'un enregistrement est inconnu. Created;Modified;Removed ne dit pas que le fichier a d'abord été créé ; les flags forment un ensemble, pas une séquence.
  • Compter les enregistrements ne compte pas les opérations. Un enregistrement peut représenter de nombreuses écritures ; leur nombre ne dit rien de la fréquence des sauvegardes d'un fichier.
  • L'ordre entre enregistrements reste fiable. L'identifiant d'événement de chaque enregistrement provient d'un compteur qui ne fait qu'augmenter : deux enregistrements concernant des chemins différents peuvent être ordonnés avec confiance.
  • Un seul enregistrement peut cacher une vie très courte. Un fichier qui n'a existé que quelques secondes peut ne laisser qu'une ligne. C'est souvent la seule trace de fichiers temporaires, d'installeurs ou d'outils qui font le ménage derrière eux.

Formulez un tel enregistrement ainsi : « l'élément a été créé et supprimé dans la fenêtre temporelle de ce journal », et non comme une séquence précise.

Exemple

Un enregistrement pour private/tmp/stage.sh dont la valeur brute des flags est 0x00800013 se décode en Created, Removed et Modified sur un fichier. Le script a existé, a été écrit et a été supprimé, le tout avant une même écriture du journal. Sa fenêtre temporelle est celle du fichier journal qui le contient, comme expliqué dans dater les enregistrements FSEvents. Le FSEvents Parser liste les fichiers qui apparaissent puis disparaissent dans l'historique chargé dans son constat sur les fichiers éphémères.

Termes associés

Voyez comment les flags combinés sont décodés dans le FSEvents Parser et dans les flags FSEvents expliqués.