The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Атака CPDoS, позволяющая сделать недоступными страницы, отдаваемые через CDN

25.10.2019 15:50

Исследователи из Гамбургского и Кёльнского университетов разработали новую технику атак на сети доставки контента и кэширующие прокси - CPDoS (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, Flask и Play 1. Отмечается, что атаке потенциально могут быть подвержены 11% доменов Министерства обороны США, 16% URL из базы HTTP Archive и около 30% из 500 крупнейших сайтов по рейтингу Alexa.

В качестве обходного метода блокирования атаки на стороне сайта можно использовать выставление заголовка "Cache-Control: no-store", запрещающего кэширование ответов. В некоторых CDN, например, в CloudFront и Akamai, можно на уровне настроек профиля отключить кэширование ошибок. Для защиты также можно использовать межсетевые экраны для web-приложений (WAF, Web Application Firewall), но они должны внедряться на стороне CDN перед хостами, осуществляющими кэширование.

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Атака на системы фронтэнд-бэкенд, позволяющая вклиниться в сторонние запросы
  3. OpenNews: ICANN призывает к повсеместному внедрению DNSSEC. Обновление BIND с устранением уязвимостей
  4. OpenNews: Фишинг-атака на платёжную систему Trezor, вероятно проведённая с использованием BGP
  5. OpenNews: Обсуждение однострочного патча для решения проблемы отравления кэша DNS сервера
  6. OpenNews: Новый проект поможет повысить защищенность DNS серверов
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/51753-cache
Ключевые слова: cache, cpdos, dos, attack
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (17) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 16:26, 25/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +15 +/
    Вот видите, сколько пользы приносят CDN.
     
     
  • 2.3, Аноним (3), 17:43, 25/10/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    таки дайте ж ссылку на .onion где донейты на этот ботнет принимают!

    (я даже не буду уточнять, какие именно сайты ddos'ить - убивайте всех, Господь разберет своих!)

     
  • 2.15, pin (??), 19:11, 26/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Именно начал приносить. До этой новости он был бесполезен.
     

  • 1.2, n1rdeks (ok), 17:26, 25/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Показательная картинка клиента.  И нечего библиотеки хранить на CDN.
     
     
  • 2.4, Аноним (3), 17:43, 25/10/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    в смысле, это зонд у него из оппы?

     
     
  • 3.12, Ordu (ok), 18:20, 26/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это не зонд же, это коловорот. Зонд иначе выглядит.
     
  • 2.14, Всем Анонимам Аноним (?), 18:27, 26/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Расскажите пожалуйста тогда где хранить? Скажем, вы www.samsung.com, где вы будете брать библиотеки?
     
     
  • 3.17, Аноним (17), 08:27, 28/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    В 2019 году www.samsung.com/lib/ не модно ?
     

  • 1.5, Аноним (5), 17:44, 25/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Люблю подобные картинки, жаль нет пошаговой инструкции, с подобными картинками, как создать свою цифровую подписть и подписывать ей, например текст внутри документа.
     
  • 1.6, б.б. (?), 17:53, 25/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    что это за гибрид пингвина и бсд-чёртика? :)
     
     
  • 2.7, Fantomas (??), 18:08, 25/10/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это намек на нехороших линуксобздунов )))))
     
  • 2.8, йож (?), 18:10, 25/10/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    trident os
     

  • 1.9, Гентушник (ok), 18:15, 25/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > Стандарт разрешает кэшировать только ошибки с кодами 404 (Not Found), 405 (Method Not Allowed), 410 (Gone) и 501 (Not Implemented), но некоторые CDN также кэшируют и ответы с кодом 400 (Bad Request), который зависит от отправленного запроса.

    ССЗБ

     
     
  • 2.13, Всем Анонимам Аноним (?), 18:25, 26/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Кэшируются вещи не от случайного решения сидя на диване. Для больших сайтов любой некешируемый запрос может привести к падению origin. Тогда все ляжет просто из-за одной чьей-то ошибки или даже мелкой подсистемы.
     
     
  • 3.16, Аноним (16), 21:58, 26/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А нефиг большим сайтам иметь один нитцшебродский сервер за пару баксов в качестве origin.
     

  • 1.10, Аноним (10), 19:03, 25/10/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > исключение составляет только IIS, который выдаёт для слишком больших заголовков ошибку 404 ("Not Found")

    Как всегда у этих через одно место, и болт они клали на стандарты

     
     
  • 2.11, gogo (?), 08:39, 26/10/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ну дык потому и имеют свою долю серверов, стабильно падающую к нулю....
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру