Výzkumníci z univerzit v Hamburku a Kolíně nad Rýnem
novou techniku útoků na sítě doručování obsahu a cache proxy — (Cache-Poisoned Denial-of-Service). Tento útok umožňuje dosáhnout odmítnutí přístupu na stránku prostřednictvím kontaminace cache.
Problém souvisí s tím, že CDN ukládají do cache nejen úspěšně provedené požadavky, ale i situace, kdy http-server vrací chybu. Obvykle, při problémech s vytvářením požadavků server vrací chybu 400 (Bad Request), výjimkou je pouze IIS, který vrací při příliš velkých hlavičkách chybu 404 (Not Found). Standard povoluje ukládat do cache pouze chyby s kódy 404 (Not Found), 405 (Method Not Allowed), 410 (Gone) a 501 (Not Implemented), ale některé CDN také ukládají odpovědi s kódem 400 (Bad Request), který závisí na odeslaném požadavku.
Útočníci mohou vyvolat na originálním zdroji vrácení chyby "400 Bad Request" prostřednictvím odeslání požadavku s určitým způsobem upravenými HTTP hlavičkami. Tyto hlavičky nejsou brány v potaz CDN, takže do cache se dostane informace o nemožnosti přístupu na stránku a všechny ostatní korektní požadavky uživatelů do uplynutí časového limitu mohou vést k zobrazení chyby, i když původní web bez problémů poskytuje obsah.
Pro přinucení HTTP-serveru k vrácení chyby byly navrženy tři varianty útoku:
- HMO (HTTP Method Override) — útočník může přepsat původní metodu požadavku prostřednictvím hlaviček "X-HTTP-Method-Override", "X-HTTP-Method" nebo "X-Method-Override", které některé servery podporují, ale CDN je ignorují. Například lze změnit původní metodu "GET" na zakázanou metodu na serveru "DELETE" nebo nepoužitelnou pro statické metody "POST";
- HHO (HTTP Header Oversize) — útočník může zvolit velikost hlavičky tak, aby překročila limit původního serveru, ale nepadala pod omezení CDN. Například Apache httpd omezuje velikost hlavičky na 8 KB, zatímco CDN Amazon CloudFront povoluje hlavičky až do 20 KB;
- HMC (HTTP Meta Character) — útočník může do požadavku vložit speciální znaky (\n, \r, \a), které se považují za nepřijatelné na původním serveru, ale v CDN jsou ignorovány.
Nejvíce zasaženým útokem byl CDN CloudFront využívaný v Amazon Web Services (AWS). V současné době společnost Amazon již problém vyřešila zákazem kešování chyb, ale přidání ochrany trvalo výzkumníkům více než tři měsíce. Problém se také dotkl Cloudflare, Varnish, Akamai, CDN77 a
Fastly, avšak útok prostřednictvím nich byl omezen na cílové servery, na nichž se používá IIS, ASP.NET, a . , což potenciálně ohrožuje 11 % domén Ministerstva obrany USA, 16 % URL z databáze HTTP Archive a přibližně 30 % z 500 největších webů podle hodnocení Alexa.
Jako obezličku pro zamezení útoku na straně webu lze použít nastavení hlavičky „Cache-Control: no-store“, které zakazuje ukládání odpovědí do mezipaměti. V některých CDNs, například v
CloudFront a Akamai, lze na úrovni nastavení profilu deaktivovat kešování chyb. Pro ochranu lze také využít webové aplikační firewally (WAF), ale ty musí být nasazeny na straně CDN před hostiteli, kteří provádějí kešování.
Zdroj: opennet.ru
