Ви вводите в 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. Лікується не видаленням сторінок, а закриттям входу, чисткою коду і бази, зміною всіх доступів і заявкою на перевірку.
Потрібна допомога зі зламаним сайтом?
Перевіряю, чищу і закриваю вразливість, через яку зайшли.