PUFFERDOS: Efficient and Effective Attack String Generation for Regular Expression Denial of Service Vulnerabilities
Dieses Paper stellt PUFFERDOS vor, ein neuartiges Tool, das praktische und effektive ReDoS-Angriffsstrings generiert, indem es Eingaben basierend auf drei formal verifizierten verwundbaren Mustern synthetisiert und diese durch kompositorische konkolische Ausführung verfeinert, um die Praxistauglichkeit innerhalb realistischer Längenbudgets sicherzustellen.
Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
Stellen Sie sich vor, Sie haben einen sehr intelligenten, aber leicht zwanghaften Sicherheitswachmann an der Tür eines Gebäudes. Seine Aufgabe ist es zu prüfen, ob Ihr Ausweis (der Input) einem bestimmten Muster (dem regulären Ausdruck oder „Regex“) entspricht. Normalerweise ist das schnell und einfach.
Aber es gibt einen Trick. Wenn Sie dem Wachmann einen sehr spezifischen, verwirrenden Ausweis geben, bleibt sein Gehirn in einer Endlosschleife stecken. Er beginnt, jeden einzelnen möglichen Weg zu prüfen, auf dem Ihr Ausweis dem Muster entsprechen könnte, immer und immer wieder, bis er seine Energie aufgebraucht hat und ohnmächtig wird. Das nennt man einen ReDoS-Angriff (Regular Expression Denial of Service). Es ist, als würde man einen Taschenrechner dazu bringen, unendlich lange mathematische Aufgaben zu lösen, sodass er einfriert.
Lange Zeit haben Sicherheitsforscher versucht, diese Fallen zu finden und spezielle „Test-Ausweise“ zu erstellen, um zu beweisen, dass der Wachmann eine Schwachstelle hat. Die alten Methoden hatten jedoch zwei große Probleme:
- Die Ausweise waren zu lang: Sie erforderten Eingaben, die so riesig waren (wie ein ganzes Buch voller Text), dass keine echte Website sie jemals akzeptieren würde.
- Sie passten nicht zum Gebäude: Sie testeten den Wachmann isoliert und ignorierten dabei, dass in einem echten Gebäude andere Wachmänner (Filter) vorhanden sind, die Ihren Ausweis stoppen könnten, noch bevor er die Haupttür erreicht.
Hier kommt PUFFERDOS ins Spiel. Betrachten Sie PUFFERDOS als einen Meister-Schlüsseldienst, der nicht nur das Schloss knackt, sondern genau herausfindet, wie man durch das gesamte Gebäude bis zum Schloss gelangt, indem man den kürzesten und effizientesten Schlüssel verwendet.
So funktioniert PUFFERDOS, aufgeschlüsselt in einfache Schritte:
1. Die „Stopppunkt“-Strategie (Den Wachmann härter arbeiten lassen)
Die Forscher erkannten, dass man nicht nur irgendein verwirrendes Muster braucht, um den Wachmann zum Einfrieren zu bringen; man braucht ein Muster, bei dem der Wachmann extrem kleine, ineffiziente Schritte machen muss.
- Die Analogie: Stellen Sie sich vor, der Wachmann geht einen Flur entlang. Wenn man ihn dazu bringt, bei jedem einzelnen Zentimeter anzuhalten, um den Boden zu prüfen, wird er schnell müde. Wenn er nur alle 3 Meter anhält, wird er langsamer müde.
- Die Lösung: PUFFERDOS erstellt „Schlüssel“ (Angriff-Strings), die den Wachmann zwingen, bei jedem winzigen Zentimeter anzuhalten. Dies geschieht durch die sorgfältige Auswahl spezifischer Zeichen und deren Anordnung, sodass der Wachmann so oft wie möglich zurückversetzen muss (backtracking/zurückgehen und erneut prüfen). Dadurch ist der Angriff tausendfach schneller als bisherige Methoden, da er denselben „Einfrier-Effekt“ mit einem viel kürzeren Schlüssel erreicht.
2. Die drei „Fallen“-Muster
Das Team entdeckte, dass die meisten defekten Schlösser drei spezifische Formen haben. PUFFERDOS hat für jede ein spezielles Rezept:
- Die Ein-Schleifen-Falle (One-Loop Trap): Ein einzelnes Muster, das auf mehrere verwirrende Arten gelesen werden kann. PUFFERDOS wählt das kürzeste, verwirrendste Zeichen, das sich wiederholt.
- Die Zwei-Schleifen-Falle (Two-Loop Trap): Zwei Muster nebeneinander, die beide dasselbe Zeichen lesen können. PUFFERDOS nutzt ein Zeichen, das beide Muster lesen können, was dazu führt, dass sie darüber streiten, wer dieses Zeichen verarbeiten darf.
- Die Multi-Schleifen-Falle (Multi-Loop Trap): Eine lange Kette von Mustern. PUFFERDOS baut einen Schlüssel, der den Wachmann zwingt, jedes Glied in der Kette einzeln zu prüfen.
3. Der „Real-World“-Durchgang (Concolic Execution)
Dies ist der wichtigste Teil. Alte Tools testeten das Schloss nur im Vakuum. PUFFERDOS simuliert das gesamte Gebäude.
- Die Analogie: Stellen Sie sich vor, Sie haben einen Schlüssel, der eine Tür öffnet, aber die Tür befindet sich hinter einem Sicherheitscheck, einem Empfang und einem Labyrinth. Alte Tools zeigten Ihnen nur, dass der Schlüssel für die Tür funktioniert. PUFFERDOS geht mit Ihnen durch das Labyrinth, prüft, ob der Empfang Sie passieren lässt, und stellt sicher, dass Sie die Tür tatsächlich erreichen.
- Die Methode: Es nutzt eine Technik namens „kompositionale koncolische Ausführung“ (compositional concolic execution). Denken Sie an dies als eine Zusammenfassung der Karte. Anstatt jeden einzelnen Schritt des Gebäudes jedes Mal neu zu gehen, erstellt PUFFERDOS für jeden Raum (Funktion) einen „Spickzettel“. Es fragt: „Wenn ich diesem Raum einen verwirrenden Schlüssel gebe, leitet er ihn an den nächsten Raum weiter oder wirft er ihn weg?“
- Durch die Verwendung dieser Spickzettel kann PUFFERDOS schnell herausfinden, ob ein kurzer, effizienter Schlüssel tatsächlich das verwundbare Schloss in einem echten Programm erreicht oder ob er durch einen Filter früher im Prozess blockiert wird.
Die Ergebnisse
Das Team hat PUFFERDOS an tausenden realen Programmen und bekannten Sicherheitslücken (CVEs) getestet.
- Geschwindigkeit: Es generierte Angriff-Strings, die 97- bis 3.800-mal effizienter waren als das bisher beste Tool. Es konnte ein System mit einem winzigen String einfrieren, anstatt mit einem massiven.
- Erfolgsquote: Es konnte 96,8 % der bekannten Sicherheitslücken reproduzieren (im Vergleich zu 77,4 % beim alten Tool).
- Neue Entdeckungen: Als sie PUFFERDOS an 12 populären, realen Softwareprojekten testeten, fanden sie 59 neue, bisher unbekannte Sicherheitslücken, die die alten Tools übersehen hatten, weil diese keine realistischen, kurzen Angriffe generieren konnten, um zu beweisen, dass die Schwachstelle tatsächlich existiert.
Kurz gesagt: PUFFERDOS ist eine intelligentere, praktischere Methode, um zu finden und zu beweisen, dass ein Computersystem durch ein verwirrendes Muster eingefroren werden kann. Es findet nicht nur das Schloss; es findet den kürzesten, realistischsten Schlüssel, um es zu blockieren, und beweist damit, dass die Gefahr real ist und behoben werden muss.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.