Эксперты из Германии обнаружили и исследовали новый тип атаки на функции хэширования, которой подвержено большинство популярных Content Delivery Network (CDN) серверов в совокупности в web-серверами. Атака Cache-Poisoned Denial-of-Service (CPDoS) направлена на встроенные механизмы кэширования сетей доставки контента CDN и веб-серверов. Суть атаки заключается в подмене правильного ответа веб-сервера на ошибочный кэш, «отравленный» злоумышленником, и сохраненный на CDN ресурсе – отсюда происходит название атаки «Отказ в обслуживании через отравление кэша».
Суть атаки в следующем:
Атакующий направляет специально сформированный HTTP запрос на CDN сервис интересующего ресурса. Вредоносный HTTP запрос может быть следующих типов (отсюда типизация самой атаки, разные пары CDN+Web уязвимы разным типам запросов):
-
HTTP Header Oversize (HHO) – превышенный размер заголовка HTTP запроса. Протокол HTTP не определяет лимита, он определяется непосредственно реализацией. И, в частности, Apache HTTPD устанавливает 8192 байта, а Amazon Cloudfront CDN – 20480 байт, и поэтому данный запрос вынудит web-сервер на Apache ответить ошибкой, что делает возможной атаку CPDoS HHO на эту пару сервисов.
- HTTP Meta Character (HMC) – аналогично предыдущему типу использует в таких же целях метаданные в HTTP заголовке. Механика атаки такая же, как в HHO.
- HTTP Method Override (HMO) – используются нюансы работы с HTTP методами (GET, POST, DELETE, PUT). Некоторые промежуточные узлы передачи web-трафика (балансировщики, прокси, и т.д.) поддерживают ограниченный набор методов (GET, PUT), поэтому в web фреймворке и REST API существуют заголовки туннелирования методов: X-HTTP-Method-Override, X-HTTP-Method or X-Method-Override. Именно этот тип заголовка используется в атаке CPDoS по аналогичному сценарию.
Полученный HTTP запрос CDN ресурс направит на web-сервер. И web-сервер ответит страницей ошибки, которая будет захэширована CDN ресурсом. Далее, все запросы на эту страницу будут отрабатываться из хэша CDN ресурса. И определенный контент станет недоступен легитимному пользователю, вместо нужной страницы пользователь будет получать страницу ошибки.
Успешная реализация атаки чревата потерей доступа на чтение к определенному контенту сайта, выбранного злоумышленником. Например, важное новостное событие, маркетинговая публикация или важная справочная информация, контактные данные – все это может повлиять на требуемую посещаемость и отрицательно отразиться на прибыли компании.
Отличием атаки является то, что она была воспроизведена исследователями из Гамбургского и Кёльнского университетов на большом количестве пар - движок веб-сервера + сеть доставки контента, среди которых встречаются распространенные. Полная таблица проверенных исследователями и задетектированных вариантов расположена на ресурсе: https://cpdos.org/.
Одним из методов защиты является выставление заголовка "Cache-Control: no-store", запрещающего кэширование ответов. Или отключение в CDN кэширования ошибок, использование WAF систем перед CDN сервисами.