Skip to content

Peut-on se fier à l'horodatage de compilation d'un en-tête PE pour dater un malware ?

Réponse courte

Pas à lui seul. Le TimeDateStamp de l'en-tête COFF est décrit comme indiquant la date de création du fichier, mais rien dans le format PE ne l'authentifie : la spécification indique que les valeurs 0 et 0xFFFFFFFF ne sont pas de vrais horodatages, et les builds reproductibles (IMAGE_DEBUG_TYPE_REPRO) s'écartent du format time_t habituel. C'est un indice faible, à corroborer, pas une preuve de la date de fabrication.

Les analystes aiment l'horodatage de compilation PE car il ressemble à une donnée d'attribution gratuite. Le piège : ce n'est qu'un nombre écrit par la chaîne d'outils dans l'en-tête.

Ce que dit la spécification

La documentation Microsoft du format PE définit TimeDateStamp dans l'en-tête de fichier COFF comme les 32 bits de poids faible d'une valeur time_t de la bibliothèque C, qui « indique quand le fichier a été créé ». La même page précise qu'une valeur 0 ou 0xFFFFFFFF ne représente pas un horodatage réel ou significatif, et renvoie à IMAGE_DEBUG_TYPE_REPRO comme exception au format habituel. Ce type de debug existe pour les builds reproductibles, dont l'objectif est une sortie déterministe.

Pourquoi c'est une preuve faible

Le chargeur ne vérifie pas ce champ et rien dans le format ne le signe (déduction personnelle à partir de la spec, non citée). Quiconque peut réécrire les octets de l'en-tête, ou dont la chaîne produit des valeurs déterministes ou nulles, contrôle ce que vous voyez. Une date future ou 1992 est un signal d'alerte classique, mais une valeur plausible ne prouve rien non plus.

Bien l'utiliser

  • Le comparer à d'autres artefacts : entrées du répertoire de debug, Rich header, ressources, dates de première observation dans les bacs à sable publics.
  • Chercher des regroupements sur une campagne plutôt que se fier à un seul échantillon.
  • L'indiquer dans le rapport comme « date de compilation déclarée ».

Pourquoi les distracteurs séduisent

« Lié cryptographiquement » et « Windows rejette les dates futures » inventent des contrôles inexistants. « Taille du fichier » confond avec un autre champ.

Ce que veulent les recruteurs

« Utile mais non fiable : à corroborer. » Citer les réserves sur 0/0xFFFFFFFF et les builds reproductibles montre que vous avez lu la spec.

Questions de suivi probables

  • Quels autres artefacts corroborent une date de build (Rich header, répertoire de debug, ressources, première vue VirusTotal) ?
  • Que suggère généralement un horodatage nul sur la chaîne de compilation ?
  • En quoi est-ce différent du timestomping NTFS ?

Sources

Recevez 100 questions d'entretien en cybersécurité + réponses

Laissez votre e-mail et nous vous enverrons le pack PDF gratuit et le jeu de flashcards.

Pas de spam. Désabonnez-vous à tout moment.