Novinky

Zranitelnost HTTP/2 Bomb zasahuje Nginx, Apache, IIS a další webové servery – útočník může za sekundy vyčerpat gigabajty paměti

Zranitelnost HTTP/2 Bomb zasahuje Nginx, Apache, IIS a další webové servery – útočník může za sekundy vyčerpat gigabajty paměti

Novinky Date: Zobrazení: 17

Zranitelnost HTTP/2 Bomb zasahuje Nginx, Apache, IIS a další webové servery – útočník může za sekundy vyčerpat gigabajty paměti

Výzkumník Quang Luong odhalil způsob, jak pomocí protokolu HTTP/2 zahájit útok odmítnutí služby (DoS) na výchozích konfiguracích nejrozšířenějších webových serverů světa, aniž by potřeboval více než zlomek přenesených dat.

Protokol HTTP/2 přinesl webovému provozu zásadní zrychlení – kompresi hlaviček (HPACK), multiplexování požadavků a řízení datového toku. Tytéž mechanismy, které zlepšují výkon, jsou teď středobodem útoku nazvaného HTTP/2 Bomb.

HPACK pracuje se sdílenou dynamickou tabulkou hlaviček. Odesílatel má možnost poslat plnou hlavičku jednou, uložit ji do tabulky a v dalších požadavcích na ni odkazovat jediným bajtem. Server při každém odkazu alokuje paměť odpovídající celé uložené hodnotě. Útok tuto logiku využívá soustavně: nejprve naplní tabulku co největší hlavičkou, pak v jediném požadavku odešle tisíce jednobajtových indexovaných odkazů. Každý bajt útočníka stojí server 70 bajtů (Nginx, IIS, Pingora) až přibližně 4 000 bajtů (Apache, Envoy).

Druhá složka útoku vychází z mechanismu řízení toku. Klient má právo nastavit okno řízení toku na nulu a tím serveru znemožnit dokončení odpovědi. Proud krátkých zpráv WINDOW_UPDATE průběžně resetuje časové limity odesílání a přidělená paměť zůstává zablokovaná tak dlouho, jak útočník určí. V demonstraci výzkumníka Luonga bylo tímto způsobem během několika sekund obsazeno desítky gigabajtů paměti serveru.

Image

Zasažené servery zahrnují Nginx, Apache s modulem mod_http2, Microsoft IIS, Envoy a Cloudflare Pingora – tedy prakticky celé spektrum infrastruktury, na níž běží současný web. Záplaty jsou v tuto chvíli dostupné pro Nginx (verze 1.29.8 a novější) a Apache mod_http2 (verze 2.0.41). Ostatní dodavatelé záplaty zatím nevydali.

Prozatímní opatření pro nezáplatované servery jsou dvě: vypnutí podpory HTTP/2 nebo zavedení limitů pro procesy pomocí ulimit a omezení prostředků na úrovni kontejnerů, aby jednotlivé instance nemohly bez kontroly čerpat systémovou paměť. Obě řešení jsou průchodná ve výrobním prostředí, vypnutí HTTP/2 se však projeví zpomalením obsluhy klientů s moderními prohlížeči.

Z pohledu provozovatelů infrastruktury je HTTP/2 Bomb nepříjemná zejména proto, že k útoku stačí standardní HTTP/2 klient a výchozí konfigurace serveru. Útok nevyžaduje autentizaci ani znalost vnitřní struktury aplikace – kombinace HPACK a okna řízení toku je dostupná každému klientovi, který se připojí přes HTTP/2.

Výzkumník Luong k nalezení zranitelnosti využil nástroj Codex a kombinaci dvou technik, které bezpečnostní komunita zná téměř deset let. Jejich propojení se zesilujícím efektem desítek gigabajtů na jednoho útočníka je ale případ nový. Záplatování Nginxu a Apache by mělo proběhnout neprodleně; u ostatních serverů je vhodné sledovat informace dodavatelů a v citlivých prostředích zvážit prozatímní omezení HTTP/2.

Zdroj

Další články