PUFFERDOS: Efficient and Effective Attack String Generation for Regular Expression Denial of Service Vulnerabilities
Dit artikel introduceert PUFFERDOS, een nieuwe tool die praktische en effectieve ReDoS-attack strings genereert door inputs te synthetiseren op basis van drie formeel geverifieerde kwetsbare patronen en deze te verfijnen via compositionele concolische executie om exploitatie in de echte wereld binnen realistische lengtebudgetten te waarborgen.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
Stel je voor dat je een zeer slimme, maar licht obsessieve beveiliger hebt bij de deur van een gebouw. Zijn taak is om te controleren of jouw ID-kaart (de input) overeenkomt met een specifief patroon (de reguliere expressie, of "regex"). Meestal gaat dit snel en gemakkelijk.
Maar, er is een truc. Als je de bewaker een heel specifieke, verwarrende ID-kaart geeft, raakt zijn brein in een loop. Hij begint elke mogelijke manier te controleren waarop jouw ID zou kunnen voldoen aan het patroon, keer op keer, totdat hij zijn energie verbruikt heeft en flauwvalt. Dit wordt een ReDoS-aanval genoemd (Regular Expression Denial of Service). Het is alsof je een rekenmachine probeert te misleiden om eeuwig met wiskunde bezig te zijn, zodat deze vastloopt.
Lange tijd hebben beveiligingsonderzoekers geprobeerd deze vallen te vinden en "test-ID's" te maken om te bewijzen dat de bewaker defect is. Echter, de oude methoden hadden twee grote problemen:
- De ID's waren te lang: Ze vereisten inputs die zo enorm waren (zoals een boek vol tekst) dat geen enkele echte website ze ooit zou accepteren.
- Ze pasten niet bij het gebouw: Ze testten de bewaker in isolatie, waarbij ze negeerden dat er in een echt gebouw andere bewakers (filters) zijn die jouw ID al tegenhouden voordat deze de hoofdingang bereikt.
Ontmoet PUFFERDOS. Denk aan PUFFERDOS als een meester-slotenmaker die niet alleen het slot kraakt, maar ook precies uitzoekt hoe ze door het hele gebouw naar het slot kunnen lopen, met de kortste, meest efficiënte sleutel mogelijk.
Hier is hoe PUFFERDOS werkt, onderverdeeld in eenvoudige stappen:
1. De "Stop Punt" Strategie (Maak de bewaker harder werken)
De onderzoekers realiseerden zich dat je om de bewaker te laten bevriezen niet zomaar een verwarrend patroon nodig hebt; je hebt een patroon nodig waarbij de bewaker kleine, inefficiënte stappen moet zetten.
- De Analogie: Stel je voor dat de bewaker door een gang loopt. Als je hem dwingt om bij elke centimeter te stoppen om de vloer te controleren, wordt hij snel moe. Als hij alleen elke 10 voet stopt, wordt hij langzamer moe.
- De Oplossing: PUFFERDOS creëert "sleutels" (attack strings) die de bewaker dwingen om bij elke kleine centimeter te stoppen. Dit doet het door zorgvuldig specifieke tekens te kiezen en deze zo te rangschikken dat de bewaker zo vaak mogelijk moet terugkeren (backtracken/teruggaan om opnieuw te controleren). Dit maakt de aanval duizenden keren sneller dan eerdere methoden, omdat het hetzelfde "bevries"-effect bereikt met een veel kortere sleutel.
2. De Drie "Val" Patronen
Het team ontdekte dat de meeste kapotte sloten in drie specifieke vormen vallen. PUFFERDOS heeft een speciaal recept voor elk van de drie:
- De Eén-Loop Val: Een enkel patroon dat op meerdere verwarrende manieren gelezen kan worden. PUFFERDOS kiest het kortste, meest verwarrende teken om te herhalen.
- De Twee-Loop Val: Twee patronen naast elkaar die beide hetzelfde teken kunnen lezen. PUFFERDOS gebruikt een teken dat beide patronen kunnen lezen, waardoor ze ruzie krijgen over wie het teken mag verwerken.
- De Multi-Loop Val: Een lange keten van patronen. PUFFERDOS bouwt een sleutel die de bewaker dwingt om elke schakel in de keten afzonderlijk te controleren.
3. De "Real-World" Doorloop (Concolic Execution)
Dit is het belangrijkste deel. Oude tools testten het slot in een vacuüm. PUFFERDOS simuleert het volledige gebouw.
- De Analogie: Stel je voor dat je een sleutel hebt die een deur opent, maar de deur bevindt zich achter een controlepost, een receptionist en een doolhof. Oude tools lieten je alleen zien dat de sleutel werkt op de deur. PUFFERDOS loopt je door het doolhof, controleert of de receptionist je doorlaat, en zorgt ervoor dat je de deur daadwerkelijk bereikt.
- De Methode: Het gebruikt een techniek genaamd "compositional concolic execution". Denk aan dit als een samenvatting van een kaart. In plaats van elke stap in het gebouw telkens opnieuw te bewandelen, maakt PUFFERDOS een "spiekbriefje" voor elke kamer (functie) in het gebouw. Het vraagt: "Als ik deze kamer een verwarrende sleutel geef, geeft deze de sleutel dan door aan de volgende kamer, of gooit deze de sleutel weg?"
- Door deze spiekbriefjes te gebruiken, kan PUFFERDOS snel uitzoeken of een korte, efficiënte sleutel daadwerkelijk de kwetsbare lock in een echt programma zal bereiken, of dat deze eerder in het proces door een filter wordt tegengehouden.
De Resultaten
Het team heeft PUFFERDOS getest op duizenden echte programma's en bekende beveiligingslekken (CVE's).
- Snelheid: Het genereerde aanval-strings die 97 tot 3.800 keer efficiënter waren dan de vorige beste tool. Het kon een systeem laten bevriezen met een minuscule string in plaats van een enorme string.
- Succespercentage: Het reproduceerde succesvol 96,8% van de bekende beveiligingslekken (vergeleken met 77,4% voor de oude tool).
- Nieuwe Ontdekkingen: Wanneer ze PUFFERDOS testten op 12 populaire, real-world softwareprojecten, vonden ze 59 nieuwe, voorheen onbekende beveiligingslekken die de oude tools misten omdat die oude tools niet in staat waren om een realistische, korte genoeg aanval te genereren om te bewijzen dat de kwetsbaarheid bestond.
Kortom: PUFFERDOS is een slimmere, meer praktische manier om te vinden en te bewijzen dat een computersysteem kan worden bevroren door een verwarrend patroon. Het vindt niet alleen het slot; het vindt de kortste, meest realistische sleutel om het te blokkeren, waarmee wordt bewezen dat het gevaar echt is en opgelost moet worden.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.