Не все виджеты одинаково «полезны»

Иногда веб-мастера и владельцы сайтов добровольно (естественно, по незнанию) устанавливают себе на сайте компоненты, которые несут угрозу как посетителям, так и самому сайту. В основном это касается любителей халявы: бесплатные премиум шаблоны, “нулленые” коммерческие CMS, плагины, загруженные не с сайта разработчика и прочие “бесплатности”. К этому списку можно смело добавлять javascript и flash-виджеты для сайта: календарь, mp3-плейер, калькулятор, конвертер валют — все эти элементы, кроме полезных функциональных элементов сайта, могут принести целую “вязанку” нежелательного контента или даже распространять вредоносный код, заражая компьютеры и мобильные устройства посетителей сайта.

На первый взгляд подобные виджеты размещают только “Васи Пупкины” на страницах своих личных блогов, но за последнюю неделю мне довелось анализировать три коммерческих и достаточно посещаемых проекта, которые также использовали зараженные виджеты (один размещал калькулятор для подсчета суммы заказа, второй – календарь на новостном сайте, третий – онлайн-радио).

6667102194954635886cc0f98b473b78.png
Ситуация с распространением вредоносного кода через виджеты усугубляется еще и тем, что каталоги и агрегаторы данных ресурсов выводятся на первых строчках поисковых систем по целевым запросам, что явно увеличивает вероятность их использования веб-мастерами.

c212b36d153d45cfbd5ee74d80ae74f9.png

Итак, какие проблемы появлялись на сайтах, где были установлены зараженные виджеты? Всегда выполнялись редиректы, но зависели они от платформы и браузера:

1. При заходе с андроид-устройства в результате серии перенаправлений происходила загрузка вирусного .apk файла на устройство посетителя под видом обновления системных компонентов или антивируса для мобильного.

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

57dc2f39d2d240678c57d2ea1a0b5f93.png

3. При посещении страниц с браузера под Windows, посетителю открывались попандеры или перенаправляло на различные партнерские программы.

Редирект выполнялся один раз в сутки для одного IP при установленном поле Referer, что несколько затрудняло обнаружение проблем при просмотре кода виджета в браузере или при повторном заходе на сайт в течение дня. Для иллюстрации приведу результат загрузки виджета с установленным полем Referer и без оного:

984011f030624f698514ab47f3c82f2e.png

Проанализированные виджеты с редиректами загружались с двух агрегаторов:

101widgets.com

26db24d6de734ca5948d59e894725772.png

widgetsmonster.com

072004c3fe384ba7997314e8b4c6c369.png

Дальнейший поиск выявил еще ряд сайтов того же владельца:

xuxu.org.ua
widgetok.com
mygold.pp.ua
www.mygold.pp.ua
widgeta.net

В свое время похожая проблема была в сервисе “Одна кнопка”, которая вместе с полезной нагрузкой в виде сервиса добавления в закладки и функции “поделиться” подгружала код мобильных и WAP-партнерок. Выглядело это так:

8b2fc42ff5424bbab4ebb2359fc3277a.jpg

Но в последнее время все больше веб-мастеров пользуются pluso, share.yandex.ru, виджетами от ВКонтакте, Facebook и другими крупными сервисами, поэтому я давно не сталкивался с сайтами, на которых установлен виджет “OK”.

К сожалению, подобные проблемы с виджетами невозможно выявить, проверяя файлы сайта антивирусами или специализированными сканерами вредоносного кода, какими бы эффективными они ни были. Поскольку код самого виджета не является вредоносным, а редиректы возникают в результате несанкционированной подгрузки сторонних скриптов вместе с загрузкой flash кода. Эффективным способом обнаружения «левых» скриптов при загрузке страниц является применение снифферов трафика (Fiddler, Wireshark, Charles, etc). Анализ HTTP трафика поможет выявить причины редиректов, рекламных баннеров, попандеров и пр.

В качестве решения проблем с редиректами (кроме, естественно, удаления самого источника редиректа с сайта) можно также посоветовать настроить правила CSP, добавив в доверенные только те источники кода и данных (хосты), в которых вы уверены. Это поможет избавиться в том числе и от «левых» переходов в статистике посещений сайта, что сейчас является достаточно частым явлением.

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

© Habrahabr.ru