Vulnerabilitet në realizimet e protokollit HTTP/2, që lehtëson kryerjen e sulmeve DoS

Është prezantuar një teknikë e re sulmi ndaj implementimeve të protokollit HTTP/2, që thjeshton kryerjen e sulmeve për të shkaktuar një mohimi shërbimi përmes shfrytëzimit të burimeve të serverit. Vulnerabiliteti mori emrin kodor MadeYouReset dhe lejon, përmes manipulimeve të кадrove kontrolluese HTTP/2, të mbushë serverin me një numër të madh kërkeshash duke përjashtuar kufizimet e vendosura.

Thelbi i problemit është se klienti mund të krijojë një numër shumë të madh korresh të përpunuara njëkohësisht, pavarësisht nga kufiri SETTINGS_MAX_CONCURRENT_STREAMS, duke e rifilluar çdo kor tjetër në fazën fillestare. Ky rimarrje çon në faktin që për të dërguar një kërkesë të re në një lidhje të vendosur HTTP/2, klienti nuk ka nevojë të presë përgjigjen nga serverit dhe mund të dërgojë menjëherë një fluks të madh kërkesash të vazhdueshme, sa më shumë lejon kapaciteti i kanalit të komunikimit.

Klienti ndalon së varuri nga vonesat midis dërgimit të kërkesës dhe marrjes së përgjigjes (RTT, koha e kthimit) dhe mund të realizojë një sulm me shpenzime minimale, ndërsa serveri vazhdon të shpenzojë burime për përpunimin e kërkesave që po marrin. Për shembull, serveri bën alokimin e strukturave të dhënash për korret e reja, analizimin e kërkesës, shkarkimin e titujve dhe përputhjen e URL-së me burimin. Në sulmet ndaj proxyve të prapshëm, sulmi mund të përhapet në backend-et, në të cilat proxy-i arrin të redirektojë kërkesën para se ajo të rifillohet.

Vulnerabiliteti i ngjan një problemi të njohur më parë Rapid Reset (CVE-2023-44487) dhe shkaktohet nga një mos përputhje në logjikën e rifillimit të flukseve, të përcaktuar në specifikimin e protokollit HTTP/2 dhe të zbatuar në produktet përfundimtare. Në specifikim është parashikuar mundësia e rifillimit të fluksit nga klienti dhe serveri në çdo moment, por në shumë implementime HTTP/2, pas një rifillimi të tillë, kërkesa vazhdon të përpunohet.serverëve Dallimi kyç i sulmit të ri është se rifillimi i përpunimit të kërkesës bëhet me iniciativën e serverit, dhe jo përmes dërgimit të një кадre nga klienti me flamurin RST_STREAM.

Rifillimi me iniciativën e serverit ndodh kur pranohen kërkesa të papërshtatshme, por këto kërkesa përjashtohen menjëherë pa filluar përpunimin e tyre të plotë dhe pa u dërguar në backend. Për të arritur një cikël të plotë të përpunimit të kërkesës, sulmuesi fillimisht mund të dërgojë një kërkesë HTTP të saktë, por pastaj të dërgojë një sekuencë të papërshtatshme të кадrove kontrolluese HTTP/2. Aktiviteti i tillë do të shkaktojë që serveri të fillojë të përpunojë kërkesën, por pastaj për shkak të një gabimi gjatë përpunimit të кадrove të mëpasshme do të rifillojë fluksin (do ta çojë fluksin me kërkesën e saktë në gjendjen RST_STREAM).

Vulnerabilitet në realizimet e protokollit HTTP/2, që lehtëson kryerjen e sulmeve DoS

Prania e problemit është konfirmuar në serverët HTTP të Apache Tomcat, Netty, Eclipse Jetty, Fastly, varnish, lighttpd, Zephyr RTOS. Problemi shfaqet gjithashtu në faqet e internetit dhe shërbimet serverike të Mozilla. Apache httpd, Apache Traffic Server, Node.js, LiteSpeed dhe HAProxy nuk janë të ekspozuar ndaj këtij problemi. Statusi i pranisë së vulnerabilitetit në nginx nuk është përcaktuar.

Burimi: opennet.ru

Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë 🔥 Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë | ProHoster