Ошибка в составе API IndexedDB в движке Safari WebKit может использоваться вредоносными сайтами для отслеживания онлайн-активности пользователей и раскрытия их личности.
Уязвимость получила название IndexedDB Leaks и была обнаружена компанией FingerprintJS, которая занимается разработкой ПО для защиты от мошенничества. Исследователи уведомили разработчиков Apple о проблеме еще в ноябре 2021 года.
IndexedDB —широко используемый браузерный API, представляющий собой универсальную систему для хранения на стороне клиента (не имеющую ограничений по емкости). Обычно API применяется для кэширования данных веб-приложений для просмотра в автономном режиме. Кроме того, для хранения информации его могут использовать модули, инструменты разработки и расширения.
Чтобы предотвратить потенциальные утечки данных через XSS-атаки, IndexedDB придерживается Same Origin Policy, контролируя, какие ресурсы могут получить доступ к определенным частям данных. Однако аналитики FingerprintJS обнаружили, что IndexedDB не следует SOP в Safari 15 на macOS, что приводит к раскрытию конфиденциальных данных.
Также багу подвержены браузеры, использующие тот же движок в последних версиях iOS и iPadOS. Кроме того, корень проблемы кроется в WebKit, а значит, любой браузер, использующий этот движок (например, Brave или Chrome для iOS), тоже уязвим. Чтобы проверить свой браузер на предмет утечек, можно посетить специальную страницу, созданную аналитиками FingerprintJS.
Эксперты объясняют, что баг позволяет любому сайту узнать имена баз данных, созданных в рамках одного сеанса. Поскольку имена БД уникальны и зависят от конкретного сайта, по сути, благ провоцирует утечку истории браузинга. Хуже того, некоторые имена БД содержат пользовательские ID, поэтому утечка может привести и к идентификации пользователя.
По словам аналитиков, для идентификации человека с помощью этой уязвимости нужно войти в систему и посетить популярные сайты, такие как YouTube и Facebook, или такие сервисы, как Google Calendar и Google Keep. При входе на эти ресурсы создается новая база данных IndexedDB, к имени которой добавляется идентификатор пользователя в Google. При использовании нескольких учетных записей Google для каждой из них создаются отдельные БД.
«Мы проверили домашние страницы 1000 самых посещаемых веб-сайтов по версии Alexa, чтобы понять, сколько сайтов используют IndexedDB и могут быть однозначно идентифицированы по базам данных, с которыми взаимодействуют. Результаты показывают, что более 30 сайтов взаимодействуют с проиндексированными базами данных непосредственно на своей домашней странице без какого-либо дополнительного взаимодействия с пользователем и без необходимости аутентификации», — говорят эксперты.
Хотя Apple сообщили об уязвимости еще 28 ноября 2021 года, пока ошибка все еще не устранена. Один из способов временно смягчить эту проблему — полная блокировка JavaScript, однако это может вызвать проблемы в работе многих сайтов.
Источник: xakep