Вы вводите в Google site:вашсайт.com и видите сотни страниц на японском, которые продают кроссовки и часы известных брендов. Сайт при этом открывается нормально: та же главная, те же разделы, ничего подозрительного. Именно так выглядит Japanese keyword hack, он же japanese SEO spam.
Это один из самых распространённых взломов WordPress, и Google описывает его отдельно в документации для владельцев взломанных сайтов. Ниже - как он устроен, почему владелец узнаёт последним, и что делать дальше.
Что именно делают злоумышленники
Получив доступ к сайту, злоумышленник не портит главную страницу. Ему нужен совсем другой результат: ваш домен с его историей и доверием Google должен начать продавать подделки.
Поэтому он делает три вещи:
- Генерирует тысячи страниц на японском в случайно названных папках вашего сайта. Тексты автоматические, товары - подделки брендовой одежды, обуви, часов.
- Создаёт собственную карту сайта и подсовывает её Google, чтобы эти страницы проиндексировались быстрее.
- Добавляет себя владельцем ресурса в Search Console, если есть доступ к файлам. Так он видит, когда вы начнёте что-то замечать.
Почему в браузере всё выглядит нормально
Ключевая причина, почему взлом живёт месяцами: клоакинг. Вредоносный код проверяет, кто именно пришёл на страницу.
Если это робот Google - отдаётся спамная японская страница. Если обычный посетитель - отдаётся нормальный контент или редирект на главную. Иногда дополнительно проверяется источник перехода: переход из поиска ведёт на спам, прямой заход - на обычный сайт.
Владелец открывает свой сайт, видит, что всё работает, и успокаивается. А Google в это время видит совсем другой сайт.
Семь признаков, что сайт взломан именно так
- Запрос
site:вашсайт.comв Google показывает страницы на японском или адреса, которых вы не создавали. - Резкий скачок количества проиндексированных страниц в Search Console. Было 40, стало 4 000.
- Письмо от Google Search Console с темой о взломанном сайте и спам-контенте.
- В Search Console появился новый владелец ресурса, которого вы не добавляли. Проверяется в Настройках, раздел Пользователи и разрешения.
- В корне сайта лежит карта сайта, которую вы не создавали, часто со случайным именем.
- В WordPress появились новые администраторы или пользователь со странной почтой.
- Позиции по своим запросам падают, а трафик из поиска идёт вниз, хотя вы ничего не меняли.
Как проверить самостоятельно за 15 минут
1. Посмотреть глазами Google
Самая быстрая проверка - поисковый запрос site:вашсайт.com. Если среди результатов есть японские заголовки, вопрос закрыт.
Вторая проверка точнее: в Search Console откройте Проверку URL, вставьте адрес подозрительной страницы и запустите проверку на живом сайте. Google покажет, что видит именно он, а не ваш браузер. Клоакинг здесь и обнаруживается.
2. Проверить пользователей
В Search Console: Настройки, Пользователи и разрешения. Любой владелец, которого вы не добавляли, - это чужой доступ, и его надо удалить.
В WordPress: Пользователи, фильтр по роли Администратор. Лишних удалить.
3. Поискать следы в файлах
Самые частые места, где прячется код:
- файлы с расширением
.phpв папкеwp-content/uploads, где их не должно быть вообще; - дописанный блок правил в
.htaccess; - сторонний код в
wp-config.php,index.php, в файлах активной темы; - плагин, который вы не устанавливали, часто без страницы настроек.
Признаки вредоносного кода в PHP: eval(, base64_decode(, gzinflate(, str_rot13(, длинные строки бессмысленных символов. Легальные плагины так почти никогда не пишут.
Важно: найти один вредоносный файл и удалить его недостаточно. Взломанные сайты почти всегда имеют несколько точек возврата: запланированная задача в WordPress, ещё один бэкдор в другой папке, добавленный администратор. Уберёте одно - через сутки всё вернётся.
Порядок лечения
Последовательность важна. Если переставить шаги местами, сайт можно зачистить и тут же заразить снова из собственного бэкапа.
- Сделать копию в том состоянии, как есть. Да, заражённую. Она нужна, если что-то пойдёт не так во время чистки, и как материал для разбора.
- Переустановить ядро WordPress той же версии поверх имеющегося. Это убирает подмены в системных файлах, не трогая ваш контент.
- Обновить или удалить уязвимый плагин или тему. Чаще всего вход был именно здесь: устаревший плагин с известной дырой.
- Вычистить вредоносный код в теме, uploads, .htaccess, wp-config и базе данных. В базе спам часто сидит в таблице настроек и в записях.
- Удалить чужих пользователей в WordPress и в Search Console.
- Сменить все пароли: администраторы WordPress, хостинг, FTP и SFTP, база данных. И обязательно обновить ключи безопасности в
wp-config.php- это выгонит всех, кто сейчас сидит в сессиях. - Убрать спамные страницы правильно. Они должны отдавать код 410, а не 404 и не редирект на главную. 410 прямо говорит Google, что страниц больше нет навсегда.
- Удалить чужую карту сайта и подать свою заново.
- Запросить проверку в Search Console, в разделе Проблемы безопасности, с описанием того, что было сделано.
Сколько времени занимает восстановление
Сама чистка - несколько часов работы. Дальше начинается медленная часть:
- проверка от Google после заявки - обычно несколько дней;
- выпадение спамных страниц из индекса - от недели до нескольких недель;
- возврат позиций по своим запросам - месяц и дольше.
Главное правило простое: чем раньше заметили, тем дешевле выйдет.
Чего делать не стоит
Просто удалить найденные страницы. Они сгенерируются снова, потому что причина - доступ, а не страницы.
Откатиться на старый бэкап и на этом успокоиться. Если в бэкапе та же уязвимость, вас взломают повторно тем же способом.
Поставить плагин безопасности поверх заражения. Он не убирает то, что уже внутри.
Как не попасть повторно
- обновлять WordPress, плагины и темы, а не откладывать на потом;
- убрать всё, чем не пользуетесь: неактивный плагин тоже уязвим;
- не ставить темы и плагины с торрентов и сайтов с бесплатными премиум-версиями;
- двухфакторная аутентификация для администраторов;
- отдельный пользователь базы данных без лишних прав;
- регулярные бэкапы, которые хранятся не на том же сервере.
Коротко
Japanese keyword hack не ломает внешний вид сайта, поэтому его замечают поздно. Проверяется запросом site: в Google и Проверкой URL в Search Console. Лечится не удалением страниц, а закрытием входа, чисткой кода и базы, сменой всех доступов и заявкой на проверку.
Нужна помощь со взломанным сайтом?
Проверяю, чищу и закрываю уязвимость, через которую зашли.