Наверняка многие из вас слышали про SameSite Cookie. Если еще нет, предлагаю ознакомиться. Коротко: атрибут, установленный на Cookie будет запрещать отправку Cookie пользователя при межсайтовых (cross-site) запросах. Технология хорошая, но есть нюанс: по умолчанию работает только в Chrome. А как же Firefox и Safari спросите вы? Давайте разбираться.
Коллеги из PT Security произвели неплохое исследование в части того, как реализуются cross-site запросы в контексте современных браузерных способов защиты пользовательских данных, а именно сессионных идентификаторов, сохраняемых в Cookie. Как я сказал ранее, в Chrome используется по умолчанию атрибут SameSite.
В Firefox 103 (Julie 2023) ввели Total Cookie Protection (часть Enhanced Tracking Protection) которые по умолчанию запрещают cross-site запросы. А сами Cookie пользователя находятся в изолированных контейнерах.
Safari ввели Intelligent Tracking Prevention в сентябре 2017. Использует алгоритмы машинного обучения для блокировки трекеров пользователя в веб-приложениях. Данная функциональность включена по умолчанию с марта 2019 (Safari 12.1). ITP также по умолчанию предотвращает cross-site запросы.
Звучит надежно, можно расходиться... А вот и не можно.
Например, Firefox вот так рассуждает о механизме изолированных контейнеров:
• When a partitioned third-party opens a pop-up window that has opener access to the originating document, the third-party is granted storage access to its embedder for 30 days.
• When a first-party a.example opens a third-party pop-up b.example, b.example is granted third-party storage access to a.example for 30 days.
Перевожу: если мы контролируя ресурс attacker.com заставим пользователя открыть в новой вкладке уязвимый ресурс vuln.com (например, поймаем событие клика и откроем в новом окне данный ресурс), то в таком случае, vuln.com выдаст доступ attacker.com к Cookie пользователя в изолированном контейнере на 30 дней. Таким образом, ближайшие 30 дней, cross-site запросы будут выполняться без необходимости дополнительных действий со стороны пользователя.
Механика обхода Safari ITP аналогична.
Hack IT Easy - Explore. Discover. Hack.
#websecurity