Skip to content

Все для WordPress, веб-розробки — і не тільки

🔍 Як перевірити сайт на WordPress на віруси та шкідливий код

🔍 Як перевірити сайт на WordPress на віруси та шкідливий код

Ви заходите вранці в адмінку, а там, редірект на фішинговий сайт. Або Google позначає всю видачу червоним «сайт може бути зламаний». Або хостинг надсилає лист про перевищення навантаження: чийсь скрипт розсилає спам із вашого сервера.

Шкідливий код у WordPress рідко заявляє про себе голосно. Місяцями він тихо збирає паролі, вбудовує приховані посилання, майнить крипту на чужих процесорах. За даними досліджень безпеки WordPress, 96% уразливостей в екосистемі WordPress припадає на плагіни та теми, а середній час між виявленням уразливості та початком її експлуатації скоротився до 48 годин. Без регулярного сканування ви дізнаєтеся про проблему останнім, коли пошуковики вже забанили домен, а хостинг заблокував акаунт.

Хороша новина: перевірити сайт на віруси та підозрілий код може будь-який адміністратор, без deep-експертизи в кібербезпеці. Достатньо правильного плагіна та 15 хвилин. Нижче, три основні інструменти, які закривають це завдання, і покроковий план дій, якщо зараження вже підтвердилося.

💡 Швидкий огляд:

  • Встановіть Sucuri Scanner для швидкої перевірки цілісності файлів і моніторингу змін, він порівнює поточний стан ядра та плагінів з офіційним репозиторієм.
  • Запустіть Wordfence для глибокого сканування: бекдори, шкідливі URL, відомі сигнатури заражень і вбудований файрвол на рівні застосунків.
  • Використовуйте Anti-Malware Security (GOTMLS) для комплексної перевірки всіх папок і файлів, включно з .htaccess і прихованими директоріями, з ручною верифікацією знахідок.
  • У разі виявлення вірусів: змініть паролі → зробіть бекап → запустіть професійне очищення або дійте за чеклістом з останнього розділу.

Ознаки того, що сайт WordPress час сканувати

Найкращий час для першого сканування, просто зараз. Більшість власників сайтів відкладають встановлення сканера «на потім», а шкідливий код тим часом робить свою справу. Регулярна перевірка раз на тиждень, базова гігієна, як бекапи чи оновлення.

Але є індикатори, що вимагають негайного запуску повного скану:

  • Google Search Console надсилає попередження про шкідливий контент або фішингові сторінки, які ви не публікували.
  • Різкий стрибок навантаження на сервер без зростання трафіку: чужий скрипт майнить криптовалюту або розсилає спам.
  • Незнайомі адміністратори в розділі Users, особливо з правами, які ви не видавали.
  • Мимовільні редіректи на сторонні сайти, особливо у відвідувачів із пошуковиків.
  • Підозрілі файли в корені сайту або папці /wp-content/uploads/ з нестандартними розширеннями на кшталт .php серед зображень.
  • Змінені файли ядра, які ви не чіпали: WordPress сам повідомить про це під час спроби оновлення.

Навіть якщо жодної ознаки немає, щотижневе сканування ловить загрозу на етапі впровадження, поки вона не завдала шкоди репутації та позиціям у пошуку.

1. Sucuri Security, аудит цілісності та моніторинг змін

Дашборд плагіна Sucuri Security з результатами сканування WordPress

Sucuri, один із найавторитетніших інструментів в екосистемі WordPress-безпеки. Безплатна версія плагіна закриває три ключові завдання: моніторинг цілісності файлів (порівнює хеші з еталоном із репозиторію), виявлення підозрілого коду та жорстке блокування низки векторів атаки через security hardening.

Плагін сканує ядро, теми та плагіни на предмет розбіжностей з офіційними версіями. Якщо файл змінено, ви бачите конкретний рядок і можете ухвалити рішення: легітимне виправлення чи ін’єкція. Sucuri також перевіряє наявність прихованих iframe, шкідливих посилань у контенті та аномальної активності в логах доступу.

Плюси:

  • Безплатне сканування цілісності та моніторинг змін без обмежень.
  • Платні тарифи включають DNS-файрвол, який блокує атаку ще до того, як вона досягне сервера — це ефективніше за файрволи рівня застосунків.
  • До платних планів входить ручне очищення сайту фахівцями Sucuri без додаткової оплати, критично для бізнесу.

Мінуси:

Sucuri на WordPress.org | Офіційний сайт Sucuri

