PDF Document Properties - Probleme beim Parsing

PDF Document Properties

Probleme beim Parsing

Marc Ruef
by Marc Ruef
time to read: 5 minutes

Im Rahmen des Postings Automatisiertes Document Properties Profiling haben wir darüber berichtet, inwiefern das Auswerten der Document Properties öffentlicher Dokumente umgesetzt werden kann. Dabei wurde sich auf die Formate Word (doc), Excel (xls) und Acrobat (pdf) fokussiert.

Um die dort genannten Prozesse zu optimieren, haben wir uns um die Erstellung eines eigenen PDF-Parsers bemüht. Dieser liest das jeweilige Dokument ein und versucht die gewünschten Daten zu extrahieren. Hierbei sind unterschiedliche Schwierigkeiten, die mit gewissem Aufwand überwindbar sind, aufgetaucht.

Key Typ Version Optional Wert
Title Text PDF 1.1 Optional Titel des Dokuments
Author Text Optional Name des Autors, welcher das Dokument erstellt hat
Subject Text PDF 1.1 Optional Thema des Dokuments
Keywords Text PDF 1.1 Optional Mit dem Dokument assoziierte Schlüsselwörter
Creator Text Optional Name des Programms, welches das Originaldokument erstellt hat (z.B. Word)
Producer Text Optional Name des Programms, welches die PDF-Konversion vorgenommen hat
CreationDate Date Optional Datum und Uhrzeit, an dem das Dokument erstellt wurde
ModDate Date Erforderlich falls PieceInfo gesetzt Datum und Uhrzeit, an dem das Dokument zuletzt geändert wurde

Traditionell wird im Document Information Dictionary (Document management - Portable document format, Part 1: PDF 1.7) optional der Tag /Author() verwendet, um den Autor auszuweisen (siehe Tabelle). Der in runden klammern definierte Wert entspricht dem Autor. Hierbei kann nach Belieben mit Whitespaces gearbeitet werden, was ein Parsing erschwert. Nachfolgend wird eine simple Version ohne Whitespaces und danach eine mit zusätzlichen Leerzeichen dargestellt:

Desweiteren können bei PDF-Dokumenten Kompressionen/Verschlüsselungen zum Einsatz kommen. Der in /Author() abgelegte Wert ist sodann codiert. Dabei ist eine codierte Zeichenkette stets so lang wie der Ursprungstext. Zwei codierte Zeichenketten sind jedoch nicht identisch:

Hinzu kommt, dass in neueren Dokumentspezifikationen Tags der Form <pdf:Author>Marc</pdf:Author> verwendet werden. Bisweilen konnten wir keine Whitespace-Awareness beim Parsing beobachten. Wahrscheinlich deswegen, weil sämtliche Zeichen zwischen den Tags als Wert aufgefasst und dargestellt werden.

About the Author

Marc Ruef

Marc Ruef has been working in information security since the late 1990s. He is well-known for his many publications and books. The last one called The Art of Penetration Testing is discussing security testing in detail. He is a lecturer at several universities, like ETH, HWZ, HSLU and IKF. (ORCID 0000-0002-1328-6357)

Links

You need support in such a project?

Our experts will get in contact with you!

×
Data Markets

Data Markets

Marc Ruef

Password Leak Analysis

Password Leak Analysis

Marc Ruef

MITRE ATT&CK

MITRE ATT&CK

Marc Ruef

You want more?

Further articles available here

You need support in such a project?

Our experts will get in contact with you!

You want more?

Further articles available here