Откуда берутся японские дорвеи (десятки тысяч спам-страниц на сайте)?

Последние несколько месяцев  наблюдается активное заспамливание взломанных сайтов статическими html страницами, содержащими контент и ссылки с иероглифами. Это японские дорвеи.

японские дорвеи

Дорвеи являются элементом “черного” SEO, с помощью которого выполняется недобросовестное поисковое продвижение коммерческих сайтов. Дорвеи перелинковывают страницы (в данном случае, японских интернет-магазинов), что позволяет увеличивать ссылочную массу сайта, вес страниц и поднимать позицию страниц в поисковой выдаче, а также увеличивать показатель PR страниц в Гугле.

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

Дорвеи загружаются по нескольку страниц в секунду, поэтому за пару дней число html файлов может вырасти до 50 000.  Кроме того что данные страницы замусоривают хостинг, поглощая мегабайты дискового пространства и тысячи inode, они также индексируются поисковыми системами и пагубно влияют на поисковую выдачу взломанного сайта. Удаление данных страниц из поисковой выдачи, к сожалению, очень небыстрый процесс, так как не достаточно просто удалить их с хостинга, необходимо, чтобы поисковый бот выполнил полную переиндексацию сайта, обнаружил, что страницы исчезли, а затем обновил поисковый индекс, удалив страницы из выдачи. Данный процесс зависит от скорости индексации сайта, и в некоторых случаях может занимать несколько месяцев.

Процесс лечения является достаточно типичным для сайта, взломанного в результате нецелевой атаки. Текущая версия сканера AI-BOLIT обнаруживает все вредоносные скрипты, с помощью которых выполняется загрузка спам-страниц. Паттерн заражения выглядит так:

паттерн заражения

Поэтому для лечения сайт необходимо просканировать в параноидальном режиме, а затем аккуратно удалить все вредоносные скрипты (бэкдоры) по отчету, а после этого и сами спам-страницы. Откатывать сайт из бэкапа бессмысленно, так как его снова взламывают и повторно загружают дорвеи. После лечения необходимо сразу закрывать уязвимости (обновлять CMS и плагины и/или выполнять «цементирование» сайта).

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

Запрос загрузки дорвей-страницы обычно идет к скрипту, размещенному в корневом каталоге сайта. В данном случае – cod.php.

Скрипт cod.php выполняет PHP код, который передается ему через переменную “yt”.

Далее, как в матрешке, в переменную “yt” передается еще один фрагмент PHP кода, который выполняет то, что закодировано в переменной “z0” в base64 формате.

Если расшифровать закодированный фрагмент, то это будет

Как мы видим, это снова base64 фрагмент. Расшифровываем и его.

В этом фрагменте в файл сохраняется статическая html страница, которая идет в этом же фрагменте выше (также в base64 кодировке)

Итак, несколько раз в секунду, вся эта машина записывает по нескольку файлов на диск и через 2-3 дня съедает до 300 мегабайт на хостинге.

Спам-страницы могут загружаться как в корневой каталог сайта, так и в сгенерированные каталоги, которые обычно называются случайными символами и размещены в корневом каталоге сайта. Одно время были также популярными каталоги wp-content и wp-include, в которые записывались до 10000 спам-страниц. Причем, независимо от того, на какой CMS работал сайт.

Если у вас на хостинге включен SSH, найти и удалить подобные страницы можно достаточно быстро. Поскольку язык страниц – японский, то в них обычно встречается фрагмент lang=”ja”. По нему можно найти все страницы с японской кодировкой и удалить их с помощью команды find:

find . -name '*.htm*' -type f -exec grep -l 'lang="ja"' {} \; -delete

Еще вариант – удалять страницы по дате добавления

find . -name '*.htm*' -newermt 2016-01-03 ! -newermt 2016-01-07 –delete

Данная команда найдет и удалит все файлы, созданные между 3м и 7м января 2016 года.  Но со второй командой нужно быть осторожным, так как вы могли загружать легитимные .html файлы на сайт.

Если самостоятельно справиться с проблемой дорвеев у вас не получается, обратитесь к нам в “Ревизиум”.