Изследователи от университетите в Хамбург и Кьолн
нова техника за атаки върху мрежи за доставка на съдържание и кеширащи прокси — (Cache-Poisoned Denial-of-Service). Атаката позволява да се постигне отказ на достъп до страницата чрез отравяне на кеша.
Проблемът е свързан с това, че CDN кешират не само успешно изпълнени заявки, но и ситуации, при които HTTP сървърът връща грешка. Обикновено, при проблеми с формулирането на заявки, сървърът показва грешка 400 (Bad Request), с изключение на IIS, който показва грешка 404 (Not Found) за прекалено големи заглавия. Стандартът разрешава кеширането само на грешки със кодове 404 (Not Found), 405 (Method Not Allowed), 410 (Gone) и 501 (Not Implemented), но някои CDN също кешират отговори с код 400 (Bad Request), който зависи от изпратената заявка.
Атакуващите могат да предизвикат на оригиналния ресурс връщане на грешка '400 Bad Request' чрез изпращане на заявка с определено форматирани HTTP заглавия. Тези заглавия не се вземат предвид от CDN, поради което в кеша ще попадне информация за невъзможността да се получи достъп до страницата, а всички останали коректни потребителски заявки до изтичането на таймаута могат да водят до показване на грешка, въпреки че оригиналният сайт без проблеми предоставя съдържанието.
Предложени са три варианта на атака за принуждаване на HTTP сървъра да върне грешка:
- HMO (HTTP Method Override) — атакуващият може да преопредели оригиналния метод на заявката чрез заглавията 'X-HTTP-Method-Override', 'X-HTTP-Method' или 'X-Method-Override', поддържани от някои сървъри, но не вземани предвид от CDN. Например, може да се смени оригиналният метод 'GET' на забранения на сървера метод 'DELETE' или неподходящия за статични файлове метод 'POST';
- HHO (HTTP Header Oversize) — атакуващият може да зададе размера на заглавието така, че то да надвишава лимита на оригиналния сървър, но да не попада под ограниченията на CDN. Например, Apache httpd ограничава размера на заглавието до 8 КБ, а CDN Amazon Cloudfront допуска заглавия до 20 КБ;
- HMC (HTTP Meta Character) — атакуващият може да внедри в заявката специални символи (\n, \r, \a), които се считат за недопустими на оригиналния сървър, но се игнорират в CDN.
Най-болезнено подложен на атака се оказа CDN CloudFront, използван в Amazon Web Services (AWS). В момента компанията Amazon вече е отстранила проблема чрез забрана на кеширане на грешки, но на учените им отне повече от три месеца, за да постигнат добавянето на защита. Проблемът също така засегна Cloudflare, Varnish, Akamai, CDN77 и
Fastly, но атаката през тях е ограничена до целевите сървъри, на които се използва IIS, ASP.NET, и . , което означава, че 11% от домейните на Министерството на отбраната на САЩ, 16% от URL-ите в базата HTTP Archive и около 30% от 500-те най-големи сайта по рейтинга на Alexa може да са подложени на атака.
Като обходен метод за блокиране на атаката от страна на сайта, можете да използвате заглавие "Cache-Control: no-store", което забранява кеширането на отговори. В някои CDN, например в
CloudFront и Akamai, можете на ниво настройки на профила да деактивирате кеширането на грешки. За защита можете също да използвате защитни стени за уеб приложения (WAF, Web Application Firewall), но те трябва да бъдат внедрени от страна на CDN преди хостовете, които извършват кеширане.
Източник: opennet.ru
