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

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

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



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



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

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

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



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

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



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

    101widgets.com



    widgetsmonster.com



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

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

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



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

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

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

    В завершении хотелось бы еще раз обратить внимание веб-разработчиков и владельцев сайтов на источники, из которых загружаются скрипты, виджеты и шаблоны. Не стоит устанавливать на сайт взломанные коммерческие компоненты и плагины, или бесплатные, но загруженные не с официального сайта или репозитория разработчика. Подобные простые правила значительно снизят вероятность добровольного размещения несанкционированной рекламы, бэкдоров, спам-ссылок, мобильного редиректа или вредоносного кода на своем сайте. Ну и, конечно, если вы используете виджеты с одного из перечисленных в статье доменов, лучше с сайта их убрать.
    Метки:
    • +12
    • 22,4k
    • 9
    Поделиться публикацией
    Комментарии 9
    • +10
      Думаю, что эти «разработчики» — те же личности, что устанавливают себе Амиго и тулбары Одноклассников для IE.
      • +5
        Но в последнее время все больше веб-мастеров пользуются pluso
        у меня для вас плохие новости…
        • 0
          Вы имеете ввиду это habrahabr.ru/post/231887? Там хотя бы треккеры встраиваются. Но все это, конечно, тоже зло.
          • +1
            Компания, которая имеет полный доступ к вашему сайту (with great power comes great responsibility) и при этом что-то вставляет без вашего ведома туда, полностью должна терять любое доверие. Что бы они ни вставляли, что бы ни говорили, уже не важно.
            Ну и да, эти «счётчики» незабесплатно стоят в плюсо, это продажа трафика этим счётчикам и большие деньги. Трафика ваших сайтов, ваших пользователей, себе в карман.
        • 0
          Меня смущает у сервиса ulogin куча фреймов, там тоже дела обстоят печально? Можно использовать?:)
          • 0
            На самом деле все, что грузится с внешних сервисов — есть зло. Такие услуги не могут быть бескорыстны. В лучшем случае это слежка, в худшем вирусы. К сожалению, сегодня многие готовы подключать внешние файлы вообще без какой-либо конкретной выгоды для себя, чего уже говорить о полезных виджетах. И не похоже, что ситуация в ближайшее время изменится в лучшую сторону.
            • 0
              А вы jQuery с гугловского CDN берете или тоже себе копируете? Или Google Fonts? Не говоря уж о JS-ках всякой аналитики типа mixpanel или платежек?
              • 0
                Вы таки не поверите… но таки да!
                • 0
                  Вы думаете, что гугл все это раздает по доброте душевной? Подключение jQuery с чужих серверов хороший пример того, как поставить свой проект под чужое влияние и ничего не получить взамен.

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.