lamapixel
0%
Безпека · 11 хв читання

Як вичистити зламаний WordPress

Зламаний WordPress, вичищений по-нормальному: знайти бекдори, видалити впроваджений код, закрити точку входу і полагодити те, що лишилося в Google.

Як вичистити зламаний WordPress

Перша година: що зробити, перш ніж щось видаляти

Перша реакція на знайдений малвар - почати видаляти файли. Не робіть цього. Заражені файли - це доказ того, через що саме зайшов зловмисник, і якщо ви знищите слід, то вичистите сайт сьогодні, а за тиждень чиститимете знову.

Спершу чотири речі:

  • Усе одно зробіть бекап - файли й базу, разом із зараженням. Якщо чистка піде не так, це єдиний шлях назад.
  • Запишіть дати змін. Відсортуйте файли за часом правки. Найстаріший змінений файл зазвичай найближче до точки входу.
  • Поки не міняйте паролі. Міняйте їх після видалення бекдорів, інакше ви просто віддасте зловмиснику нові.
  • Увімкніть режим обслуговування, якщо сайт віддає спам або перенаправляє живих відвідувачів.

Переконайтеся, що сайт справді зламано

Не кожен дивний симптом - це малвар. Конфлікт плагінів, зламаний кеш чи прострочений сертифікат виглядають не менш тривожно. Три перевірки швидко скажуть, чи є проникнення:

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 - там ця конкретна атака розглянута докладніше.

Потрібна допомога?

Напишіть нам - разом знайдемо рішення.

Призначити консультацію →