Was ist LinkDate in Amcache? (Glossar)
LinkDate ist der PE-TimeDateStamp. Der Linker schreibt ihn beim Build in die Binary. Amcache liest ihn zur Inventarisierungszeit aus dem PE-Header zurück. Das ist die ganze Geschichte.
Er ist kein hostseitiger Zeitstempel. Der Host hat mit diesem Wert nichts zu tun. Er reist mit der Binary. Ein Angreifer kann ihn auf was auch immer setzen, ihn auf null lassen oder ein Datum in 2007 wählen, damit die Datei wie eine alte, etablierte Software aussieht. Viele tun das.
Der Kontrast zu KeyLastWriteTimestamp#
| KeyLastWriteTimestamp | LinkDate | |
|---|---|---|
| Quelle | Registry-Metadaten, vom Appraiser geschrieben | PE-Header, vom Linker geschrieben |
| Angreifer kontrolliert es? | Nein | Ja |
| Beantwortet | Wann hat Amcache das aufgezeichnet? | Wann wurde die Binary gebaut? |
| Gut für | Hostseitige First-Seen-Näherung | Build-Kampagnen-Clustering |
| Auflösung | Sekunden | Sekunden |
Diese beiden zu verwechseln ist der häufigste Amcache-Fehler überhaupt. Die Lösung lautet, LinkDate niemals, niemals zu verwenden, um zu argumentieren, wann eine Binary auf einem Host erschien. Siehe Amcache-Zeitstempel erklärt für die Langform.
Wofür es tatsächlich gut ist#
Build-Clustering#
Sortieren Sie unsignierte PEs nach LinkDate. Suchen Sie nach 3 bis 10 Binaries, die innerhalb desselben Tages oder derselben Stunde gestempelt wurden. Das ist ein Angreifer, der sein Kit in einer Sitzung kompiliert und es auf einem oder mehreren Hosts ablegt. Starkes Kampagnensignal.
Import-Csv .\HOST_amcache_UnassociatedFileEntries.csv |
Where-Object { $_.IsPeFile -eq 'True' -and -not $_.Publisher } |
Sort-Object LinkDate |
Select LinkDate, Hash, FullPathBYOVD-Erkennung#
Treiber in DriverBinaries.csv mit DriverTimeStamp von vor Jahren, aber KeyLastWriteTimestamp von dieser Woche, haben die klassische BYOVD-Form. Siehe das BYOVD-Glossar.
Build-Prozess-Drift#
„Unsere CI baut immer montags um 03:00. Dieser ist Dienstag um 14:00." Nützlich, um zu erkennen, wann eine interne Build-Pipeline verrückt gespielt oder kompromittiert wurde.
Wofür es nicht gut ist#
- First-Seen-Zeit auf dem Host. Verwenden Sie
KeyLastWriteTimestamp. - Reihenfolge der Ankunft. Zwei Binaries mit demselben
LinkDatekönnen Monate auseinander angekommen sein. - Kryptografische Identität. Viele unzusammenhängende Binaries teilen sich
LinkDate-Werte, besonders null.
Verwandte Begriffe#
Verwandte Beiträge
- Was ist KeyLastWriteTimestamp in Amcache? (Glossar)
Die Registry-Schreibzeit des Amcache-Keys. Das Nächste an 'wann der Appraiser das aufgezeichnet hat'. Das Feld, das neue Analysten am häufigsten mit LinkDate verwechseln.
- Was ist Amcache ProgramId? (Glossar)
ProgramId ist der 44-Zeichen-Anwendungs-Identitätshash, den Amcache speichert. Über Hosts hinweg stabil bei derselben Installation. Erwischt Neukompilierungen und Umbenennungen, wo Hash daneben liegt.
- Was ist Root\InventoryApplicationFile? (Glossar)
Der Hauptschlüssel in Amcache. Ein Unterschlüssel pro PE, das der Appraiser inventarisiert hat, mit Hash, Pfad, Hersteller, Linkdatum und einem Registry-Schreibzeitstempel. Wo 90 % der Analystenzeit verbracht werden.
- Was ist Amcache FileId? (Glossar)
FileId ist '0000' plus der SHA-1 der ersten 31 MiB der Datei. Streifen Sie das Präfix ab, bevor Sie zu VirusTotal gehen, sonst kommt still nichts zurück.