Konkrete Kritik an CVSS4
Marc Ruef
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:
/Author(Marc)
(ohne Whitespaces)/Author (Marc)
(mit Whitespaces)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:
/Author(˜UÎÝ)
(codiertes Beispiel 1)/Author(ýsjü)
(codiertes Beispiel 2)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.
Unsere Spezialisten kontaktieren Sie gern!
Marc Ruef
Marc Ruef
Marc Ruef
Marc Ruef
Unsere Spezialisten kontaktieren Sie gern!