Перша година: що зробити, перш ніж щось видаляти
Перша реакція на знайдений малвар - почати видаляти файли. Не робіть цього. Заражені файли - це доказ того, через що саме зайшов зловмисник, і якщо ви знищите слід, то вичистите сайт сьогодні, а за тиждень чиститимете знову.
Спершу чотири речі:
- Усе одно зробіть бекап - файли й базу, разом із зараженням. Якщо чистка піде не так, це єдиний шлях назад.
- Запишіть дати змін. Відсортуйте файли за часом правки. Найстаріший змінений файл зазвичай найближче до точки входу.
- Поки не міняйте паролі. Міняйте їх після видалення бекдорів, інакше ви просто віддасте зловмиснику нові.
- Увімкніть режим обслуговування, якщо сайт віддає спам або перенаправляє живих відвідувачів.
Переконайтеся, що сайт справді зламано
Не кожен дивний симптом - це малвар. Конфлікт плагінів, зламаний кеш чи прострочений сертифікат виглядають не менш тривожно. Три перевірки швидко скажуть, чи є проникнення:
1. Знайдіть у Google site:вашдомен.ua. Це покаже, що проіндексовано, а не те, що малює ваш браузер. Сторінки, яких ви не створювали - японські ієрогліфи, назви аптек, казино, випадкові рядки в адресах - означають впроваджений контент.
2. Запитайте власну сторінку як Googlebot. Більшість SEO-спаму працює через клоакінг: він віддається лише тоді, коли user agent схожий на пошукового робота. Сторінка, чиста в Chrome і спамна для Googlebot, - характерний підпис SEO-спам-зараження.
3. Відкрийте Search Console. Звіт «Проблеми безпеки» називає проблему прямо. У звіті про індексування буде видно різкий стрибок кількості сторінок, якщо їх впровадили.
Де шукати зараження
Майже на кожному скомпрометованому WordPress малвар ховається в чотирьох місцях:
- Файли ядра. Порівняйте
wp-adminіwp-includesз чистою копією тієї самої версії WordPress. Усе, що відрізняється, поклав туди не WordPress. - Плагіни й теми. Той самий метод - перевстановити з офіційного джерела, а не лагодити окремі файли. Особлива увага плагінам, які ви вимкнули, але не видалили: PHP-файли вимкненого плагіна досі доступні через HTTP.
- Папка uploads. У
wp-content/uploadsмають бути медіафайли й нічого більше. Файл.phpтам - це бекдор, без винятків. - mu-plugins. Папка
wp-content/mu-pluginsпідвантажується автоматично й у списку плагінів не з'являється. Зловмисники її люблять саме тому, що більшість власників сайтів туди жодного разу не заглядали.
Крім файлів перевірте базу. Впроваджені скрипти зазвичай живуть у таблиці wp_options, а чужі адміністратори - у wp_users.
Як видалити по-нормальному
Надійна послідовність, саме в такому порядку:
- Замініть ядро WordPress свіжозавантаженою ідентичною версією.
- Видаліть усі плагіни й теми, потім поставте лише ті, якими справді користуєтеся, з офіційного репозиторію. Плагін, покинутий автором, перевстановлювати не варто.
- Видаліть кожен
.phpіз папки uploads. - Очистіть
mu-plugins, якщо ви туди нічого не клали навмисно. - Перевірте
.htaccessіwp-config.phpна впроваджені правила та include. - Видаліть незнайомі адміністраторські акаунти, решті скиньте паролі.
- Змініть солі у
wp-config.php- це обнулить усі наявні сесії. - Змініть пароль бази даних і доступи до хостингу та FTP.
Зачиніть за собою двері
Чистка без хардненінгу - тимчасовий ремонт. Що запобігає переважній більшості повторних заражень:
- Оновлюйте WordPress, плагіни й теми - абсолютна більшість проникнень експлуатують уразливість, закриту патчем багато місяців тому.
- Заборонiть виконання PHP у
wp-content/uploads. - Увімкніть двофакторну автентифікацію на всіх адміністраторських акаунтах.
- Приберіть сторінку входу з
/wp-admin. - Плагіни, якими не користуєтеся, видаляйте, а не вимикайте.
- Тримайте бекапи не на тому сервері, який вони бекаплять.
Наш гід із захисту WordPress розбирає кожен пункт докладно.
Полагодьте те, що лишилося в Google
Цей крок пропускає більшість інструкцій, а саме він вирішує, чи повернеться трафік.
Видалення малвару з сервера не видаляє спам-сторінки з індексу Google. Ці адреси лишаються в індексі, доки Google не обійде їх заново й не виявить, що їх більше немає. Потрібно:
- Перегенерувати sitemap, щоб у ньому були лише справжні сторінки.
- Прибрати із Search Console будь-якого користувача чи власника, якого ви не додавали - зловмисники регулярно підтверджують себе, щоб пришвидшити індексацію свого спаму.
- Надіслати запити на видалення впроваджених адрес.
- Подати запит на повторну перевірку, якщо накладено заходи вручну, з описом того, що було скомпрометовано і що ви змінили.
Розраховуйте, що відновлення займе тижні, а не дні. Сайти, вичищені швидко, зазвичай повертаються на попередні позиції; сайти, що спамили місяцями, іноді осідають трохи нижче.
Якщо сайт заражається знову
Малвар, що повернувся за пару днів після чистки, означає, що щось лишилося. Звичайні винуватці: бекдор у каталозі, який ви не перевірили, завдання у wp_cron, що перевстановлює пейлоад, другий адміністраторський акаунт, або - на шаред-хостингу - інший заражений сайт під тим самим акаунтом, який пише у ваш.
На цьому етапі чистка файл за файлом перестає бути вигідною. Швидше перезібрати: чиста інсталяція WordPress, свіжі копії плагінів і контент, перенесений лише після перевірки.
Коли варто передати
Вичистити зламаний WordPress самому реально, якщо зараження свіже, обмежене одним плагіном, а сайт невеликий. Це перестає бути реальним, коли сайт заробляє й лежить, коли вже накладено заходи вручну, або коли друга чистка не допомогла.
Ми робимо це як послугу: чистка зламаного WordPress-сайту. Первинна перевірка безкоштовна - надішліть адресу, і ми скажемо, що знайшли, незалежно від того, найметe ви нас чи ні.
Якщо спам-сторінки на вашому сайті японською, почніть з нашого розбору Japanese keyword hack - там ця конкретна атака розглянута докладніше.