Публикуван е инструментариум за определяне на добавките, инсталирани в Chrome

Публикувани са инструментариум с реализация на метода за определяне на добавки, инсталирани в браузъра Chrome. Полученият списък с добавки може да се използва за увеличаване на точността на пасивната идентификация на конкретна версия на браузъра, в комбинация с други индиректни признаци, като резолюция на екрана, характеристики на WebGL, списъци с инсталирани плъгини и шрифтове. Предложената реализация проверява инсталирането на над 1000 добавки. За проверка на системата си е предложена онлайн демонстрация.

Определянето на добавки се извършва чрез анализ на ресурсите, предоставяни от добавките, достъпни за външни заявки. Обикновено добавките включват различни свързани файлове, като изображения, които се определят в манифеста на добавката чрез свойството web_accessible_resources. В първата версия на манифеста Chrome достъпът до ресурсите не е бил ограничен и всеки сайт е могъл да зарежда предоставените ресурси. Във втората версия на манифеста достъпът до подобни ресурси по подразбиране е разрешен само за самата добавка. В третата версия на манифеста е предоставена възможност да се определи кои ресурси могат да бъдат предавани на кои добавки, домейни и страници.

Web-страницы могут запрашивать поставляемые в дополнении ресурсы при помощи метода fetch (например «fetch(‘chrome-extension://okb….nd5/test.png’)»), возвращение которым значения «false» обычно свидетельствует о том, что дополнение не установлено. Для блокирования определения дополнения по наличию ресурсов некоторые дополнения генерируют проверочный токен, необходимый для доступа к ресурсу. Вызов fetch без указания токена всегда завершается неудачей.

Как оказалось, защиту доступа к ресурсам дополнений можно обойти, оценивая время выполнения операции. Несмотря на то, что fetch при запросе без токена, всегда возвращает ошибку, время выполнения операции при наличии и отсутствии дополнения отличается — если дополнение присутствует, то запрос потребует больше времени, чем если дополнение не установлено. Оценивая время реакции можно достаточно точно определить наличие дополнения.

Некоторые дополнения, которые не включают доступные из вне ресурсы, можно определить по дополнительным свойствам. Например, дополнение MetaMask можно определить через оценку определения свойства window.ethereum (если дополнение не установлено «typeof window.ethereum» вернёт значение «undefined»).

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster