HTTP/2 protokolunun müxtəlif tətbiqlərində 8 DoS zəifliyi müəyyən edilmişdir

Netflix və Google tədqiqatçıları ortaya qoydu HTTP/2 protokolunun müxtəlif tətbiqlərində müəyyən bir şəkildə şəbəkə sorğuları axını göndərməklə xidmətdən imtinaya səbəb ola biləcək səkkiz boşluq var. Problem müəyyən dərəcədə HTTP/2 dəstəyi olan əksər HTTP serverlərinə təsir edir və işçinin yaddaşının tükənməsinə və ya çox CPU yüklənməsinə səbəb olur. Zəiflikləri aradan qaldıran yeniləmələr artıq təqdim olunur nginx 1.16.1/1.17.3 и H2O 2.2.6, amma hələlik mövcud deyil Apache üçün httpd və digər məhsullar.

Problemlər ikili strukturların istifadəsi, bağlantılar daxilində məlumat axınının məhdudlaşdırılması sistemi, axının prioritetləşdirilməsi mexanizmi və HTTP/2 bağlantısında işləyən ICMP kimi idarəetmə mesajlarının olması ilə bağlı HTTP/2 protokoluna daxil edilən çətinliklərdən irəli gəlirdi. səviyyə (məsələn, ping, sıfırlama və axın parametrləri). Bir çox tətbiqetmələr nəzarət mesajlarının axınını lazımi şəkildə məhdudlaşdırmayıb, sorğuları emal edərkən prioritet növbəni səmərəli idarə etməyib və ya axına nəzarət alqoritmlərinin suboptimal tətbiqlərindən istifadə edib.

Müəyyən edilmiş hücum üsullarının əksəriyyəti serverə müəyyən sorğuların göndərilməsi ilə nəticələnir və çoxlu sayda cavabların yaranmasına səbəb olur. Müştəri rozetkadan məlumatları oxumursa və əlaqəni bağlamazsa, server tərəfindəki cavab buferləmə növbəsi davamlı olaraq doldurulur. Bu davranış şəbəkə əlaqələrini emal etmək üçün növbə idarəetmə sisteminə yük yaradır və icra xüsusiyyətlərindən asılı olaraq mövcud yaddaşın və ya CPU resurslarının tükənməsinə gətirib çıxarır.

Müəyyən edilmiş zəifliklər:

  • CVE-2019-9511 (Data Dribble) - təcavüzkar sürüşmə pəncərəsinin ölçüsünü və mövzu prioritetini manipulyasiya edərək, serveri məlumatları 1 baytlıq bloklarda növbəyə qoymağa məcbur edərək, bir neçə başlıqda çoxlu məlumat tələb edir;
  • CVE-2019-9512 (Ping Flood) - təcavüzkar HTTP/2 bağlantısı üzərindən davamlı olaraq ping mesajlarını zəhərləyir, bu da göndərilən cavabların daxili növbəsinin digər tərəfdən daşqın olmasına səbəb olur;
  • CVE-2019-9513 (Resurs Döngəsi) - təcavüzkar çoxsaylı sorğu başlığı yaradır və mövzuların prioritetini davamlı olaraq dəyişdirərək prioritet ağacının qarışdırılmasına səbəb olur;
  • CVE-2019-9514 (Sıfırla Flood) - təcavüzkar çoxlu başlıq yaradır
    və hər bir başlıq vasitəsilə etibarsız sorğu göndərir, bu da serverin RST_STREAM çərçivələrini göndərməsinə səbəb olur, lakin cavab növbəsini doldurmaq üçün onları qəbul etmir;

  • CVE-2019-9515 (Settings Flood) - təcavüzkar boş “SETTINGS” çərçivələri axını göndərir, buna cavab olaraq server hər sorğunun qəbulunu təsdiq etməlidir;
  • CVE-2019-9516 (0-Length Headers Leak) – təcavüzkar sıfır adı və sıfır dəyəri olan başlıqlar axını göndərir və server hər başlığı saxlamaq üçün yaddaşda bufer ayırır və sessiya bitənə qədər onu buraxmır. ;
  • CVE-2019-9517 (Daxili Məlumat Buferləmə) - təcavüzkar açılır
    Serverin məhdudiyyətsiz məlumat göndərməsi üçün HTTP/2 sürüşmə pəncərəsi, lakin TCP pəncərəsini qapalı saxlayır və məlumatların həqiqətən rozetkaya yazılmasının qarşısını alır. Sonra, təcavüzkar böyük cavab tələb edən sorğular göndərir;

  • CVE-2019-9518 (Empty Frames Flood) - Təcavüzkar DATA, HEADERS, CONTINUATION və ya PUSH_PROMISE tipli kadrlar axını göndərir, lakin boş faydalı yüklə və axını dayandırma işarəsi yoxdur. Server, təcavüzkarın istehlak etdiyi bant genişliyinə qeyri-mütənasib olaraq hər bir çərçivəni emal etməyə vaxt sərf edir.

Mənbə: opennet.ru

Добавить комментарий