Netflix және Google зерттеушілері HTTP/2 протоколының әртүрлі іске асыруларында сегіз осалдық бар, олар желілік сұраулардың арнайы жасалған ағынын жіберу арқылы қызмет көрсетуден бас тартуға мүмкіндік береді. Бұл мәселелер HTTP/2 қосылған HTTP серверлерінің көпшілігіне әртүрлі дәрежеде әсер етеді және жұмыс процесі үшін қолжетімді жадтың таусылуына немесе процессордың шамадан тыс жүктелуіне әкеледі. Осалдықтарды жоюға арналған жаңартулар қазірдің өзінде шығарылды. и , бірақ әзірге Apache httpd үшін және .
Мәселелер HTTP/2 хаттамасына енгізілген қиындықтардан туындады, оның ішінде екілік құрылымдарды пайдалану, қосылымдардағы деректер ағынын шектеу жүйесі, ағынның басымдылық механизмі және HTTP/2 қосылым деңгейінде жұмыс істейтін ICMP тәрізді басқару хабарламаларының болуы (мысалы, пинг, қалпына келтіру және ағынды орнату операциялары). Көптеген енгізулер басқару хабарламаларының ағынын дұрыс шектемеді, сұрауларды өңдеу кезінде басым кезекті тиімсіз басқарды немесе ағынды басқару алгоритмдерінің оңтайлы емес іске асыруларын пайдаланды.
Анықталған шабуыл әдістерінің көпшілігі жауаптардың көп санын құрайтын серверге арнайы сұрауларды жіберуді қамтиды. Егер клиент розеткадан деректерді оқымаса және қосылымды жаппаса, сервер тарапынан жауап буферлеу кезегі үздіксіз толтырылады. Бұл әрекет желіге қосылу кезегін басқару жүйесіне ауыртпалық түсіреді және іске асыруға байланысты қол жетімді жадтың немесе процессор ресурстарының таусылуына әкеледі.
Анықталған осалдықтар:
- CVE-2019-9511 (Data Dribble) - шабуылдаушы серверді деректерді 1 байт блоктарда кезекке қоюға мәжбүрлей отырып, сырғымалы терезе өлшемін және ағын басымдылығын өңдеу арқылы бірнеше ағындар бойынша деректердің үлкен көлемін сұрайды;
- CVE-2019-9512 (Ping Flood) - Шабуылшы HTTP/2 қосылымы арқылы пинг хабарларын үздіксіз улап, екінші тараптың жіберілген жауаптардың ішкі кезегін толтырады;
- CVE-2019-9513 (ресурс циклі) - шабуылдаушы бірнеше сұрау ағындарын жасайды және ағын басымдылығын үздіксіз өзгертіп, басымдық тармағын шатастыруға әкеледі.
- CVE-2019-9514 (Тасқынды қалпына келтіру) – шабуылдаушы бірнеше ағын жасайды
және сервердің RST_STREAM кадрларын жіберуіне себеп болатын әрбір ағын арқылы жарамсыз сұрауды жібереді, бірақ оларды жауап кезегін толтыру үшін қабылдамайды; - CVE-2019-9515 (Settings Flood) - шабуылдаушы бос "SETTINGS" кадрлар ағынын жібереді, оған жауап ретінде сервер әрбір сұраудың қабылданғанын растауы қажет;
- CVE-2019-9516 (0-Length Headers Leak) - шабуылдаушы нөлдік атауы және нөлдік мәні бар тақырыптар ағынын жібереді және сервер әрбір тақырыпты сақтау үшін жадта буфер бөледі және оны сеанс аяқталғанша босатпайды;
- CVE-2019-9517 (ішкі деректерді буферлеу) - шабуылдаушы ашылады
HTTP/2 серверге шексіз деректерді жіберуге мүмкіндік беру үшін сырғымалы терезені пайдаланады, бірақ ол сонымен қатар деректердің ұяшыққа жазылуына жол бермей, TCP терезесін жабық күйде ұстайды. Содан кейін шабуылдаушы үлкен жауапты талап ететін сұрауларды жібереді; - CVE-2019-9518 (бос кадр тасқыны) – шабуылдаушы DATA, HEADERS, CONTINUATION немесе PUSH_PROMISE түрлерінің кадрлар ағынын жібереді, бірақ бос пайдалы жүктеме және ағынды тоқтату жалаушасы жоқ. Сервер шабуылдаушының өткізу қабілеттілігін тұтынуына сәйкес келмейтін әрбір кадрды өңдеуге уақыт жұмсайды.
Ақпарат көзі: opennet.ru
