HTTP/2 protokolli erinevates rakendustes on tuvastatud 8 DoS-i haavatavust

Netflixi ja Google'i teadlased tuvastatud HTTP/2-protokolli erinevates rakendustes on kaheksa haavatavust, mis võivad teatud viisil võrgupäringute voogu saates põhjustada teenuse keelamise. Probleem mõjutab mingil määral enamikku HTTP/2 toega HTTP-servereid ja selle tulemuseks on see, et töötajal saab mälust tühjaks või tekib liiga palju protsessorikoormust. Värskendused, mis kõrvaldavad haavatavused, on juba esitatud nginx 1.16.1/1.17.3 и H2O 2.2.6, aga praegu kättesaamatu Apache httpd ja jaoks muud tooted.

Probleemid tulenevad HTTP/2-protokolli lisatud komplikatsioonidest, mis on seotud binaarstruktuuride kasutamisega, ühendustesisese andmevoo piiramise süsteemiga, voogude prioritiseerimise mehhanismiga ja ICMP-laadsete juhtsõnumite olemasoluga, mis töötavad HTTP/2 ühendusel. tasemel (näiteks pingi, lähtestamise ja voo seaded). Paljud rakendused ei piiranud õigesti juhtsõnumite voogu, ei haldanud tõhusalt prioriteetsete järjekorda taotluste töötlemisel või kasutasid voojuhtimisalgoritmide suboptimaalseid rakendusi.

Enamik tuvastatud ründemeetodeid taandub teatud päringute saatmisele serverisse, mis toob kaasa suure hulga vastuste genereerimise. Kui klient ei loe pesast andmeid ega sulge ühendust, täitub serveripoolne vastuste puhverdusjärjekord pidevalt. Selline käitumine koormab võrguühenduste töötlemise järjekorrahaldussüsteemi ja põhjustab olenevalt rakendusfunktsioonidest vaba mälu või protsessori ressursside ammendumise.

Tuvastatud haavatavused:

  • CVE-2019-9511 (Data Dribble) – ründaja taotleb suurel hulgal andmeid mitmesse lõime, manipuleerides libiseva akna suuruse ja lõime prioriteediga, sundides serverit andmeid 1-baidistes plokkides järjekorda seadma;
  • CVE-2019-9512 (Ping Flood) – ründaja mürgitab HTTP/2-ühenduse kaudu pidevalt ping-sõnumeid, põhjustades saadetud vastuste sisemise järjekorra üleujutuse teisel poolel;
  • CVE-2019-9513 (Ressursisilmus) – ründaja loob mitu päringulõime ja muudab pidevalt lõimede prioriteeti, põhjustades prioriteetide puu segamise;
  • CVE-2019-9514 (Reset Flood) – ründaja loob mitu lõime
    ja saadab iga lõime kaudu kehtetu päringu, mille tõttu server saadab RST_STREAM kaadreid, kuid ei aktsepteeri neid vastusejärjekorra täitmiseks;

  • CVE-2019-9515 (Settings Flood) - ründaja saadab tühjade "SETTINGS" kaadrite voo, millele vastuseks peab server iga päringu kättesaamist kinnitama;
  • CVE-2019-9516 (0-Length Headers Leak) – ründaja saadab nullnime ja nullväärtusega päiste voo ning server eraldab iga päise salvestamiseks mällu puhvri ja ei vabasta seda enne seansi lõppu ;
  • CVE-2019-9517 (sisemine andmepuhverdus) – ründaja avaneb
    HTTP/2 libistatav aken serveri jaoks andmete piiranguteta saatmiseks, kuid hoiab TCP-akna suletuna, takistades andmete tegelikku pesasse kirjutamist. Järgmisena saadab ründaja päringuid, mis nõuavad suurt vastust;

  • CVE-2019-9518 (Tühjade kaadrite üleujutus) – ründaja saadab kaadrite voo, mille tüüp on DATA, HEADERS, CONTINUATION või PUSH_PROMISE, kuid tühja kasuliku koormuse ja ilma voo lõpetamise liputa. Server kulutab iga kaadri töötlemisele aega, mis on ebaproportsionaalne ründaja tarbitava ribalaiusega.

Allikas: opennet.ru

Lisa kommentaar