Разработчики ПО из Google, Apple, Adobe и т.д. борются с рисками
безопасности, возникшими благодаря зарождающейся графической технологии, которая
в своем нынешнем виде способна подвергнуть опасности миллионы пользователей.

"Технология, известная как

CSS шейдеры
, разработана для того, чтобы отображать различные эффекты
искажения вроде колебаний, ряби и складок. Она работает за счет предоставления
программных интерфейсов, которыми разработчики могут пользоваться, чтобы
применять мощные функции графических карт конечных пользователей. Но также она
может быть использована злонамеренными операторами сайтов чтобы красть историю
просмотров в интернете, данные с Facebook и другую чувствительную информацию у
ничего не подозревающих пользователей", — предупредил недавно Адам Барт,
исследователь безопасности Google Chrome.

"Поскольку сайтам позволено показывать контент, который им не позволено
читать, атакующий может использовать CSS шейдеры для чтения секретной информации
через канал синхронизации", — написал Барт в своем блоге 3 декабря. "Например,
сайт может использовать CSS шейдеры для извлечения твоих личных данных на
Facebook через вставленную кнопку "Like". Если более тонко, то сайт может
извлечь историю твоих просмотров обойдя защиту от отслеживания истории Дэвида
Бейрона".

В

дискуссионном листе
для разработчиков браузерного движка WebKit Барт вместе
с разработчиками из Google, Adobe и Opera обсуждали риски, представляемые
технологией CSS шейдеров, которая была подана в W3C в качестве стандарта
индустрии в октябре. Некоторые участники утверждали, что атака, которую имел
ввиду Барт, непрактична, поскольку ее нужно подстраивать под конкретный браузер,
а извлечение лишь части изображения на мониторе конечного пользователя займет
продолжительное время.

"Даже если тебе удастся настроить CSS атаку под конкретный браузер, поведение
визуализации которого ты понимаешь, уйдет много времени, чтобы определить
ценность одного пикселя, но даже после этого, я думаю, точность и повторяемость
будут очень низки", — написал в ответ разработчик из Apple Крис Маррин.
"Конечно, я могу ошибаться, но я еще не видел убедительного эксплойта рендеринга
CSS".

Барт признал, что у него нет надежного прототипа, демонстрирующего атаку, но
он выразил обеспокоенность тем, что эта функция может подвергнуть пользователей
классической browse-and-get-hacked атаке, во время которой приватная информация
крадется просто при посещении не того сайт.

"Например, атакующий может применить CSS шейдер к iframe, который содержит
контент с другого сайта", — написал Барт в e-mail. "Если атакующий изготовит
такой шейдер, время выполнения которого будет зависеть от содержания iframe,
потенциально он сможет украсть чувствительные данные с сайта".

Он добавил, что эксплойт также может подвергнуть риску местоположение
директорий с чувствительными файлами, когда пользователи загружают их на сайт.

Сценарий, изложенный Бартом, сильно напоминает уязвимость, обнаруженную в
другом графическом движке, который тоже набирает обороты в качестве стандарта
индустрии. В июне исследователи безопасности предупредили, что технология
3D-ускорения API, известная как WebGL, тоже
позволяет сайтам извлекать
изображения
на мониторах посетителей. Представленный прототип эксплойта
украл изображения в
браузере Firefox
путем "распыления" памяти в графической карте компьютера.
Исследователи сказали, что другие браузеры, возможно, тоже уязвимы. Барт уверил,
что с тех пор уязвимость была исправлена.

Части спецификации CSS шейдеров доступны в еженощных сборках браузерного
движка WebKit, которые формирует Google Chrome и Safari. У Adobe есть внутренняя
сборка WebKit, которая реализует CSS шейдеры более полно. Барт сказал, что он не
знает о выпуске технологии для рабочих версий каких-либо браузеров. А это
значит, что у коалиции разработчиков еще есть время на то, чтобы исправить
недостаток, пока он не нанес ущерба.

"Есть ряд средств защиты, которые мы обсуждаем в W3C CSS-SVG Effects Task
Force", — написал Барт. "На мой взгляд, самый перспективный подход – это найти
подмножество шейдерного языка GLSL в котором на выполнение шейдера всегда будет
уходить одно и то же количество времени, независимо от ввода. Если мы найдем
такое подмножество, у сайтов будет возможность использовать эти эффекты без
риска утечки чувствительной информации через канал синхронизации".



Оставить мнение