2. Wordfence, глибоке сканування та файрвол на рівні застосунків

Сторінка сканування Wordfence з прогресом перевірки файлів WordPress

Wordfence встановлений на понад 4 мільйонах сайтів і входить до пʼятірки найбільш завантажуваних плагінів WordPress за всю історію. Його головна перевага, поєднання глибокого сканера та endpoint-файрвола в одному безплатному плагіні.

Сканер Wordfence перевіряє файли ядра, тем і плагінів на відповідність офіційному репозиторію, шукає відомі сигнатури шкідливого коду, бекдори (eval, base64_decode), підозрілі URL у контенті та коментарях. Після завершення сканування ви отримуєте звіт із групуванням знахідок: критичні, попередження, інформаційні.

Файрвол працює на рівні застосунків: аналізує вхідні запити до їх обробки WordPress, блокує брутфорс-атаки, сканування вразливостей і спроби експлуатації відомих дірок у плагінах. У преміум-версії додаються сигнатури загроз у реальному часі (правила оновлюються миттєво, а не із затримкою у 30 днів).

Плюси:

  • Глибоке сканування та файрвол безплатно, рідкість для ринку.
  • Автоматичне виправлення змінених файлів ядра та плагінів: заміна на оригінал із репозиторію в один клік.
  • Детальні звіти з рекомендаціями щодо кожного пункту.

Мінуси:

  • Безплатна версія отримує сигнатури файрвола із затримкою у 30 днів, платні користувачі бачать нові правила миттєво.
  • Файрвол рівня застосунків працює всередині WordPress: якщо сервер скомпрометовано на рівні хостингу, Wordfence не допоможе.

Wordfence на WordPress.org | Сайт Wordfence

3. Anti-Malware Security (GOTMLS), комплексна перевірка кожного файлу

Інтерфейс плагіна Anti-Malware Security з налаштуваннями повного сканування сайту

Anti-Malware Security від GOTMLS, менш відомий, але надзвичайно прискіпливий сканер. Він не обмежується стандартними директоріями WordPress: плагін перевіряє взагалі всі файли та папки у вашій інсталяції, включно з .htaccess, прихованими директоріями та конфігураційними файлами сервера.

Алгоритм шукає відомі шаблони заражень, шкідливі скрипти, обфускований код, приховані eval-інʼєкції та аномалії в структурі файлів. Автор активно оновлює базу визначень: нові сигнатури зʼявляються в міру виявлення свіжих загроз у дикій природі.

Головний нюанс, висока чутливість. Плагін часто видає хибні спрацювання, особливо на кастомних темах і плагінах із нестандартною архітектурою. Кожну знахідку потрібно вручну порівнювати з оригіналом, для цього знадобиться певний рівень технічної підготовки та час.

Плюси:

  • Сканує всі директорії сервера, не лише WordPress.
  • Активно оновлювані визначення шкідливого коду, база живе та поповнюється щотижня.
  • Включає опцію брандмауера на рівні застосунків у безплатній версії.

Мінуси:

  • Багато хибних спрацювань: без ручної верифікації знахідок не обійтися.
  • Інтерфейс спартанський, звіти менш деталізовані, ніж у Wordfence або Sucuri.
  • Вимагає від адміністратора розуміння структури файлів WordPress.

Anti-Malware Security на WordPress.org

Що робити, якщо сканер знайшов віруси: покроковий план очищення

Процес очищення зламаного WordPress-сайту через панель керування безпекою

Сканер показав критичні знахідки, не панікуйте. Послідовні дії з холодною головою повернуть сайт до ладу швидше, ніж хаотичне видалення файлів навмання.

Крок 1: Змініть усі паролі. Негайно оновіть облікові записи адміністраторів WordPress, доступ до панелі хостингу, FTP/SFTP та пароль бази даних. Якщо зловмисник отримав доступ через скомпрометований пароль, цей крок обірве його сесію.

Крок 2: Зробіть повний бекап. Зніміть копію файлів через FTP і бази даних через phpMyAdmin, навіть заражену. Якщо щось піде не так під час очищення, у вас буде точка відновлення. Бекап робіть до початку будь-яких маніпуляцій.

Крок 3: Ізолюйте сайт. Увімкніть режим обслуговування через плагін або .maintenance. Якщо хостинг дозволяє, тимчасово закрийте доступ до сайту за IP, залишивши тільки ваш. Це зупинить подальше поширення зарази на відвідувачів.

