Особенности реализации в браузерах одной из функций языка CSS могут привести к утечке персональных данных из социальных сетей и с других сайтов. К такому выводу пришли опубликовавшие PoC уязвимости ИБ-аналитики.

Проблема была выявлена в браузерах Chrome и Firefox и не затронула Safari, Internet Explorer и Microsoft Edge. Разработчики Google и Mozilla уже закрыли уязвимость, выпустив обновления Chrome 63 и Firefox 60.

Специалист Google по информационной безопасности Руслан Хабалов и его коллега Дарио Вайсер (Dario Weißer) заинтересовались проблемой, когда обнаружили, что Pinterest содержит кнопку авторизации через Facebook с фотографией и именем профиля посетителя.

Обычно информация об аккаунте защищена, и даже если iframe на Pinterest получает от Facebook имя и фотографию посетителя, сам сайт не «видит» их и не может как-либо использовать. Исследователи решили проверить, насколько корректно работает эта система безопасности с функциями, относительно недавно появившимися в CSS и HTML.

Внимание специалистов привлек метод mix-blend-mode, отвечающий за различные режимы смешивания цветов, — по аналогии с теми, которые применяются в графических редакторах. Результатом наложения DIV-блока с этой функцией поверх элемента iframe станет смешивание цветов фотографии посетителя и, например, элементов виджета социальной сети по заданным алгоритмам.

Эксперты заметили, что при наложении одного и того же цвета на пиксели разных цветов время рендеринга отличается. При многократном использовании определенного сложного режима — насыщения (saturation) — разница во времени обработки становится достаточной для того, чтобы на ее основании делать выводы о цвете исходного пикселя.

Узнав цвет и последовательность отдельных пикселей, несложно восстановить исходное изображение. В рамках PoC генерация имени профиля заняла около 20 секунд, а получение не очень качественного фото — порядка 5 минут, но эксперты уверены, что при желании результата можно добиться быстрее.

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

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

В данном случае речь идет не об ошибке в самом CSS, однако опасные баги в этом языке также доставляют проблемы пользователям. В начале этого года три ИБ-специалиста независимо друг от друга нашли уязвимость в задаваемых им таблицах стилей. Эксплуатация ошибки позволяет отслеживать действия посетителя сайта и похищать данные, введенные им в диалоговые формы.

Категории: Аналитика, Уязвимости