Robuste Parser

Bachelor Studiengang IT Security

Dipl.-Ing. Thomas Pipek, BSc

Betreuer: Dipl.-Ing. Dr. Martin Pirker Bakk.

Ausgangslage

Ein großer Anteil von Security-Schwachstellen ist noch immer auf eine ungenügende Überprüfung und Verarbeitung von Eingabedaten zurückzuführen. Die LangSec-Initiative (Language-theoretic Security) beschäftigte sich bisher bereits intensiv mit diesem Problemgebiet.

Eine Kernforschungsrichtung von LangSec ist die Untersuchung, Formulierung und Implementierung von robusten Parsern bei der Verarbeitung von verschiedensten Inputdaten. Die Anwendung dieses Wissens in der praktischen Implementierung von Parsern ist leider jedoch noch nicht Standard.

Ziel

Diese Arbeit untersucht fünf verschiedene Parser Toolkits und deren Eignung zur Implementierung robuster Parser: Nom, Pest, Hammer, Ragel und Nail.

Ein robuster Parser bedeutet in diesem Zusammenhang die praktische Umsetzung einer Parsingaufgabe, unter Berücksichtigung der bisherigen Erkenntnisse der LangSec-Initiative. Die genannten Parser werden in ihren Eigenschaften evaluiert anhand einer prototypischen Implementierungen von JSON (JavaScript Object Notation) und mathematischen Ausdrücken.

Ergebnis

Im Zuge der Arbeit zeigten sich für jeden Parser spezifische Eigenschaften. Basierend auf den in der Arbeit gemachten Erkenntnissen kann somit für spezifische Einsatzzwecke das am besten geeignetste Parsertoolkit ausgewählt werden. Kurz zusammengefasst, als bester generell einsetzbarer robuster Parser wird der in der Programmiersprache Rust geschriebene Parser Nom bewertet. Im Bereich Multilanguage-Unterstützung überzeugt Ragel, während für Robustheit im Parsing und Unparsing Nail die automatische Generierung von passenden Datenstrukturen am besten unterstützt.

Ausblick

Die in dieser Arbeit implementierten Parser in der Programmiersprache Rust geben einen Eindruck was möglich ist, da jedoch Rust (und Parsertoolkits implementiert Rust) sich noch sehr dynamisch weiterentwickeln, ist eine weitere Beobachtung und Beschäftigung mit diesem Themengebiet in Hinblick auf IT Sicherheit angebracht.