- PVSM.RU - https://www.pvsm.ru -
При соблюдении ряда условий, опция фильтра $rewrite, внедренная в AdBlock, AdBlock Plus и uBlock с обновлением 3.2 от 17 июля 2018 года [1], позволяет выполнять произвольный код на отображаемой пользователю веб-странице, сообщается в блоге armin.dev [2].
Вот как описывается проблемная функция в самом патчноуте AdBlock:
В этом патче реализована новая опция фильтра
$rewrite, которая позволяет авторам списков фильтров предотвращать показ (в основном это касается видео) рекламных объявлений, которые ранее не могли быть заблокированы на ряде веб-сайтов.
Описываемая уязвимость затрагивает все три упомянутых блокировщика рекламы, суммарная аудитория которых превышает 100 млн пользователей. Использовать ее можно для атаки на любой веб-сервис, включая и не ограничиваясь, например, любым из ресурсов Google. Проблема носит повсеместный характер, то есть атака с одинаковой успешностью может быть проведена на любом популярном браузере и не зависит от его версии.
Уязвимость просуществовала почти 9 месяцев и была найдена только сейчас.
Автор блогозаписи-первоисточника поясняет, что опция $rewrite используется в AdBlock и других упомянутых блокировщиках для избежания отслеживания пользователя и блокирования рекламы путем перенаправления запросов от посещаемой веб-страницы. Так, $rewrite позволяет перенаправлять и не обрабатывать запросы типа SCRIPT, SUBDOCUMENT, OBJECT и OBJECT_SUBREQUEST.
Атака может состояться в том случае, если веб-сайт использует XMLHttpRequest или Fetch для загрузки и исполнения фрагментов (сниппетов) кода, одновременно позволяя совершать произвольные запросы.
То есть, для совершения атаки должно соблюдаться три условия:
XMLHttpRequest или Fetch и выполнить возвращенный код.Казалось бы, условий достаточно много, да и CSP — далеко не новинка в мире веб-разработки. Однако основная угроза найденной уязвимости не в том, как она работает, а в том, как распространяется.
Так как уязвимости подвержена система фильтров AdBlock, AdBlock Plus и uBlock, то путь «заражения» конечно жертвы крайне прост — через систему автообновления фильтров. Не секрет, что огромная часть пользователей пользуется готовыми фильтрами, а не настраивает их самостоятельно. При этом автор пакета фильтров может выкатить вредоносное обновление, провести атаку, а потом «перекатить» пакет, тем самым «заметая следы».
Наиболее простой способ обезопасить себя от упомянутой уязвимости — перейти на uBlock Origin. Этот блокировщик рекламы не поддерживает функцию $rewrite, то есть реализовать через него описанную атаку невозможно.
В противном случае на свой страх и риск стоит ждать следующего обновления AdBlock. В официальном блоге блокировщика буквально через несколько часов после публикации в блоге armin.dev появилась эта запись [4] с реакцией на уязвимость $rewrite.
В ней администрация AdBlock уверяет, что хоть уязвимость и специфическая, они крайне внимательно относятся к безопасности своей аудитории и уже в следующем обновлении [5] функция $rewrite будет выпилена из AdBlock.
Также, по заверениям администрации, они проверяют все списки фильтров и перепроверили их сейчас. По результатам проведенной проверки администрация рапортует, что ни один из существующих списков фильтров описанный метод атаки на пользователя в себе не содержал. С учетом того, что между моментом публикации исходной записи и ответа в блоге AdBlock прошло всего около четырех часов, только порадуемся оперативности команды блокировщика.
При этом удаление функции $rewrite из проекта — шаг назад для AbBlock, так как изначальна она создавалась для борьбы с всплывающей видеорекламой. Теперь она вернется ради всеобщей безопасности. Кроме этого, оперативность, с которой было принято решение полностью удалить $rewrite из проекта показывает, что хоть атака и специфична, но уж слишком жутко выглядят последствия ее массового проведения.
Автор: ITSumma
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/314717
Ссылки в тексте:
[1] с обновлением 3.2 от 17 июля 2018 года: https://adblockplus.org/releases/adblock-plus-32-for-chrome-firefox-and-opera-released
[2] сообщается в блоге armin.dev: https://armin.dev/blog/2019/04/adblock-plus-code-injection/
[3] Content Security Policy: https://developer.mozilla.org/ru/docs/Web/HTTP/CSP
[4] эта запись: https://adblockplus.org/blog/potential-vulnerability-through-the-url-rewrite-filter-option
[5] уже в следующем обновлении: https://github.com/adblockplus/adblockpluscore/blob/247943b2fa3464521bfee90edcbba5e64d29434e/lib/filterClasses.js#L1076
[6] Источник: https://habr.com/ru/post/448302/?utm_source=habrahabr&utm_medium=rss&utm_campaign=448302
Нажмите здесь для печати.