У сайтов появился новый способ шпионажа за посетителями: измерение взаимодействий с их твердотельными накопителями. Метод, получивший название FROST (удалённая идентификация с использованием синхронизации SSD на основе OPFS), позволяет сайтам отслеживать другие ресурсы, которые просматривает посетитель, а также то, какие приложения открыты на его устройствах.
Метод использует побочный канал — форму утечки, возникающую в результате физических проявлений, таких как электромагнитные излучения, кэши данных или время, необходимое для выполнения задачи. Измеряя эти проявления, злоумышленники могут расшифровать зашифрованный трафик и получить доступ к другим конфиденциальным данным.
Атака измеряет взаимодействие различных процессов, использующих данный ресурс (или конкурирующих за него), в том числе время выполнения определённых операций ввода-вывода (I/O) на SSD-накопителе. Так, исследователи смогли определить веб-сайты, открытые в других вкладках — даже в других браузерах — и приложения, открытые на устройстве посетителя. FROST не требует от посетителя никакого взаимодействия, кроме открытия сайта.
«Веб-браузеры эволюционировали от простых программ для просмотра документов до платформ, способных запускать сложные приложения. Такие компании, как Google, Microsoft и Adobe, разработали полноценные офисные пакеты, фото- и видеоредакторы или даже интегрированные среды разработки (IDE), которые работают полностью в браузере», — пишут авторы статьи. Они также отметили: «Хотя эти функции расширяют возможности веб-приложений и позволяют создавать совершенно новые сценарии использования, они также увеличивают поверхность атаки браузера, и некоторые из них уже, как было показано, создают новые уязвимости».
В отличие от предыдущих атак на SSD-накопители с использованием побочных каналов, FROST работает исключительно в браузере. Он использует JavaScript, который взаимодействует с OPFS (исходной частной файловой системой) — выделенным пространством хранения, зарезервированным для конкретного сайта, для выполнения кода. Веб-сайты могут создавать такие системы без какого-либо взаимодействия со стороны посетителя.
Хотя каждая файловая система изолирована от других веб-сайтов и от самой системы устройства, JavaScript может измерять операции ввода-вывода. Затем, обрабатывая эти операции с помощью предварительно обученной свёрточной нейронной сети — системы, использующей глубокое обучение для анализа текста, аудио и изображений, — злоумышленник может определить, какие приложения и веб-сайты открыты на устройстве.
«Злоумышленник постоянно измеряет конкуренцию за SSD, выполняя случайные операции чтения из большого файла OPFS. Конфликты на SSD-накопителях, вызванные активностью пользователей, приводят к измеримым различиям в задержке при операциях чтения. Обучив свёрточную нейронную сеть (CNN) на этих данных, злоумышленник может определить активность пользователей в хост-системе, классифицируя новые данные с помощью обученной модели», — пояснили исследователи.
У этого метода есть свои ограничения. Во-первых, файл OPFS должен быть чрезвычайно большим — вероятно, гигабайт или больше. Это требование означает, что атаки в больших масштабах неизбежно обнаружат многие пользователи. Кроме того, файл OPFS должен храниться на том же SSD-накопителе, который использует посетитель. Обычно это не проблема для отслеживания открытых веб-сайтов, поскольку файл OPFS хранится в стандартном расположении браузера. В случае, если приложения используют отдельный SSD-накопитель для приложений, эти приложения не обнаруживаются FROST.
Один из лучших способов предотвратить атаки — закрывать вкладки, как только они больше не нужны. Более опытные пользователи могут отслеживать создание и размер файлов OPFS, выделяемых неизвестными веб-сайтами. Исследователи предложили разработчикам браузеров способы блокировки побочного канала. Один из таких методов — ограничение максимального размера разрешённых файлов. Пока нет никаких признаков того, что атаки FROST проводились в реальных условиях.
Исследователи организовали атаку FROST на Mac с процессором M2. На Linux они показали, что базовый примитив (измерение задержки доступа к SSD из JavaScript) работает, но не проводили саму атаку.
«Однако, поскольку производительность примитива схожа в macOS и Linux, мы ожидаем аналогичной производительности для полной классификации. В принципе, можно обучить модель на любой системной активности, которая надёжно генерирует обращения к SSD», — отмечает Ханнес Вайсштайнер, один из соавторов исследования.
При этом исследователи не тестировали Windows.
Результаты работы планируется представить на конференции DIMVA в июле.
ссылка на оригинал статьи https://habr.com/ru/articles/1040574/