Spook.js, как и leaky.page, представляет собой атаку на браузер Google Chrome, но в отличие от PoC моделирует реальные сценарии: кражу пароля от сервиса Tumblr, хищение данных из расширения Lastpass. Хотя в Google Chrome именно для борьбы с уязвимостями Spectre была внедрена изоляция процессов для обработки отдельных веб-страниц, исследователи выяснили, что ее недостаточно. Открытые вкладки с одного домена группируются в общий процесс браузера, открывая возможность проведения атаки по модели Spectre v1 — путем тренировки системы предсказания ветвлений и последующего извлечения секретов из кэш-памяти процессора.
Атака на сервис Tumblr показана на видео выше. Tumblr — коллективный блог, загрузить на который вредоносный код Javascript вполне возможно. Сценарий атаки следующий: пользователь открывает «зараженный блог», а в соседней вкладке пытается залогиниться в собственную учетную запись Tumblr. Пароль сохранен в браузере и автоматически подставляется в поле для ввода. Вредоносный скрипт на вкладке с зараженной страницей способен прочитать этот пароль из кэш-памяти. Proof of Concept (не привязанный к Tumblr)
Для кражи паролей из Lastpass исследователи продемонстрировали другой метод — было создано вредоносное расширение, хотя и кража подставляемых автоматически паролей тоже возможна. Как выяснилось, в некоторых случаях расширения Google Chrome также группируются в один процесс. Помимо паролей, была также продемонстрирована кража сохраненной в Lastpass платежной информации.
Еще один эксперимент хорошо показывает ограничения атаки Spectre: крайне медленное чтение данных с помощью атаки по сторонним каналам и не стопроцентная точность чтения. Для этого эксперимента вредоносный код был загружен на хостинг Google Sites. В соседней вкладке пользователь отправлял микроскопическую картинку в сервис G Suite. Так как на практике удалось обеспечить скорость утечки данных в пределах 400–600 байт в секунду, даже сверхмалое изображение прочиталось с заметными артефактами (в экспериментах исследователей доля ошибочно прочитанных данных достигала 4%).
Для атак использовался браузер Google Chrome версии 82 и ноутбук с процессором Core i7-7600U. У атаки множество ограничений: как минимум, вредоносный код должен загружаться с того же (под)домена, что и таргетируемая веб-страница. Из-за этого в эксперименте с кражей картинки не удалось украсть пароль от учетки Google: вредоносный скрипт хостился на домене googleusercontent, а не google.com, туда же загружалось изображение. Помимо процессоров Intel, атака на компьютере с процессором Apple M1 также прошла успешно. На системах с процессором AMD и в браузере Firefox эксплойт не работает, но речь идет не о принципиальной невозможности, а о необходимости учесть особенности — процессора и обработчика Javascript соответственно.
По следам данной работы в Google Chrome 92-й версии был усилен механизм Strict Site Isolation и включена система изоляции расширений. В целом данная атака слишком сложна для использования на практике, и можно теоретически опасаться лишь таргетированных атак. Тем не менее исследователям удалось продемонстрировать работу Spectre v1 в реальных условиях, для кражи актуальных секретов — впервые за три года с момента обнаружения уязвимости.
Что еще произошло
В самой свежей версии Google Chrome 93
Microsoft дает возможность
Четыре уязвимости, коллективно поименованные
Patch Tuesday от Microsoft также