Изследователи от университетите в Хамбург и Кьолн
нова техника за атаки срещу мрежи за доставка на съдържание и кеширащи проксита — (Cache-Poisoned Denial-of-Service). Атаката позволява да се постигне отказ на достъпа до страницата чрез отравяне на кеша.
Проблемът е свързан с това, че CDN кешират не само успешно изпълнени заявки, но и ситуации, когато HTTP сървърът връща грешка. Обикновено, при проблеми с формирането на запитвания, сървърът издава грешка 400 (Невалидно запитване), с изключение на IIS, който издава грешка 404 (Не намерен) за прекалено големи заглавия. Стандартът разрешава кеширането само на грешки с кодове 404 (Не намерен), 405 (Методът е забранен), 410 (Отсъства) и 501 (Не е имплементиран), но някои CDN също кешират отговори с код 400 (Невалидно запитване), който зависи от изпратеното запитване.
Атакуващите могат да предизвикат на оригиналния ресурс връщането на грешка «400 Невалидно запитване» чрез изпращане на запитване с определени 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
