Qu'est-ce que LinkDate dans Amcache ? (glossaire)
LinkDate est le PE TimeDateStamp. Le linker l'écrit dans le binaire au moment du build. Amcache le relit à partir de l'en-tête PE au moment de l'inventaire. C'est toute l'histoire.
Ce n'est pas un horodatage côté hôte. L'hôte n'a rien à voir avec cette valeur. Elle voyage avec le binaire. Un attaquant peut la mettre à ce qu'il veut, la laisser à zéro, ou choisir une date en 2007 pour donner au fichier l'air d'un vieux logiciel établi. Beaucoup le font.
Le contraste avec KeyLastWriteTimestamp#
| KeyLastWriteTimestamp | LinkDate | |
|---|---|---|
| Source | Métadonnées de registre, écrites par l'appraiser | En-tête PE, écrit par le linker |
| L'attaquant le contrôle ? | Non | Oui |
| Répond à | Quand Amcache a-t-il enregistré ceci ? | Quand le binaire a-t-il été construit ? |
| Bon pour | Approximation de la première apparition côté hôte | Regroupement de campagnes de build |
| Résolution | Secondes | Secondes |
Confondre ces deux valeurs est la seule erreur la plus courante avec Amcache. Le correctif est de ne jamais, jamais utiliser LinkDate pour argumenter sur le moment où un binaire est apparu sur un hôte. Voir Horodatages Amcache expliqués pour la version longue.
À quoi cela sert vraiment#
Regroupement de builds#
Triez les PE non signés par LinkDate. Cherchez 3 à 10 binaires estampillés dans la même journée ou la même heure. C'est un attaquant qui compile son kit en une seule séance et le dépose sur un ou plusieurs hôtes. Signal fort de campagne.
Import-Csv .\HOST_amcache_UnassociatedFileEntries.csv |
Where-Object { $_.IsPeFile -eq 'True' -and -not $_.Publisher } |
Sort-Object LinkDate |
Select LinkDate, Hash, FullPathDétection BYOVD#
Les pilotes dans DriverBinaries.csv avec un DriverTimeStamp d'il y a des années mais un KeyLastWriteTimestamp de cette semaine ont la signature BYOVD classique. Voir le glossaire BYOVD.
Dérive du processus de build#
« Notre CI fait toujours ses builds le lundi à 03:00. Celui-ci est mardi à 14:00. » Utile pour repérer quand un pipeline de build interne a été déplacé ou compromis.
À quoi cela ne sert pas#
- Temps de première apparition sur l'hôte. Utilisez
KeyLastWriteTimestamp. - Ordre d'arrivée. Deux binaires avec le même
LinkDatepeuvent être arrivés à des mois d'écart. - Identité cryptographique. Beaucoup de binaires sans rapport partagent des valeurs
LinkDate, surtout zéro.
Termes liés#
Articles liés
- Qu'est-ce que KeyLastWriteTimestamp dans Amcache ? (glossaire)
Le temps d'écriture registre de la clé Amcache. Ce qui se rapproche le plus de 'quand l'appraiser l'a enregistré'. Le champ que les nouveaux analystes confondent le plus souvent avec LinkDate.
- Qu'est-ce que le ProgramId Amcache ? (glossaire)
ProgramId est le hash d'identité d'application de 44 caractères qu'Amcache stocke. Stable entre hôtes pour la même installation. Attrape les recompilations et renommages que Hash rate.
- Qu'est-ce que Root\InventoryApplicationFile ? (glossaire)
La clé principale d'Amcache. Une sous-clé par PE inventorié par l'appraiser, avec hash, chemin, éditeur, date de lien et un horodatage d'écriture du registre. Là où passent 90 % du temps d'analyste.
- Qu'est-ce que le FileId Amcache ? (glossaire)
FileId, c'est '0000' plus le SHA-1 des 31 premiers MiB du fichier. Retirez le préfixe avant de taper VirusTotal, sinon il vous renverra rien en silence.