A HTTP/2 protokoll különféle megvalósításaiban 8 DoS-ágenség került elő

A Netflix és a Google kutatói felfedeztek a HTTP/2 protokoll különféle megvalósításaiban nyolc sebezhetőséget, amelyek lehetővé teszik a szolgáltatásmegtagadást egy meghatározott módon formázott hálózati kérések küldésével. A problémák a legtöbb HTTP/2-t támogató HTTP-szervert érintenek, és a munkafolyamat számára elérhető memória kifogyásához vagy a CPU túlzott terheléséhez vezetnek. A sebezhetőséget kijavító frissítések már elérhetők a nginx 1.16.1/1.17.3 és H2O 2.2.6, de még nem elérhetők az Apache httpd és más termékek számára.

A problémák a HTTP/2 protokollba bevezetett bonyolultságok következményei, amelyek a bináris struktúrák, a kapcsolaton belüli adatok áramlásának korlátozási rendszerének, a folytatások prioritásának mechanizmusának, valamint a kapcsolaton működő ICMP-szerű vezérlő üzenetek (például ping, áramlás visszaállítása és beállítása) használatának következetei. Számos megvalósítás nem korlátozta megfelelően a vezérlő üzenetek áramlását, hatékonyan szervezte meg a prioritási sor kezelését a kérelmek feldolgozása során, vagy nem optimális áramlásirányító algoritmusokat alkalmazott.

A legtöbb észlelt támadási módszer azon alapul, hogy a szerverre meghatározott kéréseket küldenek, amelyek nagyszámú válasz generálásához vezetnek. Ha eközben az ügyfél nem olvassa az adatokat a socketből, és nem bontja a kapcsolatot, a válaszok puffere a szerver oldalán folyamatosan megtelik. Ez a viselkedés terhelést jelent a hálózati kapcsolatok feldolgozásának ütemezésére, és a megvalósítás sajátos jellemzőitől függően a rendelkezésre álló memória vagy CPU erőforrások kimerüléséhez vezethet.

Feltárt sebezhetőségek:

  • CVE-2019-9511 (Data Dribble) — a támadó nagyméretű adatokat kér le több szálon, manipulálva az ablak méretét és a szál prioritását, arra kényszerítve a szervert, hogy az adatokat 1 byte-os blokkban pufferelje;
  • CVE-2019-9512 (Ping Flood) — a támadó folyamatosan ping üzeneteket küld a HTTP/2 kapcsolaton, ezzel a másik oldalon az elküldött válaszok belső pufferének feltöltését idézi elő;
  • CVE-2019-9513 (Erőforrás ciklus) — a támadó több kérés szálat hoz létre, és folyamatosan módosítja a szálak prioritását, így esetlegesen megkeveri a prioritásfát;
  • CVE-2019-9514 (Reset Flood) — a támadó több szálat hoz létre
    és minden szálon hibás kéréseket küld, ami a szerver RST_STREAM képkockákat küld, de nem fogadja el őket a válaszok sorának kitöltésére;
  • CVE-2019-9515 (Beállítási árvíz) — a támadó üres "SETTINGS" képkockákat küld, amelyekre a szerver kötelezve van, hogy megerősítse minden kérés fogadását;
  • CVE-2019-9516 (0-Hosszú fejléc szivárgás) — a támadó nullás névvel és nullás értékkel rendelkező fejlécáramot küld, a szerver pedig minden fejléc tárolásához memóriabuffer képződik, és azt nem szabadítja fel a munkamenet befejezéséig;
  • CVE-2019-9517 (Belső adatok puffere) — a támadó nyit egy
    csúszó HTTP/2 ablakot, hogy a szerver korlátozás nélkül küldjön adatokat, miközben a TCP ablakot zárva tartja, ami megakadályozza, hogy valójában adatokat írjon a socketbe. Ezután a támadó nagy választ igénylő kéréseket küld;
  • CVE-2019-9518 (Üres képkockák árvíz) — a támadó üres hasznos tartalmú DATA, HEADERS, CONTINUATION vagy PUSH_PROMISE típusú képkockákat küld, és a végső áramlási jelzés nélkül. A szerver aránytalan időt tölt el minden képkocka feldolgozásával az támadó sávszélességéhez viszonyítva.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster