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

Новинка использует некоторые уже известные проблемы с браузерами и кодом JavaScript, а также обладает рядом довесков, позволяющих злоумышленнику получить доступ к исходному коду любой веб-страницы, которую посетил пользователь после входа в систему. При этом исходник может включать все виды конфиденциальной информации, в том числе идентификаторы пользователей и их персональные данные. Разработчик технологии Пол Стоун (Paul Stone) заявил, что вряд ли понадобится много времени, чтобы организаторы атак усовершенствовали его метод и начали активно пользоваться им.

«У них достаточно времени для его улучшения, — сообщил он. — Рано или поздно кто-то все равно воспользуется им со злым умыслом».

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

Стоун продемонстрировал данную технологию в своем докладе на конференции Black Hat USA 2013. Он показал, что есть способ использовать обнаруженную им временную разницу в работе браузера. Стоун написал код, измеряющий продолжительность обращения к каждой гиперссылке. Это позволило ему точно определять, на какие страницы заходил пользователь.

«Когда браузер прописывает гиперссылку в первый раз, первый фрейм всегда будет грузиться дольше. Если же линк ведет на страницу, где пользователь не был, фреймы грузятся намного быстрее, — объяснил Стоун. — При переходе на уже посещенную страницу будет наблюдаться замедленная загрузка фреймов».

«Исправить это невозможно. Нет ничего конкретного, что можно было бы использовать для защиты от данной технологии, — считает исследователь в области компьютерной безопасности и глава подразделения продакт-менеджмента компании WhiteHat Security Роберт Хансен (Robert Hansen). — И это очень и очень плохо».

При помощи данной технологии злоумышленники могут получить доступ к истории посещенных веб-страниц жертвы. Однако вторая часть сделанного Стоуном открытия является гораздо более тревожной. Исследователь выяснил, что применение фильтров на основе масштабируемой векторной графики (Scalable Vector Graphics, SVG) для просмотра посещаемых пользователем веб-страниц позволяет злоумышленнику видеть то же, что и жертва, в окне своего браузера. Стоун обнаружил, что, используя определенные фильтры, можно вычислить, какие пиксели становятся белыми, а какие — черными. А с помощью JavaScript можно проверить каждый пиксель в данном фрейме и полностью реконструировать историю событий.

Таким образом, по словам Стоуна, код JavaScript позволяет заставить браузер восстанавливать исходный код посещенной пользователем страницы. В зависимости от характера данной страницы этот код может включать ID жертвы и иные конфиденциальные данные. В качестве демонстрации Стоун показал исходный код страницы Google+ с номером телефона, Google ID и другой личной информацией.

«В реальности я мог бы попасть на страницу пользователя, дождаться, пока браузер освободится, и перейти в фоновый режим, — объяснил Стоун. — При этом получив доступ ко всему, что там находится».

«Данная технология может быть использована для сценариев атак любого вида, — комментирует Хансен, — включая целевые атаки против конкретных корпоративных или государственных пользователей, а также для организации крупномасштабных атак с загрузкой вредоносных объявлений или иного содержимого на взломанный сайт».

Следует добавить, что в Firefox есть возможность ограничивать процесс считывания пикселей, но Chrome пока остается уязвимым.

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