Крок 4: Запустіть професійне очищення. Це не той випадок, де варто економити. Сервіси на кшталт Sucuri (у межах платного тарифу) та Wordfence Care передбачають ручне очищення фахівцями: вони знаходять і видаляють усі сліди зламу, включно з прихованими бекдорами, які любительське око пропустить. Ціна питання: від $199 на рік (Sucuri) до $490 на рік (Wordfence Care), що можна порівняти з днем-двома простою бізнесу.

Крок 5: Самостійне очищення (якщо впевнені у силах). Відновіть ядро WordPress зі свіжого дистрибутива, замініть усі плагіни й теми на оригінальні версії з репозиторію, вручну перевірте /wp-content/uploads/ на наявність PHP-файлів і видаліть усе, чого там бути не повинно. Після очищення, повторне сканування: сайт має бути чистим.

Крок 6: Посильте захист. Установіть двофакторну автентифікацію для всіх адміністраторів, обмежте кількість спроб входу, закрийте XML-RPC, якщо він не потрібен, і налаштуйте автоматичні оновлення ядра та плагінів. Фаєрвол рівня DNS (Sucuri або Cloudflare) дасть додатковий рубіж оборони перед сервером.

⁉️🤔 Часті запитання

Чи достатньо безплатних плагінів для захисту, чи обов'язково купувати преміум?

Безплатні версії Wordfence і Sucuri Scanner чудово справляються з виявленням загроз, більшість заражень вони знаходять. Але автоматичне видалення, фаєрвол реального часу та ручне очищення фахівцями доступні лише в платних тарифах. Якщо сайт приносить дохід, преміум окупається першою ж відверненою атакою.

Як часто потрібно запускати сканування?

Щотижня — це мінімальна гігієна для будь-якого сайту на WordPress. Якщо ви активно встановлюєте нові плагіни або приймаєте користувацький контент, краще налаштувати щоденне автоматичне сканування в Wordfence або Sucuri. Обидва плагіни вміють надсилати звіти на email.

Чи можна використовувати два сканери одночасно?

Технічно можна, але на практиці фаєрволи двох плагінів можуть конфліктувати, а подвійне сканування створює надлишкове навантаження на сервер. Оптимальна схема: один основний плагін із фаєрволом (Wordfence) і періодична перевірка другим сканером (Sucuri Free або GOTMLS) раз на місяць для другої думки.

Що робити, якщо шкідливий код з'являється знову після очищення?

Повторне зараження після очищення — це ознака залишеного бекдора. Перевірте wp-config.php на незнайомі константи, папку /wp-content/mu-plugins на приховані must-use плагіни та cron-завдання через WP-CLI (wp cron event list). Скиньте всі API-ключі та salts у wp-config.php. Якщо після цих кроків проблема повертається, залучайте фахівців Sucuri або Wordfence: самостійне полювання на складний бекдор може зайняти дні.

Чи впливає плагін безпеки на швидкість сайту?

Фаєрвол рівня DNS (Sucuri, Cloudflare) прискорює сайт за рахунок кешування та CDN, запити не доходять до сервера. Фаєрвол рівня застосунків (Wordfence) додає 50-150 мс до обробки запиту на некешованих сторінках. Сканування за розкладом навантажує сервер лише в момент роботи, зазвичай уночі, на відвідувачах це не позначається.

Чи варто сканувати сайт вручну чи довіритися плагіну?

Ручна перевірка кожного PHP-файлу на бекдори можлива, але безглузда: сучасний шкідливий код маскується під легітимні конструкції, використовує багатоступеневу обфускацію та ховається в base64-рядках усередині медіафайлів. Плагін-сканер з активною базою сигнатур робить цю роботу за секунди й не пропускає відомі патерни.

На практиці оптимальний стек для більшості сайтів виглядає так: Wordfence як основний сканер і фаєрвол (глибоке сканування, миттєві сповіщення, автовиправлення файлів ядра безплатно), плюс Sucuri Free для перехресної перевірки цілісності раз на місяць. Якщо бюджет дозволяє, Sucuri Platform за $199/рік знімає взагалі всі питання: DNS-фаєрвол, моніторинг, видалення шкідливого коду та CDN в одному пакеті.

Запустіть перше сканування сьогодні. Навіть якщо сайт чистий, ви отримаєте baseline, точку відліку для всіх майбутніх перевірок. А якщо сканер знайде проблему, ви дізнаєтеся про неї до того, як про неї дізнається Google.