Viele Server im Web wurden seit Mitte 2023 Opfer einer neuen DDoS-Attacke mit dem Namen Rapid Reset. Diese nutzt eine Schwachstelle im HTTP/2-Protokoll aus, durch die sich die Anzahl der Aufrufe vervielfachen lässt.
Große Betreiber von Clouddiensten wie Amazon, Google oder Cloudflare berichten von einer starken Zunahme von DDoS-Attacken (Distributed Denial of Service). Google schreibt zum Beispiel in einem Beitrag vom Oktober 2023, dass sich die Anzahl der DDoS-Attacken in den letzten Jahren exponentiell entwickelt habe. Im August 2023 habe es dann einen noch größeren Angriff gegeben, der die bisher größte Attacke aus dem Vorjahr um das 7,5-fache übertroffen habe. In der Spitze habe es einen Wert von 398 Millionen Requests pro Sekunde gegeben. Dies sei auf Grundlage einer Technik mit dem Namen “Rapid Reset” geschehen, die auf dem HTTP/2-Protokoll basiere.
Ihr Security- und Wartungsspezialist im DataCenter
DDoS-Attacken haben das Ziel, Websites und Services, die mit dem und über das Internet kommunizieren, zu stören und ihre Erreichbarkeit zu beeinträchtigen. Dazu werden sehr viele sinnlose Anfragen an die Server gesendet, was deren Kapazitäten übersteigt. Die Folgen von DDoS-Attacken können gravierend sein und die Existenz von Unternehmen gefährden.
Rapid Reset nutzt HTTP/2-Feature
Bei Rapid Reset wird ein Feature des HTTP/2-Protokolls genutzt: das Stream Multiplexing. In HTTP/2 kommen sogenannte Streams zum Einsatz. Damit werden verschiedene Nachrichten zwischen den Endpunkten übermittelt, die sogenannten Frames. Beim Stream Multiplexing wird eine bessere Ausnutzung einer TCP-Verbindung ermöglicht. Stream Multiplexing ermöglicht es den Clients, verschiedene In-Flight-Requests zu stellen, ohne dabei einzelne Verbindungen verwalten zu müssen.
Angreifer versenden verschiedene Requests innerhalb eines Streams, resetten diesen Stream dann und brechen die Anfrage ab. Dabei bleibt allerdings die Verbindung offen. Der Server beginnt mit der Verarbeitung der Anfragen, beendet diese aber aufgrund des Abbruchs. Dabei fällt die Zahl der Anfragen nicht unter das Limit. Dadurch ist es möglich, eine riesige Anzahl von Anfragen hintereinander abzusenden.
Theoretisch ist die maximale Anzahl von offenen Streams im Server konfigurierbar, aber im täglichen Gebrauch kann ein Client bis zu 100 Streams öffnen, die vom Server parallel bearbeitet werden.
Im HTTP/2-Protokoll kann der Client dem Server mitteilen, dass ein vorheriger Stream durch das Senden eines RST_STREAM Frames abgebrochen werden soll. Dabei muss es zu keiner Abstimmung zwischen Client und Server kommen, so dass der Client den Abbruch einseitig initiieren kann. Der Name “Rapid Reset” stammt daher, dass ein Endpunkt einen RST_STREAM direkt nach dem Senden eines Request Frames senden kann. Der andere Endpunkt beginnt mit der Arbeit, worauf es zu einem direkten Reset des Requests kommt. Damit wird zwar der Request abgebrochen, die HTTP/2-Verbindung jedoch bleibt offen.
Die Grundlage des Rapid Resets liegt nun darin, dass durch das schnelle Abbrechen der Requests niemals die maximale Anzahl der offenen Streams erreicht wird. Dadurch kann in jeder Verbindung eine unbegrenzte Zahl von Requests erzeugt werden. Dabei wird die Zahl der In-Flight-Requests nicht mehr von der Round-Trip Zeit (RTT) begrenzt, sondern lediglich von der verfügbaren Bandbreite des Netzes.
Die Angreifer setzen hier auf eine asymmetrische Verteilung der Verarbeitungskosten zwischen Client und Server: Während das Stellen der Requests auf der Seite des Clients so gut wie keine Kosten erzeugt, muss der Server selbst für abgebrochene Requests verschiedene Arbeiten erledigen wie zum Beispiel das Bereitstellen neuer Datenstrukturen für den Stream, das Parsen des Requests, das Entpacken des Headers und das Zuordnen von URLs zu Ressourcen.
Ein weiterer Vorteil für potentielle Angreifer ist, dass durch das ausdrückliche Abbrechen von Requests direkt nach deren Erzeugung keine Möglichkeit für den Reverse Proxy für eine Antwort besteht. Durch den Abbruch der Requests vor dem Erstellen einer Antwort reduziert sich die Downlink-Bandbreite vom Server bzw vom Proxy zum Angreifer.
Wie kann man sich vor Rapid Reset Attacken schützen?
Es gibt eine Reihe von Maßnahmen, welche die Wahrscheinlichkeit von Rapid Reset-Attacken oder anderen DDoS-Angriffen senken oder deren Auswirkungen reduzieren können. Dazu gehören:
Rechtzeitige Identifikation von Schwachstellen
Regelmäßige Wartung und Server-Updates sowie proaktive Tests können dazu beitragen, Schwachstellen in der Infrastruktur frühzeitig zu erkennen und zu beheben.
Umfassendes Monitoring und Alerting
Ein lückenloses Monitoring und ein promptes und abgestuftes Alerting stellen sicher, dass im Fall eines Angriffs schnell reagiert werden kann. Monitoring und Alerting sollten regelmäßig im Rahmen von Tests geprüft werden.
Einspielen aktueller Patches und Updates
Wenn die verwendete Software auf dem neuesten Stand ist, sorgt das dafür, dass Patches und Fixes zum Schutz vor Sicherheitslücken rechtzeitig verfügbar sind, so dass potentielle Angreifer keine Chance haben, Schwachstellen auszunutzen.
Nutzen von abgesicherter Cloud-Infrastruktur
Cloud-Anbieter wie Amazon, Microsoft, Akamai oder Cloudflare haben frühzeitig Maßnahmen gegen Rapid Reset-Attacken getroffen und sorgen dafür, dass die Wahrscheinlichkeit erfolgreicher Angriffe gering ist. So kann zum Beispiel die Nutzung eines abgesicherten CDNs für zusätzlichen Schutz sorgen.