Tatort Internet: PDF mit Zeitbombe

Thomas schickt mir was zu "NTFS Internals" – technische Details zur Implementierung des Windows-Dateisystems. Woher weiß der denn, dass das schon seit einiger Zeit auf meiner Todo-Liste steht? Hab ich vielleicht beim Mittagessen erwähnt. Neugierig geworden, öffne ich die angehängte PDF-Datei.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 17 Min.
Von
  • Thorsten Holz
Inhaltsverzeichnis

Noch bevor ich den ersten Absatz fertig gelesen habe, schließt sich der Adobe Reader wie von Geisterhand. Ein bisschen schläfrig klicke ich ein zweites Mal auf den Dateianhang und das Spiel wiederholt sich: Erst öffnet sich ein Text im Adobe Reader und nach ein paar Sekunden verschwindet das Fenster ohne weiteres Zutun wieder.

Auf den ersten Blick sah die Datei tatsächlich aus, als ob sie was zu NTFS erzählen wollte.

Das ist mehr als merkwürdig, ich bin schlagartig wach und schaue mir die Mail noch einmal genauer an. Was soll das förmliche „Grüße, T. Gibbs“ am Ende? Thomas verabschiedet sich doch sonst immer mit „Ciao Thomas“. Die erweiterte Ansicht der Header-Zeilen verrät mir den Transportweg der Mail:

Received from 113.112.141.166  

Sie wurde also ganz offensichtlich nicht von einem unserer internen Systeme, sondern von einem Rechner in Asien verschickt. Damit ist die Sache eigentlich klar: Der Absender ist gefälscht und die PDF-Datei vermutlich ein Versuch, meinen Rechner zu infizieren. Aber hat das jetzt funktioniert oder nicht?

Natürlich könnte ich einfach das System-Image zurückspielen, das ich erst gestern erstellt habe. Das dauert höchstens 30 Minuten und danach könnte ich die Reisekostenabrechnung machen, die die Buchhaltung schon letzte Woche angemahnt hat. Okay – die Entscheidung ist gefallen – ich werd die PDF-Datei analysieren.

Zunächst muss ich meine Kenntnisse über das PDF-Format etwas auffrischen. Ich erinnere mich noch dunkel, dass ein PDF-Dokument aus verschiedenen Objekten zusammengesetzt ist, die eine Baumstruktur bilden. Jedes Objekt beschreibt dabei einen Aspekt des Dokuments, beispielsweise ist der Inhalt einer Seite in einem Objekt abgespeichert und die Informationen zur Schriftart und -größe in einem anderen.

Der Plan ist damit also, die einzelnen Objekte der verdächtigen Datei zu analysieren, um genauer zu verstehen, was hier vor sich geht. Bevor ich die Datei im Text-Editor öffne, hole ich schon mal Sid Stuarts O’Reilly-Buch „PDF Hacks“ aus dem Regal.

PDF-Dokumente haben eine baumartige Struktur.

Wordpad zeigt am Anfang die charakteristische Zeichenkette „%PDF-1.4“, es handelt sich also definitiv um eine PDF-Datei. Die PDF-Basics sind einfach und gut zu erkennen. Die einzelnen Objekte innerhalb eines PDF-Dokuments haben die Struktur:

$nr $version obj
object
endobj

obj und endobj sind feste Trennzeichen zwischen den Objekten. Die sind dann via $nr durchnummeriert. Die Versionsnummer hingegen ist meistens 0, da die Dokumente nur eine Version eines Objekts enthalten.

Der Aufbau des eigentlichen Objekts hängt von dessen Typ ab. Typischerweise werden innerhalb eines sogenannten Dictionaires – ausgezeichnet durch << und >> – die Parameter des Objekts beschrieben. Am Anfang steht meist eine Art Inhaltsverzeichnis mit /Type /Catalog – so auch bei meinen angeblichen NTFS-Interna:

1 0 obj
<<
/Type /Catalog
/Outlines 3 0 R
/Pages 4 0 R
...
/ViewerPreferences
<<
/PageDirection /L2R
>>
>>
endobj

Es besteht im Wesentlichen aus Verweisen der Form $i $j R. Objekt drei ist angeblich eine Art Inhaltsübersicht, die eigentlichen Seiten folgen als /Pages. Gegen Ende werden noch ein paar Eigenschaften des Dokuments wie die Leserichtung L2R, also „left to right“, festgelegt. So weit, so langweilig. Da hätte ich auch gleich meine Reisekosten machen können.

Objekt zwei bringt mehr Verwaltungskram, der mich in meinem Verdacht bestätigt:

/Creator (Scribus 1.3.3.13)
/Producer (Scribus PDF Library 1.3.3.13)
...
/CreationDate (D:20090811124352)
/ModDate (D:20090811124352)

So sehr ich Open Source schätze – es ist eher unwahrscheinlich, dass jemand seine Kenntnisse über NTFS mit dem Layout-Programm Scribus setzt, um es dann in PDF-Form zu bringen. Ich blättere weiter nach unten und dann wird’s endlich spannend.

Mehr Infos

Die im Text dieses Artikels auftauchenden Code-Fragmente können dazu führen, dass Ihr Virenwächter Alarm schlägt. Dabei handelt es sich dann um einen Fehlalarm.