Рекламные баннеры Ростелекома и как с ними бороться

в 5:18, , рубрики: информационная безопасность, контекстная реклама, лайфхак айтишника, мини расследование, реклама в интернете

image

Многим уже известно, что Ростелеком при поддержке Mail.ru начал внедрение своих рекламных баннеров на сайтах не защищённых протоколом HTTPS. Защититься от их появления на своём сайте можно переводом его на HTTPS. Но что делать, если у вас нет такой возможности или для вас это слишком трудоёмко? Я провёл своё небольшое исследование и хочу поделиться простым и пока ещё эффективным способом против этой заразы.

На Хабре уже были расследования на эту тему и я опирался на них:

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

Для исследования нужен сайт работающий по протоколу HTTP и содержащий JS файлы. В качестве примера я взял сайт Музеи Кирова. С некоторой периодичностью на нём можно наблюдать баннеры.

Рекламные баннеры Ростелекома и как с ними бороться - 2

Я написал специальную утилиту. Она делает запрос по определённому URL через равные промежутки времени и сравнивает полученное содержание с предыдущим. Если содержание ответа отличается — оно сохраняется для изучения. При анализе запросов к небольшому скрипту http://muzey43.ru/js/script-eye.js обнаружилось, что всегда возвращается одинаковое содержание — редиректа нет.

Рекламные баннеры Ростелекома и как с ними бороться - 3

Тогда каким образом появляется баннер? При изучении исходного кода сайта обнаружился ещё один JS файл, который загружался по HTTP, но с другого хоста: http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js. При анализе этого запроса периодически наблюдаем получение содержания вредоносного файла.

Рекламные баннеры Ростелекома и как с ними бороться - 4

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

Скорее всего, существует некий «белый список» хостов, JS редирект для которых запрещён. Например, сайт Министерства культуры Кировской области. Несмотря на то, что он работает через HTTP протокол, баннеры на нём не появляются. А вот на сайте Музеи Кирова баннер присутствует, хотя редиректа для его скриптов и нет, но через редирект скрипта с другого хоста в него внедряется баннер. Чтоб устранить уязвимость в данном случае, скорее всего, достаточно запрашивать файл по HTTPS протоколу, т.е. просто заменить URL скрипта на https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js.

Но что делать, если ваш сайт не в «белом списке» и нужно использовать собственные скрипты? Я обнаружил простой способ избежать JS редиректа. Достаточно в URL скрипта добавить произвольный параметр: https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js?banner=off и редирект выполняться не будет.

Рекламные баннеры Ростелекома и как с ними бороться - 5

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

Автор: Ярослав Черных

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js