SÄrbarhet i HTTP/2-protokollet, som anvÀndes i den största DDoS-attacken

Google har registrerat den största DDoS-attacken mot sin infrastruktur, med en intensitet pÄ 398 miljoner förfrÄgningar per sekund. Den nya attacken övertrÀffar den tidigare rekorddömda DDoS-attacken med sju gÄnger intensitet, dÀr angripare lyckades generera en ström av 47 miljoner förfrÄgningar per sekund. Som jÀmförelse uppskattas den totala trafiken pÄ hela webben ligga pÄ 1-3 miljarder förfrÄgningar per sekund. Förutom Google drabbades Àven företagen Amazon och Cloudflare av attacken. Möjligheten till en ny attack Àr kopplad till en sÄrbarhet som upptÀckts i HTTP/2-protokollet (CVE-2023-44487), vilket möjliggör att en stor mÀngd förfrÄgningar kan riktas mot servern med minimal belastning pÄ klienten.

Den nya attacktekniken har fÄtt namnet "Rapid Reset" och utnyttjar de multiplexeringsverktyg som tillhandahÄlls i HTTP/2, vilket gör det möjligt att skapa en ström av förfrÄgningar inom ett redan etablerat samband, utan att behöva öppna nya nÀtverkskopplingar och utan att vÀnta pÄ bekrÀftelse pÄ att paket har mottagits. SÄrbarheten ses som en följd av brister i HTTP/2-protokollet, dÀr det anges att nÀr man försöker öppna ett för stort antal flöden, ska endast de flöden som överstiger grÀnsen avslutas, men inte den totala nÀtverkskopplingen.

I likhet med tidigare anvÀnda metoder för attack pÄ HTTP/2 skapas Àven i den nya attacken ett stort antal flöden inom en och samma koppling. En avgörande skillnad med den nya attacken Àr att istÀllet för att vÀnta pÄ svar skickas ett ram med RST_STREAM-flaggan omedelbart efter varje skickad förfrÄgan, vilket omedelbart avbryter förfrÄgan. Att avbryta förfrÄgan i ett tidigt skede gör det möjligt att eliminera den omgivande trafiken mot klienten och kringgÄ de begrÀnsningar som finns pÄ HTTP-servrar rörande det maximala antalet flöden som kan vara öppna inom en och samma HTTP/2-koppling. SÄledes slutar mÀngden förfrÄgningar som riktas till HTTP-servern i den nya attacken att bero pÄ fördröjningar mellan avsÀndning av förfrÄgningar och mottagande av svar (RTT, round-trip time) och beror endast pÄ den tillgÀngliga bandbredden.

SÄrbarhet i HTTP/2-protokollet, som anvÀndes i den största DDoS-attacken

Eftersom det rÀcker med att skicka förfrÄgningar utan att fÄ svar för att genomföra en attack pÄ klientsidan, kan attacken utföras med minimala overheadkostnader. Ett exempel Àr en attack upptÀckt av företaget Cloudflare, som hade 201 miljoner förfrÄgningar per sekund och genomfördes med hjÀlp av en relativt liten botnÀt med 20 000 datorer. PÄ serversidan servern Àr kostnaderna för att bearbeta de inkommande förfrÄgningarna betydligt högre, trots att de annulleras, eftersom det Àr nödvÀndigt att utföra operationer som att allokera datakonstruktioner för nya flöden, parsa förfrÄgan, packa upp rubriken och matcha URL med resursen. Vid attacker mot omvÀnda proxyer kan attacken sprida sig till baksidan, eftersom proxy kan hinna omdirigera förfrÄgan till baksidan före behandlingen av RST_STREAM-ramen.

Attacken kan endast genomföras mot sÄrbara servrar som stöder HTTP/2 (ett skript för att kontrollera sÄrbarheten i servrar, verktyg för att genomföra attacken). För HTTP/3 har inga attacker registrerats Àn och möjligheten att genomföra dem har Ànnu inte analyserats, men representanter frÄn Google rekommenderar utvecklare servrar att inkludera skyddsÄtgÀrder i implementeringarna av HTTP/3, liknande de som införts för att blockera attacker mot HTTP/2.

SÄrbarhet och tillgÄng till korrigeringar för HTTP-servrar och proxyer:

  • nginx (meddelande, förklaring av att sĂ„rbarheten inte fullt ut manifesterar sig i nginx med standardkonfiguration, eftersom attacken kommer att nĂ„ grĂ€nsen för antalet förfrĂ„gningar per förbindelse (d.v.s. efter varje 1000 förfrĂ„gningar kommer förbindelsen att avbrytas). Denna korrigering inkluderade ytterligare skydd mot överdrivna förfrĂ„gningar via direktivet "limit_req").
  • I HAProxy lades effektivt skydd mot överskridande av grĂ€nsen för antal HTTP/2-strömmar till i 2018 och trĂ€der i kraft frĂ„n version 1.9-dev.
  • Apache httpd (en viss belastning skapas pĂ„ httpd, men den sprider sig inte till baksidan och begrĂ€nsas av de gĂ€llande begrĂ€nsningarna för klientanslutningar som trĂ€dde i kraft 2016).
  • mod_h2 för Apache httpd.
  • caddy
  • envoy
  • golang (problemet Ă€r löst i utgĂ„vorna Go 1.21.3 och 1.20.10).
  • h2o (patch).
  • grpc-go
  • hyper (sĂ„rbarheten manifesterar sig inte).
  • jetty (fixat i 12.0.2, 11.0.17, 10.0.17 och 9.4.53.v20231009).
  • netty
  • nghttp2 (fixat i version 1.57.0).
  • Facebook proxygen
  • .NET och ASP.NET Core (sĂ„rbarheterna gĂ€ller http-servern ASP.NET Core Kestrel).
  • Node.js
  • proxygen
  • swift-nio-http2 (fixat i version 1.28.0).
  • Apache Tomcat (Ă„tgĂ€rdad i versionerna 11.0.0-M12, 10.1.14, 9.0.81, 8.5.94).
  • Apache Traffic Server (Ă„tgĂ€rdad i grenen 9.2.x).

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster