Google registreeris oma infrastruktuuri vastu suurima DDoS-rĂŒnnaku, mille intensiivsus oli 398 miljonit pĂ€ringut sekundis. Uus rĂŒnnak ĂŒletab intensiivsuses eelmise rekordilise DDoS-rĂŒnnaku seitsme korra, mille kĂ€igus Ă”nnestus kĂŒberkurjategijatel genereerida 47 miljonit pĂ€ringut sekundis. VĂ”rdluseks, kogu veebiliiklus hinnatakse 1-3 miljardi pĂ€ringu tasemel sekundis. Peale Google'i sattusid rĂŒnnaku alla ka ettevĂ”tted Amazon ja Cloudflare. Uue rĂŒnnaku vĂ”imalus on seotud HTTP/2 protokollis tuvastatud haavatavusega (CVE-2023-44487), mis vĂ”imaldab kliendi minimaalsete koormuste korral suunata serverile tohutuid pĂ€ringute vooge.
Uue rĂŒnnaku tehnikat nimetatakse âRapid Resetâ ja see kasutab Ă€ra HTTP/2 protokollis olemasolevaid kanalite paljususe vahendeid, mis vĂ”imaldavad genereerida pĂ€ringute voogu juba loodud ĂŒhenduse raames, ilma et oleks vaja avada uusi vĂ”rguĂŒhendusi ja mitte oodata pakettide kĂ€tte saamise kinnitusest. Haavatavust kĂ€sitletakse kui HTTP/2 protokolli puudujÀÀgi tagajĂ€rge, mille spetsifikatsioonis on öeldud, et kui proovida avada liiga suurt arvu vooge, tuleks tĂŒhistada ainult need, mis ĂŒletavad piirangut, kuid mitte sulgeda kogu vĂ”rguĂŒhendust.
Sarnaselt varasematele HTTP/2 rĂŒnnaku meetoditele tekib uues rĂŒnnakus samuti suur hulk vooge ĂŒhe ĂŒhenduse raames. Uue rĂŒnnaku vĂ”tmeerinevus on see, et iga saadetud pĂ€ringu jĂ€rel saadetakse kohe RST_STREAM lipuga raami, mis tĂŒhistab pĂ€ringu. PĂ€ringu tĂŒhistamine varases etapis aitab vĂ€ltida tagasiliikuvate andmete teed kliendile ja mööduda HTTP-serveritel esinevatest piirangutest, mis kehtivad samaaegselt avatud voogude maksimaalsest arvust HTTP/2 raames. Seega ei sĂ”ltu uues rĂŒnnakus HTTP-serverile suunatud pĂ€ringute maht enam pĂ€ringu saatmise ja vastuse vastuvĂ”tmise vaheajast (RTT, round-trip time), vaid sĂ”ltub ainult sidekanali lĂ€bilaskevĂ”imest.

Kuna kliendi poolel rĂŒnnakuks piisab lihtsalt pĂ€ringute saatmisest, ilma vastuseid saamata, saab rĂŒnnakut teostada minimaalsete kuludega. NĂ€iteks Cloudflare'i poolt fikseeritud rĂŒnnak 201 miljoni pĂ€ringu sekundis viidi lĂ€bi suhteliselt vĂ€ikese 20 000 arvuti botneti abil. Kliendi poolel serverilt kulu saabuvate pĂ€ringute töötlemiseks on oluliselt suurem, vaatamata nende tĂŒhistamisele, kuna tuleb teostada selliseid toiminguid nagu andmestruktuuride eraldamine uute voogude jaoks, pĂ€ringu analĂŒĂŒs, pealkirja lahtipakkimine ja URL-i vastavus ressurssidega. Tagasi pööratud prokside rĂŒndamisel vĂ”ib rĂŒnnak levida tagapaneelidele, kuna proksi vĂ”ib jĂ”uda suunata pĂ€ringu tagapaneelile enne RST_STREAM'i raami töötlemist.
RĂŒnnakut saab teostada ainult haavatavatele serveritele, mis toetavad HTTP/2 (skripti kontrollimiseks, haavatavuste kinnitamiseks, rĂŒnnaku teostamiseks). Hetkel pole HTTP/3 rĂŒnnakute kohta mingeid fikseerimisi ja nende teostamise vĂ”imalust pole tĂ€ielikult analĂŒĂŒsitud, kuid Google'i esindajad soovitavad arendajatel serverid lisada HTTP/3 rakendustesse kaitsemeetmed, mis on sarnased HTTP/2 rĂŒnnakute blokeerimiseks rakendatutele.
Haavatavus ja paranduste olemasolu HTTP-serverite ja prokside jaoks:
- nginx (teade, selgitus, et haavatavus ei avaldu tĂ€ielikult nginxis vaikimisi konfiguratsioonis, kuna rĂŒnnak pĂ”rkub ĂŒhenduse pĂ€ringute arvu piiranguga (drt. pĂ€rast iga 1000 pĂ€ringut ĂŒhendus katkestatakse). Parandusse on lisatud tĂ€iendav kaitse pĂ€ringute intensiivsuse piiramiseks direktiivi âlimit_reqâ kaudu).
- HAProxy-s on efektiivne kaitse HTTP/2 voogude arvu ĂŒletamise vastu lisatud juba 2018. aastal ja see kehtib alates versioonist 1.9-dev.
- Apache httpd (tekitatakse teatav koormus httpd-le, kuid see ei laiene tagapaneelidele ja piiratakse alates 2016. aastast kehtivate klientide ĂŒhenduse piirangutega).
- mod_h2 Apache httpd jaoks.
- caddy
- envoy
- golang (probleem lahendatud Go vÀljaannetes 1.21.3 ja 1.20.10).
- h2o (patĆĄ).
- grpc-go
- hyper (haavatavus ei avaldu).
- jetty (parandatud versioonides 12.0.2, 11.0.17, 10.0.17 ja 9.4.53.v20231009).
- netty
- nghttp2 (parandatud versioonis 1.57.0).
- Facebook proxygen
- .NET ja ASP.NET Core (haavatavuseks on ASP.NET Core Kestrel http-server).
- Node.js
- proxygen
- swift-nio-http2 (parandatud versioonis 1.28.0).
- Apache Tomcat (parandatud versioonides 11.0.0-M12, 10.1.14, 9.0.81, 8.5.94).
- Apache Traffic Server (parandatud versioonis 9.2.x).
Allikas: opennet.ru
