- Регистрация
- 14.05.16
- Сообщения
- 11.398
- Реакции
- 501
- Репутация
- 0
Многим уже известно, что
You must be registered for see links
. Защититься от их появления на своём сайте можно переводом его на HTTPS. Но что делать, если у вас нет такой возможности или для вас это слишком трудоёмко? Я провёл своё небольшое исследование и хочу поделиться простым и пока ещё эффективным способом против этой заразы.На Хабре уже были расследования на эту тему и я опирался на них:
-
You must be registered for see links
-
You must be registered for see links
Известно, что баннеры внедряются путём подмены оригинального JavaScript файла на вредоносный через редирект. А уже он вставляет на страницу сайта баннер и загружает оригинальный файл. Таким образом, при проверке на вирусы невозможно сразу обнаружить как на сайте появилась реклама, т.к. оригинальные файлы не изменяются, а редирект выполняется с определённым интервалом и обнаружить его достаточно сложно.
Для исследования нужен сайт работающий по протоколу HTTP и содержащий JS файлы. В качестве примера я взял сайт
You must be registered for see links
. С некоторой периодичностью на нём можно наблюдать баннеры.Я написал специальную
You must be registered for see links
. Она делает запрос по определённому URL через равные промежутки времени и сравнивает полученное содержание с предыдущим. Если содержание ответа отличается — оно сохраняется для изучения. При анализе запросов к небольшому скрипту
You must be registered for see links
обнаружилось, что всегда возвращается одинаковое содержание — редиректа нет.Тогда каким образом появляется баннер? При изучении исходного кода сайта обнаружился ещё один JS файл, который загружался по HTTP, но с другого хоста:
You must be registered for see links
. При анализе этого запроса периодически наблюдаем получение содержания вредоносного файла.Из скриншота видно, что вредоносное содержимое загружается приблизительно два раза в минуту, но могут быть и недолгие перерывы в работе редиректа. Содержимое зловреда каждый раз меняется путём обфускации кода и он содержит ссылку на оригинальный скрипт.
Скорее всего, существует некий «белый список» хостов, JS редирект для которых запрещён. Например, сайт
You must be registered for see links
. Несмотря на то, что он работает через HTTP протокол, баннеры на нём не появляются. А вот на сайте Музеи Кирова баннер присутствует, хотя редиректа для его скриптов и нет, но через редирект скрипта с другого хоста в него внедряется баннер. Чтоб устранить уязвимость в данном случае, скорее всего, достаточно запрашивать файл по HTTPS протоколу, т.е. просто заменить URL скрипта на
You must be registered for see links
.Но что делать, если ваш сайт не в «белом списке» и нужно использовать собственные скрипты? Я обнаружил простой способ избежать JS редиректа. Достаточно в URL скрипта добавить произвольный параметр:
You must be registered for see links
и редирект выполняться не будет.Вероятно, это сделано, чтоб редирект не нарушал работу сложных динамических JS сайтов, либо нужные файлы просто определяются по расширению .js. Но в любом случае, достаточно дописать к URL-ам скриптов на страницах вашего сайта случайные параметры и рекламные баннеры Ростелекома на нём появляться не будут.