HTTP/2 протоколын янз бүрийн хэрэгжилтэд DoS-ийн 8 эмзэг байдал илэрсэн

Netflix болон Google-ийн судлаачид тодорхойлсон HTTP/2 протоколын янз бүрийн хэрэгжүүлэлтүүдэд сүлжээний хүсэлтийн урсгалыг тодорхой аргаар илгээж үйлчилгээ үзүүлэхээс татгалзахад хүргэдэг найман сул тал байдаг. Асуудал нь HTTP/2-г дэмждэг ихэнх HTTP серверүүдэд тодорхой хэмжээгээр нөлөөлж, ажилчдын санах ой дуусч эсвэл CPU-ийн хэт ачаалал үүсгэхэд хүргэдэг. Эмзэг байдлыг арилгах шинэчлэлтүүдийг аль хэдийн танилцуулсан nginx 1.16.1/1.17.3 и H2O 2.2.6, гэхдээ одоохондоо боломжгүй Apache httpd болон бусад бүтээгдэхүүн.

Хоёртын бүтэц, холболт доторх өгөгдлийн урсгалыг хязгаарлах систем, урсгалыг эрэмбэлэх механизм, HTTP/2 холболт дээр ажилладаг ICMP-тэй төстэй хяналтын мессежүүд зэрэгтэй холбоотой HTTP/2 протоколд нэвтрүүлсэн хүндрэлээс үүдэлтэй асуудлууд. түвшин (жишээлбэл, ping, reset болон урсгалын тохиргоо). Олон хэрэгжүүлэлт нь хяналтын мессежийн урсгалыг зохих ёсоор хязгаарлаагүй, хүсэлтийг боловсруулахдаа тэргүүлэх дарааллыг үр дүнтэй удирдаж чадаагүй, эсвэл урсгалын хяналтын алгоритмуудын оновчтой бус хэрэгжилтийг ашигласан.

Тодорхойлсон халдлагын аргуудын ихэнх нь сервер рүү тодорхой хүсэлт илгээж, олон тооны хариу үйлдэл хийхэд хүргэдэг. Хэрэв үйлчлүүлэгч залгуураас өгөгдлийг уншихгүй бөгөөд холболтыг хаагаагүй бол серверийн тал дахь хариу буферийн дараалал тасралтгүй дүүрдэг. Энэ үйлдэл нь сүлжээний холболтыг боловсруулах дарааллын удирдлагын системд ачааллыг бий болгож, хэрэгжүүлэх онцлогоос хамааран санах ой эсвэл CPU-ийн нөөцийг шавхахад хүргэдэг.

Тодорхойлогдсон сул талууд:

  • CVE-2019-9511 (Data Dribble) - халдагчид гулсах цонхны хэмжээ болон урсгалын тэргүүлэх чиглэлийг өөрчилснөөр олон урсгал руу их хэмжээний өгөгдөл хүссэн бөгөөд серверийг өгөгдлийг 1 байт блокуудад дараалалд оруулахыг албаддаг;
  • CVE-2019-9512 (Ping Flood) - халдагчид HTTP/2 холболтоор ping мессежүүдийг тасралтгүй хордуулж, илгээсэн хариултуудын дотоод дарааллыг нөгөө талдаа үерт хүргэдэг;
  • CVE-2019-9513 (Нөөцийн давталт) - халдагчид олон хүсэлтийн хэлхээ үүсгэж, хэлхээний тэргүүлэх чиглэлийг тасралтгүй өөрчилснөөр тэргүүлэх модыг холиход хүргэдэг;
  • CVE-2019-9514 (Үерийг дахин тохируулах) - халдагч олон хэлхээ үүсгэдэг
    мөн урсгал тус бүрээр хүчингүй хүсэлт илгээж, сервер RST_STREAM фреймүүдийг илгээхэд хүргэдэг боловч хариу дарааллыг бөглөхийг хүлээж авдаггүй;

  • CVE-2019-9515 (Тохиргооны үер) - халдагчид хоосон "SETTINGS" фреймийн урсгалыг илгээдэг бөгөөд үүний хариуд сервер хүсэлт бүрийг хүлээн авсан гэдгээ хүлээн зөвшөөрөх ёстой;
  • CVE-2019-9516 (0-Length Headers Leak) – халдагч нь хоосон нэр болон хоосон утгатай толгойн урсгалыг илгээдэг бөгөөд сервер толгой тус бүрийг хадгалахын тулд санах ойд буфер хуваарилж, сесс дуустал үүнийг гаргадаггүй. ;
  • CVE-2019-9517 (Дотоод өгөгдөл буфер) - халдагч нээгдэнэ
    HTTP/2 гүйдэг цонх нь серверт хязгаарлалтгүйгээр өгөгдөл илгээх боломжтой боловч TCP цонхыг хаалттай байлгаж, өгөгдлийг залгуур руу бичихээс сэргийлдэг. Дараа нь халдагчид их хэмжээний хариулт шаарддаг хүсэлтийг илгээдэг;

  • CVE-2019-9518 (Хоосон хүрээний үер) - Халдагчид DATA, HEADERS, CONTINUATION, эсвэл PUSH_PROMISE төрлийн фреймийн урсгалыг илгээдэг боловч хоосон ачаалалтай, урсгалыг зогсоох туг байхгүй. Сервер нь хүрээ тус бүрийг боловсруулахад цаг хугацаа зарцуулдаг бөгөөд энэ нь халдагчийн зарцуулсан зурвасын өргөнтэй үл нийцэх болно.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх