Уязвимость CSS угрожает сохранности приватных данных
Сразу трое экспертов ИБ нашли уязвимости в новой версии языка веб-разметки CSS. Специалисты продемонстрировали, как особым образом сформулированный запрос может открыть доступ к конфиденциальным данным посетителей сайтов и фиксировать их действия.
Первым о проблеме сообщил немецкий студент Ян Бёмер (Jan Böhmer), который написал CSS-код, позволяющий отслеживать пользовательское взаимодействие с веб-страницами без использования традиционных скриптов на Java. Массив собранных данных включил информацию о кликах, движениях мыши и вводе текста в соответствующие поля.
Параллельно с Бёмером свое исследование провел независимый эксперт ИБ Дилан Эйри (Dylan Ayrey). Он показал, как можно похитить CSRF-токен — элемент системы аутентификации, который обеспечивает безопасную идентификацию пользователя на веб-ресурсах.
Эту уязвимость можно использовать на тех сайтах, где разработчики не запретили хранение токенов в коде страниц. Подобная практика сама по себе является грубым нарушением информационной безопасности — она позволяет злоумышленникам проводить атаки типа «межсайтовая подделка запроса».
Эйри взломал уязвимую страницу, произвел CSS-инжект и определил значение токена с помощью селекторов атрибутов CSS. Эти специальные скрипты могут сканировать содержимое HTML-тегов, чтобы, например, выделять цветом все ссылки на какой-либо определенный ресурс. Эйри написал код, который методом перебора находит в тегах последовательности символов — в данном случае, CSRF-токена. Определить его полное значение можно за 10 секунд брутфорса.
Третий исследователь, Майк Гвалтьери (Mike Gualtieri), использовал этот же метод, чтобы украсть и другие важные данные, которые пользователи вводят на странице, включая пароли.
Чтобы защититься от этих атак, веб-разработчикам рекомендуется использовать политику защиты контента (Content Security Policy), которая не позволяет загружать на страницу CSS-код из сторонних источников. Гвалтьери также опубликовал дополнения для Chrome и Firefox, которые распознают зловредные скрипты и не позволяют им запуститься.