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

Дослідники з Гамбурзького та Кельнського університетів
розробили нову техніку атак на мережі доставки контенту та проксі, що кешують 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»;

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

  • HHO (HTTP Header Oversize) - атакуючий може підібрати розмір заголовка таким чином, щоб він перевищував ліміт вихідного сервера, але не підпадав під обмеження CDN. Наприклад, Apache httpd обмежує розмір заголовка 8 КБ, а CDN Amazon Cloudfront допускає заголовки до 20 КБ;
    Атака CPDoS дозволяє зробити недоступними сторінки, що віддаються через CDN

  • HMC (HTTP Meta Character) — атакуючий може підставити запит спецсимволи (\n, \r, \a), які вважаються неприпустимими на вихідному сервері, але ігноруються в CDN.

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

Найбільш схильний до атаки виявився CDN CloudFront, що використовується в Amazon Web Services (AWS). В даний час компанія Amazon вже усунула проблему через заборону кешування помилок, але на те, щоб домогтися додавання захисту, дослідникам знадобилося більше трьох місяців. Проблема також торкнулася Cloudflare, Varnish, Akamai, CDN77 та
Fastly, але атака через них обмежена цільовими серверами, на яких використовується IIS, ASP.NET, Колба и Гра 1. відзначається, що атаці потенційно можуть бути схильні до 11% доменів Міністерства оборони США, 16% URL з бази HTTP Archive і близько 30% з 500 найбільших сайтів за рейтингом Alexa.

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

Джерело: opennet.ru

Додати коментар або відгук