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

Netflixi ja Google'i teadlased tuvastasid on erinevates HTTP/2 protokolli rakendustes tuvastanud kaheksa haavatavust, mis võimaldavad teenuse ümberlülitamist, saates korralikult vormistatud võrgu päringute voogu. Probleemid mõjutavad enamiku HTTP/2 toe pakkuvaid HTTP-servereid, põhjustades töö käigus mäluresursside kahanemist või liiga suurt koormust CPU-le. Haavatavused on juba parandatud versioonides nginx 1.16.1/1.17.3 ja H2O 2.2.6, kuid hetkel puuduvad Apache httpd ja teistes toodetes.

Probleemid tulenevad protokolli HTTP/2 keerukusest, mis on seotud binaarsstruktuuride kasutuselevõtuga, andmevoogude piirangute süsteemiga ühenduste sees, voogude prioriseerimise mehhanismiga ning ICMP-tüüpi kontrollsõnumite olemasoluga, mis toimivad HTTP/2 ühenduse tasemel (nt ping, voogude lähtestamine ja seadistamine). Paljud rakendused ei piiranud korralikult juhtimisvõrgu voogu, korraldasid prioriteetide järjekorra töötlemisel ebaefektiivselt või kasutasid mitteoptimaalseid voogude juhtimise algoritme.

Enamik tuvastatud rünnakute meetodeid põhineb serverisse suunatud eripäringute saatmisel, mis põhjustavad suure hulga vastuste genereerimise. Kui sel ajal klient andmeid soketist ei loe ja ühendust ei katke, täitub serveri vastuste vahemälu pidevalt. Selline käitumine loob koormuse võrguühenduste töötlemise haldussüsteemile ja sõltuvalt rakenduse omadustest võib viia mäluresursside kahanemiseni või CPU ressursside ammendumiseni.

Tuvastatud haavatavused:

  • CVE-2019-9511 (Data Dribble) — ründaja pärib suurt hulka andmeid mitmes voos, manipuleerides libiseva akna suuruse ja voogude prioriteediga, sundides serveri andmeid kuhjama ükshaaval;
  • CVE-2019-9512 (Ping Flood) — ründaja pidevalt saadab ping-sõnumeid HTTP/2 ühenduse kaudu, algatades teisel pool saadetud vastuste sisemise järjekorra täitmise;
  • CVE-2019-9513 (Resource Loop) — ründaja loob mitu päringute voogu ja pidevalt muudab voogude prioriteete, põhjustades prioriteetide puu segunemist;
  • CVE-2019-9514 (Reset Flood) — ründaja loob mitu voogu
    ja saadab igaühe kaudu vale päringu, sundides serverit saatma RST_STREAM kaadreid, kuid ei võta neid vastuste järjekorra täitmiseks;
  • CVE-2019-9515 (Settings Flood) — ründaja saadab tühjade kaadreid 'SETTINGS' voogu, millele server peab igat päringut tunnustama;
  • CVE-2019-9516 (0-Length Headers Leak) — ründaja saadab kaader, millel on null nime ja null väärtusega, samas kui server eraldab iga kaadri salvestamiseks mälu ja ei vabasta seda enne sessiooni lõppu;
  • CVE-2019-9517 (Internal Data Buffering) — ründaja avab
    HTTP/2 libiseva akna, et saata andmeid serverist ilma piiranguteta, kuid hoiab TCP akent suletuna, mis ei võimalda andmeid tegelikult soketisse kirjutada. Seejärel saadab ründaja päringuid, mis vajavad suurt vastust;
  • CVE-2019-9518 (Empty Frames Flood) — ründaja saadab voogu kaadreid tüüpi DATA, HEADERS, CONTINUATION või PUSH_PROMISE, kuid tühja kasuliku sisuga ja ilma voolu lõpetamise liputa. Server kulutab aega iga kaadri töötlemiseks, mis on ebaproportsionaalne ründaja kasutatud ribalaiusega.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster