Как стать автором
Обновить

Баг драйвера видеокарты может раскрыть просмотренное в режиме инкогнито

Время на прочтение3 мин
Количество просмотров27K

Окно с порносайтом случайно появляется при загрузке игры


Современные браузеры снабжены приватным режимом работы. Переключение в него означает открытие нового окна браузера, которое обладает рядом особенностей. Записанные браузере куки не будут учитываться при сёрфинге, а установленные нигде не останутся. Открытые в приватном окне страницы не попадут в историю. Не будут записываться введённые в формы данные, чтобы они не появились позже в автодополнении набора.

По окончании работы в режиме инкогнито пользователь может закрыть окно, будто ничего и не было. Но это «что-то» было, и есть множество способов выяснить, что. Эван Андерсон обратил внимание на ещё один: видеопамять графического ускорителя не обнуляет данные кадровых буферов.

Приватный режим имеет много сценариев использования: это просмотр порносайтов, необходимость дать другому человеку возможность быстро посмотреть почту или проверка неких технических моментов при веб-разработке. Во многих примерах использования важна приватность данных, то есть никто другой не должен узнать, куда заходил пользователь.

Хотя какие-то проблемы решаются, режим инкогнито не является панацеей. Многое могут знать те, кто обеспечивает доступ к информации: владельцы посещённых сайтов, провайдеры услуг связи. Что-то знают компании интернет-статистики. Совокупность установленных расширений в браузере составляет уникальный слепок, отслеживаемость которого можно проверить инструментом Panopticlick «Фонда электронных рубежей». Что-то остаётся в кэше запросов службы доменных имён.

Обычно такие способы подразумевают желание выяснить скрываемое. Пример Андерсона коварен случайностью утечки.

Андерсон посетил порноресурс в Google Chrome. Прошло несколько часов. Затем на том же компьютере была запущена игра Diablo III. Несколько секунд при загрузке главного меню на экране отображалось приватное окно браузера, вернее, его графическая составляющая. Член семьи Эвана даже успел сделать скриншот. Содержимое закрытого часы назад окна идеально сохранилось.


Контент был зацензурен.

Подобная утечка стала возможной благодаря тому, как работают драйверы видеоускорителя Nvidia. После передачи доступа к памяти от одного приложения другому драйвер не очищает память. После закрытия приватного окна фреймбуфер браузера Chrome попал в пул свободной памяти, но его содержимое не было удалено. Когда игра Diablo III запросила свой кадровый буфер, видеокарта дала доступ к тому, что раньше использовался браузером. Игра тоже не почистила содержимое буфера, поэтому на экране появился порносайт.

Другой бы быстро забыл этот казус с демонстрацией порнопристрастий членам семьи. Но Андерсон написал простое приложение, которое сканирует память на ненулевые пиксели. Так удалось идеально воссоздать окно браузера с открытым «Реддитом».



Как указывает Эван, баг удаётся воспроизвести на видеокартах AMD и Nvidia, но не встроенной графике Intel. Андерсон использовал Mac OS X. Подобное не всегда работает. Иногда получается каша с фрагментами окна.



Такая особенность работы драйверов не только допускает возможность подсматривания, но и означает случайные неприятные неожиданности при работе обычных приложений. Есть несколько решений. На стороне драйвера достаточно очищать фреймбуфер так, как операционная система очищает память при передаче доступа от одного приложения к другому. Браузер в свою очередь может обнулять буфер при выходе. В апреле Андерсон направил свои предложения как Nvidia (наверное, стоило бы также известить Apple), так и разработчикам Google Chrome.

На январь 2016 года Nvidia пока не внесла необходимые изменения. Разработчики Google Chrome отказались вносить изменения, странно аргументируя своё решение. Как они заявили, режим инкогнито не гарантирует сокрытие посещённых страниц от других пользователей компьютера.

Код приложения Андерсона для сканирования памяти приложен к баг-репорту в виде архива.
Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Всего голосов 37: ↑34 и ↓3+31
Комментарии35

Публикации

Истории

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн