HTTP/2 protokolli haavatavus, mis oli kasutuses suurimas DDoS-rĂŒnnakus

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.

HTTP/2 protokolli haavatavus, mis oli kasutuses suurimas DDoS-rĂŒnnakus

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

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster