Von der Theorie zur Praxis
Race Conditions sind nicht nur ein theoretisches Problem aus Lehrbüchern. Immer wieder sorgen sie in der Praxis für erhebliche Schäden – von doppelten Banküberweisungen bis hin zu Millionenverlusten in E-Commerce-Systemen. Besonders spannend: Viele der bekanntesten Fälle wurden in Bug-Bounty-Programmen entdeckt, was zeigt, wie real und aktuell das Problem ist.
Beispiel 1: Banking – doppelte Überweisungen
Ein Klassiker ist die Race Condition bei Banktransaktionen.
Ablauf:
- Nutzer gibt eine Überweisung ein.
- Server prüft Guthaben.
- Server bucht Überweisung ab.
Angreifer senden zwei Überweisungen gleichzeitig:
- Beide Prüfungen sehen Guthaben als „ausreichend“.
- Beide Transaktionen werden ausgeführt.
- Guthaben wird erst danach angepasst.
Ergebnis: Geld wird doppelt überwiesen.
Einige Banken mussten Bug-Bounty-Huntern hohe Summen zahlen, weil sie so eine Schwachstelle aufgedeckt hatten.
Beispiel 2: Gutscheine im E-Commerce
Viele Online-Shops erlauben Rabattcodes.
Unsicheres Design:
- Server prüft, ob der Gutschein gültig ist.
- Danach wird er als „verbraucht“ markiert.
Angreifer senden mehrere Requests gleichzeitig:
- Alle sehen den Gutschein als „gültig“.
- Rabatt wird mehrfach gewährt.
So konnten Bug-Bounty-Forscher mehrfach kostenlose Bestellungen aufgeben – ein realer Fall, der mit fünfstelligen Prämien belohnt wurde.
Beispiel 3: Gaming und Belohnungssysteme
Auch Spiele und Apps sind betroffen.
Beispiel:
- Spieler klickt auf „Belohnung abholen“.
- Server prüft, ob die Belohnung verfügbar ist.
- Danach wird sie markiert.
Mit parallelen Requests können Angreifer dieselbe Belohnung mehrfach einlösen – oft mit massiven Auswirkungen auf die Spielökonomie.
Beispiel 4: Cloud und APIs
Race Conditions treten häufig in verteilten Systemen auf:
- Mehrere API-Instanzen verarbeiten Anfragen parallel.
- Synchronisation zwischen Datenbanken dauert Millisekunden.
Beispiel: Ein Cloud-Anbieter bietet ein kostenloses Testguthaben von 10 €.
Angreifer senden hunderte gleichzeitige Requests:
- Jeder Request prüft, ob Guthaben noch verfügbar ist.
- Guthaben wird mehrfach gewährt.
- Ergebnis: Angreifer erhält hunderte Euro an Cloud-Ressourcen.
Bekannte Vorfälle und Reports
- Shopify Bug Bounty: Mehrere Race Conditions führten dazu, dass Bestellungen doppelt verarbeitet wurden. Belohnung: über 10.000 $.
- PayPal Bug Bounty: Forscher entdeckten eine Race Condition im Gutschein-System. Belohnung: 15.000 $.
- Gaming-App Reports: Angreifer vervielfachten In-App-Käufe durch gleichzeitige Requests.
Warum Race Conditions oft übersehen werden
- Schwer zu reproduzieren: Tritt nur auf, wenn Requests gleichzeitig eintreffen.
- Kaum automatisierbar: Standard-Schwachstellenscanner erkennen sie nicht.
- Design-Fehler: Entwickler gehen vom „normalen“ Ablauf aus – nicht vom gleichzeitigen Missbrauch.
Was du mitnehmen solltest
- Race Conditions führen in der Praxis zu echten Schäden: doppelten Zahlungen, mehrfachen Gutscheinen, Gratis-Ressourcen.
- Sie sind beliebt im Bug-Bounty-Bereich, weil sie hohe Prämien bringen.
- Besonders gefährdet: Banking, E-Commerce, Gaming, Cloud & APIs.
- Das Problem ist subtil – normale Tests entdecken es oft nicht.
Im nächsten Teil schauen wir uns an, wie man sich schützt: Best Practices gegen Race Conditions – von Locking-Mechanismen über Idempotenz bis hin zu Monitoring.
Schreibe einen Kommentar