Исследователь Омер Гил (Omer Gil) обнаружил способ обмануть веб-сервер так, чтобы он кешировал страницы и выдавал атакующим пользовательские данные.

Так называемая атака с кешированием нацелена на сайты, которые используют системы доставки контента (CDN), такие как Akamai или Cloudfare. Эти сервисы, по сути, балансируют нагрузку на сервера и хранят файлы, к которым часто поступают запросы, чтобы снизить временные задержки при загрузке страниц.

Гил, глава команды информационной безопасности в EY Advanced Security Center, представит полную версию своего исследования на конференции Black Hat в Лас-Вегасе, но его первоначальные открытия уже опубликованы онлайн. Гил утверждает, что злоумышленники могут использовать CDN-сервисы, чтобы получать доступ к пользовательским данным и даже уводить их аккаунты.

Гил говорит, что многие из компаний, использующих кеширующие сервисы, уязвимы к этому типу атак. В феврале он сообщил PayPal, что сервис уязвим к такого рода атаке, которая позволяла атакующему получить имя владельца аккаунта, его фамилию, последние четыре цифры номера кредитной карты, email-адрес, телефон и даже номер паспорта. Это принесло Гилу $3000 в рамках bug bounty-программы PayPal.

Для атаки нужна видоизмененная ссылка, с помощью которой атакующий пытается спровоцировать кеширование такого контента, который CDN по умолчанию не кеширует.

Akamai объясняет основные принципы атаки в блог-посте:

«Допустим, что URL вида www.example.com/personal.php ссылается на контент, содержащий некие персональные данные, которые не должны кешироваться. Атакующий каким-то образом убеждает пользователя кликнуть по ссылке вида www.example.com/personal.php/bar.css, в результате чего сервер выдает www.example.com/personal.php, который, как мы помним, содержит информацию, относящуюся именно к этому пользователю, так как в запросе содержатся куки жертвы. Однако прокси-сервер расценивает запрос к www.example.com/personal.php/bar.css как запрос к несуществующему, но кешироуемому файлу bar.css, в результате чего содержимое /personal.php оказывается в кеше и потенциально доступно другим людям.»

Гил утверждает, что атака не ограничивается расширениями JS и файлами CSS. В атаках с кешированием может быть использовано более чем 40 статических расширений файлов, таких как aif, aiff, au, avi, bin, bmp, cab, carb, cct, cdf, class, css, doc, dcr, dtd, gcf, gff, gif, grv, hdml, hqx, ico, ini, jpeg, jpg, js, mov, mp3, nc, pct, ppc, pws, swa, swf, txt, vbs, w32, wav, wbmp, wml, wmlc, wmls, wmlsc, xsd и zip.

Теперь данные по данной ссылке будут закешированы. Все, что нужно атакующему, – это зайти по тому же самому адресу. Это дает ему возможность потенциально добраться до личной и платежной информации жертвы.

«Я замерил время, через которое кешированные файлы удаляются», – пишет Гил. – «Похоже, что после того как к файлам первый раз получают доступ, они хранятся в течение еще 5 часов. Если за это время к ним опять попытаются получить доступ, это время будет увеличено. В любом случае такого промежутка времени более чем достаточно для того, чтобы атакующий успел добраться до закешированных файлов, прежде чем они будут удалены. Ну а постоянный мониторинг этого URL позволяет атакующему увидеть их, как только они будут созданы.»

Как Akamai, так и Cloudflare отреагировали на исследования Гила, причем обе компании признают, что нет универсальной панацеи от такого типа атак, кроме разве что того, что веб-сайты, которые используют CDN, должны быть в курсе существования подобных атак и сами противодействовать им.

«Лучший способ защититься от этой атаки – убедиться, что ваш веб-сайт никогда не считает запросы к несуществующим адресам (скажем, /x/y/z) эквивалентными запросам к легитимным родительским адресам (скажем, /x)», – пишет Cloudflare в своем блоге. Гил считает, что вместо того, чтобы возвращать содержимое родительского адреса, сайт должен выдавать 302-ю или 404-ю ошибку.

На конференции Black Hat EY Advanced Security Center подробнее расскажет об этой атаке, чтобы показать, насколько распространенной может быть данная уязвимость. Гил утверждает, что Akamai и Cloudfare – только частные примеры, и все балансировщики нагрузок и обратные прокси-сервера вроде IIS ARR или NGINX ничуть не менее уязвимы.

Категории: Главное, Уязвимости