Исследователь, скрывающийся под ником Inferno, рассказал о новом, более
совершенном способе кражи уникальных идентификаторов, призванных предотвращать
несанкционированный доступ к аккаунтам электронной почты и другим личным
ресурсам.
Для предотвращения межсайтовой подделки запросов (CSRF, cross-site request
forgery) веб-ресурсы обычно внедряют в URL случайную последовательность знаков
сразу же после того, как пользователь прошел процедуру авторизации. Такая
последовательность уникальна для каждого пользователя и позволяет предотвратить
взлом аккаунта в том случае, если при проведении CSRF-атаки злоумышленники
попытаются послать на веб-сайт случайный URL.
Для обхода такой защиты Inferno предлагает использовать брутфорс
идентификаторов в сочетании с другой хорошо известной атакой. На протяжении
многих лет исследователи повторяют, что для владельцев веб-сайтов не составляет
никакого труда выкрасть всю недавнюю историю посещений из браузера пользователя
при помощи метода, известного как взлом истории CSS. Проверяя каждого посетителя
на наличие идентификаторов, которые могут принадлежать сайтам из перечня
привлекательных целей (например, Gmail, eBay и так далее), нечистый на руку
веб-мастер способен найти нужную ему последовательность без лишних хлопот.
Данный метод имеет ряд преимуществ по сравнению с другими атаками, главным из
которых является то обстоятельство, что вся атака проходит исключительно на
клиентской машине, поэтому используемые сайтами сетевые файерволы и средства
обнаружения вторжений ее не увидят. Впрочем, Inferno признает, что этот метод
полезен только при взломе сравнительно коротких идентификаторов. Например, токен
на основе Base16 длиной 5 знаков генерирует 393 216 запросов. Его взлом у
Inferno отнял менее двух минут.
Новая технология взлома свидетельствует о необходимости использования более
длинных идентификаторов, кроме того будет нелишне хранить такие токены в скрытой
форме, а не вставлять их в URL, а также использовать разные идентификаторы для
каждого случая представления форм.