Wprowadzony w 2015 r. HTTP/2 przyniósł szereg usprawnień do protokołu HTTP, w tym efektywną transmisję danych, obsługę zapytań, responsywność oraz kompresję nagłówków dla transakcji informacyjnych opartych na stronach internetowych. Jednak oprócz tych ulepszeń, HTTP/2 przyniósł także własny, unikalny zestaw wyzwań dla administratorów i zespołów bezpieczeństwa.

Obecnie badacze ogłosili odkrycie nowego exploitu związanego z HTTP/2, który może być wykorzystany do przeprowadzenia ataków odmowy usługi (DoS) przeciwko podatnym celom.

HTTP/2 na celowniku hakerów

W raporcie z The Hacker News badacz bezpieczeństwa Bartek Nowotarski został wymieniony jako osoba, która zgłosiła problem do Centrum Koordynacji Zespołu Reagowania na Sytuacje Awaryjne w Komputerach (CERT) Carnegie Mellon dokładnie 25 stycznia.

Podatność, znana jako HTTP/2 CONTINUATION Flood, wykorzystuje nieprawidłowo skonfigurowane implementacje HTTP/2, które nie ograniczają ani nie dezynfekują ramek CONTINUATION w strumieniu danych zapytań.

Sprawdź: Jak złamać hasło do WiFi

Ramki CONTINUATION są metodą używaną do kontynuowania sekwencji fragmentów bloku nagłówka, pozwalając na podział bloków nagłówków na wiele ramek. Poprzednio sfragmentowany blok nagłówka jest uznawany za zakończony, gdy serwer otrzyma określoną flagę END_HEADERS, wskazującą, że nie ma dalszych ramek CONTINUATION ani innych ramek.

Implementacje HTTP/2 są podatne na atak, gdy implementacja nie ogranicza ilości ramek CONTINUATION, które mogą być wysłane w pojedynczym strumieniu danych.
Jak duże jest zagrożenie?

Jeśli atakujący rozpocznie żądanie HTTP do podatnego serwera bez ustawionych flag END_HEADERS, żądanie to pozwoli atakującemu na wysyłanie ciągłego strumienia ramek CONTINUATION do tego serwera, ostatecznie powodując awarię z powodu braku pamięci i skutkując udanym atakiem odmowy usługi (DoS).

CERT również wspomniał o innej wariacji podatności, która wykorzystuje ramki CONTINUATION kodowane Huffmana HPACK, powodując wyczerpanie zasobów CPU, co również skutkuje udanym atakiem DoS.

Według Nowotarskiego pojedyncza maszyna, a nawet pojedyncze połączenie, ma potencjał zakłócenia dostępności serwera — z konsekwencjami wahającymi się od awarii do degradacji wydajności.

W przeciwieństwie do rozproszonego ataku odmowy usługi (DDoS), który tworzy duże botnety, aby przytłoczyć sieci przez ogromną ilość ruchu, atak DoS może tworzyć fałszywy ruch internetowy przy użyciu pojedynczego urządzenia, zalewając połączenie protokołu kontrolnego transmisji (TCP) żądaniami zaprojektowanymi, aby wyczerpać zasoby docelowego serwera.

Stworzono kilka rekordów Common Vulnerability and Exposure (CVE) związanych z nową podatnością. Administratorzy dotkniętych serwerów powinni zaktualizować oprogramowanie wymienione w CVE-ach do najnowszej wersji, aby zminimalizować potencjalne zagrożenia związane z CONTINUATION. Jeśli poprawka nie jest dostępna, administratorzy są zachęcani do tymczasowego wyłączenia HTTP/2 na dotkniętych serwerach.

Co to jest HTTP/2?

HTTP/2 jest główną rewizją protokołu HTTP, używanego przez internet do przesyłania danych między serwerem internetowym a przeglądarką. Został zatwierdzony jako standard w maju 2015 r. przez Internet Engineering Task Force (IETF) jako RFC 7540. Protokół ten wprowadza wiele ulepszeń w porównaniu do swojego poprzednika, HTTP/1.1, mających na celu poprawę wydajności i bezpieczeństwa przesyłania danych. Oto niektóre z kluczowych cech i korzyści płynących z HTTP/2:

Wielokrotne strumienie danych

HTTP/2 wprowadza koncepcję wielokrotnego strumieniowania danych w ramach jednego połączenia TCP, co oznacza, że wiele zapytań i odpowiedzi między klientem a serwerem może być przesyłanych jednocześnie, bez konieczności oczekiwania na zakończenie poprzedniego zapytania. To redukuje opóźnienia i poprawia szybkość ładowania stron internetowych.

Kompresja nagłówków

Nagłówki HTTP są kompresowane za pomocą algorytmu HPACK, co zmniejsza rozmiar nagłówków przesyłanych między klientem a serwerem. Dzięki temu zmniejsza się całkowity rozmiar przesyłanych danych, co jest szczególnie korzystne na wolniejszych połączeniach internetowych.

Priorytetyzacja zapytań

HTTP/2 pozwala na ustalenie priorytetów dla poszczególnych zapytań, co oznacza, że ważniejsze zasoby (na przykład elementy krytyczne dla wyświetlenia strony) mogą być przesyłane i przetwarzane przed mniej ważnymi. To pozwala na szybsze ładowanie najważniejszych elementów strony.

Serwer Push

Serwer ma możliwość “pchnięcia” zasobów do przeglądarki jeszcze przed, gdy przeglądarka zdąży o nie poprosić. To oznacza, że serwer może wysłać pliki CSS, JavaScript, czy obrazy, które będzie potrzebowała strona do poprawnego wyświetlenia, bez konieczności oczekiwania na zapytanie o te zasoby ze strony klienta.

Bezpieczeństwo

Choć HTTP/2 sam w sobie nie wymaga użycia szyfrowania, w praktyce niemal wszystkie implementacje używają protokołu TLS (Transport Layer Security) do szyfrowania danych przesyłanych między klientem a serwerem. To zwiększa bezpieczeństwo przesyłanych danych.

Implementacja i wsparcie

HTTP/2 jest szeroko wspierany przez nowoczesne przeglądarki internetowe i serwery. Większość dużych serwisów internetowych korzysta z HTTP/2, aby zapewnić użytkownikom szybsze i bezpieczniejsze przeglądanie stron.

HTTP/2 przynosi więc znaczące ulepszenia w efektywności, wydajności i bezpieczeństwie w porównaniu do HTTP/1.1, co przekłada się na lepsze doświadczenia użytkownika podczas przeglądania internetu.

Co to jest HTTP/2? Wyjaśnienie na wideo (j. angielski):

Czytaj też:

Poradnik: Brak ID dzwoniącego
Uważaj na: Jennifer Lawrence nago
Sprawdź: telefon na podsłuchu – objawy

Dziękujemy, że przeczytałaś/eś nasz artykuł. Obserwuj Vault-Tech.pl w Wiadomościach Google, aby być na bieżąco.