
Суть атаки в следующем:
Атакующий направляет специально сформированный 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 по аналогичному сценарию.
Успешная реализация атаки чревата потерей доступа на чтение к определенному контенту сайта, выбранного злоумышленником. Например, важное новостное событие, маркетинговая публикация или важная справочная информация, контактные данные – все это может повлиять на требуемую посещаемость и отрицательно отразиться на прибыли компании.
Отличием атаки является то, что она была воспроизведена исследователями из Гамбургского и Кёльнского университетов на большом количестве пар - движок веб-сервера + сеть доставки контента, среди которых встречаются распространенные. Полная таблица проверенных исследователями и задетектированных вариантов расположена на ресурсе:
Одним из методов защиты является выставление заголовка "Cache-Control: no-store", запрещающего кэширование ответов. Или отключение в CDN кэширования ошибок, использование WAF систем перед CDN сервисами.