Dobësi në protokollin HTTP/2, e shfrytëzuar në sulmin më të madh DDoS

Kompania Google ka regjistruar sulmin më të madh DDoS në infrastrukturën e saj, me një intensitet prej 398 milion kërkesash në sekondë. Sulmi i ri është 7 herë më intensiv se sulmi rekord i kaluar DDoS, ku sulmuesit arritën të formonin një rrjedhë prej 47 milion kërkesash në sekondë. Për të bërë një krahasim, gjithë trafiku në të gjithë Web-in vlerësohet nga 1-3 miliard kërkesash në sekondë. Përveç Google, sulmit iu nënshtruan gjithashtu kompanitë Amazon dhe Cloudflare. Mundësia e realizimit të një sulmi të ri është e lidhur me zbulimin e një dobësie në protokollin HTTP/2 (CVE-2023-44487), që lejon që me një ngarkesë minimale nga klienti të dërgohet një rrjedhë e madhe kërkesash në server.

Teknika e re e sulmit është emërtuar «Rapid Reset» dhe përfiton nga mjetet e ofruara në HTTP/2 për multipleximin e kanaleve të komunikimit, duke lejuar formimin e një rrjedhe kërkesash brenda një lidhjeje tashmë të vendosur, pa hapur lidhje të reja rrjetesh dhe pa pritur konfirmimin e pranimit të paketave. Dobësia konsiderohet si pasojë e papërsosmërisë së protokollit HTTP/2, në specifikimin e të cilit thuhet se kur përpiqesh të hapësh një numër shumë të madh të rrjedhave, duhet të anulohet vetëm rrjedhat që kalojnë kufirin, por jo të mbyllet e gjithë lidhja e rrjetit.

Si me metodat e mëparshme të sulmeve në HTTP/2, në sulmin e ri gjithashtu krijohet një numër i madh rrjedhash brenda një lidhjeje. Dallimi kryesor i sulmit të ri është se, në vend të pritjes për një përgjigje pas çdo kërkese të dërguar, dërgohet një kadër me flamurin RST_STREAM, që menjëherë anulon kërkesën. Anulimi i kërkesës në një fazë të hershme lejon që të eliminohet trafiku në drejtim të klientit dhe të anashkalohet kufizimet e pranishme në serverët HTTP për numrin maksimale të rrjedhave, të hapura njëkohësisht brenda një lidhjeje në HTTP/2. Kështu, në sulmin e ri, volumi i kërkesave të dërguara në serverin HTTP nuk varet më nga vonesat midis dërgimit të kërkesës dhe pranimit të përgjigjes (RTT, koha e kthimit) dhe kufizohet vetëm në kapacitetin e kanalit të komunikimit.

Dobësi në protokollin HTTP/2, e shfrytëzuar në sulmin më të madh DDoS

Pasi për të kryer një sulm nga ana e klientit, mjafton të dërgosh kërkesa pa marrë përgjigje, kështu që sulmi mund të kryhet me shpenzime minimale. Për shembull, një sulm i regjistruar nga kompanitë Cloudflare me 201 milion kërkesa në sekondë u realizua me një botnet relativisht të vogël prej 20 mijë kompjuterësh. Nga ana tjetër, serverë kostot për përpunimin e kërkesave që mbërrijnë janë ndjeshëm më të larta, pavarësisht se ato anulohen, pasi nevojitet të kryhen operacione të tilla si ndarja e strukturave të të dhënave për rrjedhat e reja, analiza e kërkesës, shpërbërja e titullit dhe përputhja e URL me burimin. Në një sulm ndaj proxy-ve të prapambetur, sulmi mund të përhapet në backend, pasi proxy mund të arrijë të redirectojë kërkesën në backend para se të përpunojë kornizën RST_STREAM.

Sulmi mund të kryhet vetëm ndaj serverëve të cenueshëm që mbështesin HTTP/2 (skedari për kontrollimin e shfaqjes së cenueshmërisë në servera, mjetet për kryerjen e sulmit). Për HTTP/3 nuk janë regjistruar akoma sulme dhe mundësia e kryerjes së tyre nuk është analizuar plotësisht, por përfaqësuesit e Google rekomandojnë zhvilluesve serverësh të shtojnë në implementimet e HTTP/3 masa mbrojtëse, të ngjashme me ato të zbatuara për bllokimin e sulmeve ndaj HTTP/2.

Cenueshmëria dhe disponueshmëria e rregullimeve për serverat dhe proxy-t HTTP:

  • nginx (njoftim, shpjegim se cenueshmĂ«ria nuk shfaqet plotĂ«sisht nĂ« ngjyrĂ«n e konfigurimit standard nĂ« nginx, pasi sulmi do tĂ« hasĂ« limitin e numrit tĂ« kĂ«rkesave pĂ«r lidhje (pra, pas çdo 1000 kĂ«rkesash, lidhja do tĂ« rimbushĂ«). NĂ« rregullim Ă«shtĂ« shtuar njĂ« mbrojtje e mĂ«tejshme pĂ«r kufizimin e intensitetit tĂ« kĂ«rkesave pĂ«rmes direktivĂ«s "limit_req").
  • NĂ« HAProxy mbrojtja efektive ndaj tejkalimit tĂ« limitit pĂ«r numrin e rrjedhave HTTP/2 Ă«shtĂ« shtuar qĂ« nĂ« vitin 2018 dhe Ă«shtĂ« efektive duke filluar nga versioni 1.9-dev.
  • Apache httpd (krijohet njĂ« ngarkesĂ« e caktuar nĂ« httpd, por ajo nuk shtrihet nĂ« backend dhe Ă«shtĂ« e kufizuar nga limitet aktive qĂ« nga viti 2016 pĂ«r lidhjet e klientĂ«ve).
  • mod_h2 pĂ«r Apache httpd.
  • caddy
  • envoy
  • golang (problemi Ă«shtĂ« zgjidhur nĂ« lĂ«shimet Go 1.21.3 dhe 1.20.10).
  • h2o (patch).
  • grpc-go
  • hyper (cenueshmĂ«ria nuk shfaqet).
  • jetty (e rregulluar nĂ« 12.0.2, 11.0.17, 10.0.17 dhe 9.4.53.v20231009).
  • netty
  • nghttp2 (e rregulluar nĂ« versionin 1.57.0).
  • Facebook proxygen
  • .NET dhe ASP.NET Core (cenueshmĂ«ria Ă«shtĂ« pĂ«r serverin http tĂ« ASP.NET Core Kestrel).
  • Node.js
  • proxygen
  • swift-nio-http2 (e rregulluar nĂ« versionin 1.28.0).
  • Apache Tomcat (korrigjuar nĂ« versionet 11.0.0-M12, 10.1.14, 9.0.81, 8.5.94).
  • Apache Traffic Server (korrigjuar nĂ« degĂ«n 9.2.x).

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster