Опасная уязвимость в популярном плагине WPBakery для WordPress угрожает более чем 4 миллионам сайтов
Если ваш сайт на WordPress взломали — действовать нужно мгновенно. В этом практическом руководстве вы получите пошаговый план: что делать в первые минуты и часы, как безопасно сохранить доказательства, быстро провести очистку и восстановить работу сайта вместе с SEO-показателями. Следуйте инструкциям по порядку или передайте их хостингу/специалистам — это сократит время простоя и снизит риски повторного взлома.
🚨 НЕМЕДЛЕННЫЕ ДЕЙСТВИЯ (Первые 30 минут)
Шаг 1: Сохраняйте спокойствие и оцените ситуацию
Не паникуйте! Сделайте глубокий вдох. Большинство взломов WordPress можно восстановить.
Признаки того, что ваш сайт взломан:
- Неожиданные перенаправления на другие сайты
- Спам-контент появляется на вашем сайте
- Предупреждение Google “Этот сайт может быть взломан”
- Изменённая главная страница
- Не можете войти в панель администратора
- Медленная работа или сбои сайта
- Неизвестные пользователи-администраторы
- Хостинг-аккаунт приостановлен
- Странные файлы в директориях
Задокументируйте всё:
- Сделайте скриншоты подозрительной активности
- Запишите время обнаружения взлома
- Запишите любые сообщения об ошибках
- Проверьте, когда вероятно произошёл взлом
Шаг 2: Включите режим обслуживания
Предотвратите просмотр скомпрометированного сайта посетителями:
Вариант А: Используя плагин (если вы всё ещё можете войти)
Установите плагин "WP Maintenance Mode" или "Coming Soon"
Активируйте режим обслуживания
Вариант Б: Ручной метод (через FTP/Файловый менеджер)
Создайте файл с именем .maintenance в корневой директории WordPress:
php
<?php
$upgrading = time();
?>
Вариант В: Через .htaccess
Добавьте это в ваш файл .htaccess:
apache
RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123$ # Замените на ВАШ IP
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteRule ^(.*)$ /maintenance.html [R=307,L]
Затем создайте простой файл maintenance.html.
Шаг 3: Немедленно смените ВСЕ пароли
Критически важные пароли для смены (в этом порядке):
- Пароль администратора WordPress
- Перейдите: Пользователи → Ваш профиль → Сгенерировать пароль
- Используйте сильный пароль (20+ символов, смешанный регистр, цифры, символы)
- Панель управления хостингом (cPanel/Plesk)
- Войдите в ваш хостинг-аккаунт
- Смените основной пароль аккаунта
- Пароль FTP/SFTP
- Через панель управления хостингом
- Обновите учётные данные во всех FTP-клиентах
- Пароль базы данных
- cPanel → Базы данных MySQL → Сменить пароль
- Обновите
wp-config.phpс новым паролем
- Почтовые аккаунты
- Все email-адреса, связанные с доменом
- Другие пользователи
- Принудительно сбросьте пароли для всех пользователей WordPress
Лучшие практики для паролей:
- Минимум 20 символов
- Используйте менеджер паролей (1Password, LastPass, Bitwarden)
- Никогда не используйте пароли повторно
- Включите 2FA везде, где возможно
Шаг 4: Свяжитесь с вашим хостинг-провайдером
Позвоните или создайте тикет поддержки немедленно:
Скажите им:
- “Мой WordPress сайт, похоже, взломан”
- “Пожалуйста, проверьте логи сервера на подозрительную активность”
- “Можете ли вы восстановить из недавней чистой резервной копии?”
- “Был ли приостановлен мой аккаунт?”
Попросите их:
- Проверить логи доступа к серверу
- Проверить на скомпрометированные аккаунты
- Просканировать на вредоносное ПО
- Определить вектор атаки
- Подтвердить, затронуты ли другие сайты на сервере
Запросите:
- Недавнюю чистую резервную копию (до взлома)
- Файлы логов, показывающие подозрительную активность
- Любые оповещения или уведомления о безопасности
🔍 ФАЗА ОЦЕНКИ (30-60 минут)
Шаг 5: Определите тип взлома
Распространённые типы взломов WordPress:
А. Внедрение вредоносного ПО
- Симптомы: Перенаправления, всплывающая реклама, скрытые iframe
- Ищите: Обфусцированный код, строки в кодировке base64
Б. Pharma-взлом
- Симптомы: Спам-страницы с продажей фармацевтики
- Ищите: Скрытые страницы, скрипты маскировки
В. SEO-спам
- Симптомы: Спам-ключевые слова, скрытые ссылки
- Ищите: Внедрённые ссылки в подвале/комментариях
Г. Бэкдор
- Симптомы: Повторяющиеся заражения, скрытые учётные записи администраторов
- Ищите: Shell-скрипты, подозрительные PHP-файлы
Д. Успешная брутфорс-атака
- Симптомы: Несанкционированный доступ администратора
- Ищите: Логи входов, новые пользователи-администраторы
Е. Дефейс (изменение внешнего вида)
- Симптомы: Главная страница заменена на сообщение хакера
- Ищите: Изменённые index.php, wp-config.php
Шаг 6: Просканируйте ваш локальный компьютер
Ваш компьютер тоже может быть скомпрометирован!
Запустите полное сканирование с помощью:
- Windows Defender (Windows)
- Malwarebytes (Все платформы)
- BitDefender или Kaspersky
- ClamAV (Linux/Mac)
Проверьте на:
- Кейлоггеры
- Похитители паролей
- Кражу FTP-учётных данных
- Компрометацию сохранённых паролей в браузере
Пункты действий:
- Не входите в WordPress с заражённого компьютера
- Смените все пароли с чистого устройства
- Очистите сохранённые пароли в браузере
- Включите 2FA на всех аккаунтах
🛠️ ФАЗА ОЧИСТКИ (1-3 часа)
Шаг 7: Сделайте резервную копию текущего сайта (даже если он заражён)
Зачем делать резервную копию заражённого сайта?
- Сохранить доказательства
- Справочный материал по изменениям
- Восстановить контент при необходимости
Как сделать резервную копию:
Через cPanel:
1. cPanel → Файловый менеджер
2. Выберите папку public_html
3. Сжать → Создать архив
4. Скачайте архив
5. Также сделайте резервную копию базы данных из phpMyAdmin
Через FTP:
1. Подключитесь через FileZilla
2. Скачайте всю директорию /public_html/
3. Скачайте из корневой директории (выше public_html)
Резервная копия базы данных:
1. phpMyAdmin → Выберите базу данных
2. Экспорт → Быстрый → Формат SQL
3. Скачайте файл
4. Храните безопасно в офлайне
Шаг 8: Просканируйте на вредоносное ПО
Вариант А: Онлайн-сканеры (Быстро)
- SiteGuarding SiteCheck (Бесплатно)
- Перейдите: https://www.siteguarding.com/en/sitecheck
- Введите ваш домен
- Изучите результаты
- VirusTotal (Бесплатно)
- Загрузите подозрительные файлы
- Проверьте против 70+ антивирусных движков
- Google Safe Browsing
Вариант Б: WordPress плагины безопасности
Установите и просканируйте с помощью:
Wordfence Security (Бесплатно)
1. Установите: Плагины → Добавить новый → Поиск "Wordfence"
2. Активируйте плагин
3. Wordfence → Сканирование → Запустить новое сканирование
4. Изучите результаты
5. Следуйте рекомендациям
Siateguarding Security (Бесплатно)
1. Установите и активируйте
2. SiteGuarding Security → Сканирование на вредоносное ПО
3. Изучите заражённые файлы
4. Следуйте рекомендациям по очистке
MalCare (Платно, но автоматическая очистка)
1. Установите и подключите
2. Автоматическое обнаружение вредоносного ПО
3. Очистка в один клик
Вариант В: Ручное сканирование файлов (через FTP/SSH)
Используйте инструменты командной строки:
bash
# Подключитесь через SSH
ssh username@yoursite.com
# Сканируйте на строки в кодировке base64 (часто в вредоносном ПО)
grep -r "base64_decode" /path/to/wordpress/
# Найдите недавно изменённые файлы
find /path/to/wordpress/ -type f -mtime -7 -ls
# Поиск функций eval
grep -r "eval(" /path/to/wordpress/
# Найдите файлы с подозрительными правами доступа
find /path/to/wordpress/ -type f -perm 0777
# Поиск распространённых имён бэкдоров
find /path/to/wordpress/ -name "*.suspected" -o -name "*.ico.php" -o -name "*.png.php"
Шаг 9: Удалите вредоносный код
Критически важные файлы для проверки в первую очередь:
- wp-config.php (корень WordPress)
- Должен содержать только конфигурацию базы данных
- Ищите: Дополнительный код в начале или конце
- Сравните со свежим wp-config-sample.php из WordPress
- index.php (корень WordPress)
- Должен быть минимальным и чистым
- Ищите: Перенаправления, обфусцированный код
- .htaccess (корень WordPress)
- Должен содержать только правила перезаписи WordPress
- Ищите: Перенаправления, подозрительные RewriteCond
- functions.php (В папке вашей темы)
/wp-content/themes/your-theme/functions.php- Ищите: Строки Base64, eval(), неизвестные функции
- Footer.php / Header.php
- Ищите: Скрытые iframe, подозрительные скрипты
Распространённые шаблоны вредоносного кода:
php
// Вредоносное ПО в кодировке Base64
<?php eval(base64_decode('...')); ?>
// Обфусцированный код
<?php $a='base'.'64_dec'.'ode';$b=$a('...'); eval($b); ?>
// Скрытые iframe
<iframe src="http://malicious-site.com" style="display:none"></iframe>
// Подозрительные функции
eval()
base64_decode()
gzinflate()
str_rot13()
assert()
preg_replace() с модификатором /e
create_function()
Как очистить:
- Сравните с чистыми файлами
- Скачайте свежий WordPress с wordpress.org
- Используйте инструмент diff для сравнения файлов
- Восстановите чистые версии
- Ручное удаление
- Откройте подозрительные файлы в текстовом редакторе
- Удалите вредоносный код
- Сохраните и загрузите чистую версию
- Используйте очистку плагином
- Wordfence → Результаты сканирования → Удалить/Восстановить
- Следуйте рекомендациям плагина
Шаг 10: Проверьте базу данных на вредоносный контент
Доступ к базе данных через phpMyAdmin:
А. Проверьте на мошеннических пользователей-администраторов
sql
SELECT * FROM wp_users;
SELECT * FROM wp_usermeta WHERE meta_key = 'wp_capabilities';
Ищите:
- Неизвестные имена пользователей
- Недавно созданные аккаунты
- Пользователей с ролью администратора
Удалите мошеннических пользователей:
sql
DELETE FROM wp_users WHERE user_login = 'suspicious_username';
DELETE FROM wp_usermeta WHERE user_id = 'suspicious_user_id';
Б. Поиск спам-контента
sql
-- Поиск постов с подозрительным контентом
SELECT * FROM wp_posts WHERE post_content LIKE '%viagra%';
SELECT * FROM wp_posts WHERE post_content LIKE '%<iframe%';
SELECT * FROM wp_posts WHERE post_content LIKE '%base64%';
-- Поиск скрытых постов
SELECT * FROM wp_posts WHERE post_status = 'private' OR post_status = 'draft';
-- Проверка спама в комментариях
SELECT * FROM wp_comments WHERE comment_approved = '1' ORDER BY comment_date DESC LIMIT 50;
В. Проверьте таблицу wp_options
sql
-- Ищите подозрительные записи
SELECT * FROM wp_options WHERE option_name LIKE '%hack%';
SELECT * FROM wp_options WHERE option_value LIKE '%<script%';
SELECT * FROM wp_options WHERE option_value LIKE '%base64%';
-- Проверьте критически важные опции
SELECT * FROM wp_options WHERE option_name IN ('siteurl', 'home', 'admin_email');
Г. Очистите спам-контент
sql
-- Удалите спам-посты (БУДЬТЕ ОСТОРОЖНЫ!)
DELETE FROM wp_posts WHERE post_content LIKE '%viagra%';
-- Удалите спам-комментарии
DELETE FROM wp_comments WHERE comment_content LIKE '%<a href%';
-- Удалите подозрительные опции
DELETE FROM wp_options WHERE option_name = 'suspicious_option';
⚠️ СДЕЛАЙТЕ РЕЗЕРВНУЮ КОПИЮ БАЗЫ ДАННЫХ ПЕРВЫМ ДЕЛОМ перед выполнением запросов DELETE!
Шаг 11: Замените основные файлы WordPress
Скачайте свежий WordPress:
- Перейдите на https://wordpress.org/download/
- Скачайте последнюю версию (или вашу текущую версию)
- Извлеките ZIP-файл локально
Замените основные файлы через FTP:
НЕ удаляйте это:
wp-config.php(ваша конфигурация базы данных)- Папку
wp-content/(темы, плагины, загрузки) .htaccess
ЗАМЕНИТЕ эти папки/файлы:
/wp-admin/(всю папку)/wp-includes/(всю папку)- Все файлы в корне (кроме wp-config.php и .htaccess)
Шаги:
1. Подключитесь через FTP
2. Скачайте wp-config.php как резервную копию
3. Удалите папку /wp-admin/ с сервера
4. Удалите папку /wp-includes/ с сервера
5. Загрузите свежую папку /wp-admin/
6. Загрузите свежую папку /wp-includes/
7. Загрузите свежие файлы корня (index.php, wp-login.php и т.д.)
8. Восстановите ваш wp-config.php
Шаг 12: Проверьте и очистите плагины
Определите проблемные плагины:
А. Деактивируйте все плагины
1. Панель управления → Плагины
2. Выберите все плагины
3. Массовые действия → Деактивировать → Применить
Нет доступа к панели управления? Через FTP:
- Переименуйте
/wp-content/plugins/в/wp-content/plugins-old/
Б. Проверьте каждый плагин
Для каждого плагина:
- Из репозитория wordpress.org?
- Недавно обновлён?
- Хорошие отзывы?
- Взломанный/пиратский? (НЕМЕДЛЕННО УДАЛИТЕ)
В. Удалите подозрительные плагины
Красные флаги:
- Неизвестные плагины, которые вы не устанавливали
- Плагины со случайными именами (wp-system, wp-cache и т.д.)
- Взломанные/пиратские премиум-плагины
- Плагины, не обновляемые 2+ года
- Плагины из неизвестных источников
Г. Переустановите чистые версии
1. Удалите папку плагина через FTP
2. Скачайте свежий с wordpress.org
3. Загрузите через FTP или
4. Установите из Панель управления → Плагины → Добавить новый
Шаг 13: Проверьте и очистите темы
А. Проверьте установленные темы
Панель управления → Внешний вид → Темы
Удалите:
- Неиспользуемые темы (оставьте только активную тему + одну стандартную)
- Темы из неизвестных источников
- Взломанные/пиратские темы
- Старые заброшенные темы
Б. Просканируйте активную тему
Проверьте эти файлы в /wp-content/themes/your-theme/:
functions.php(чаще всего заражается)header.phpfooter.phpindex.php- Любые
.phpфайлы в корне темы
В. Скачайте свежую тему
Если тема из:
- WordPress.org: Скачайте свежую копию
- ThemeForest: Скачайте из ваших покупок
- Автора темы: Скачайте с официального источника
Г. Замените файлы темы
1. Сделайте резервную копию текущей темы (даже если заражена)
2. Удалите папку темы через FTP
3. Загрузите свежую тему
4. Переконфигурируйте настройки темы при необходимости
Шаг 14: Проверьте директорию загрузок
Просканируйте wp-content/uploads/
Ищите:
.phpфайлы (не должно быть в загрузках!).jsфайлы.ico.phpфайлы- Файлы с двойными расширениями (.jpg.php)
- Недавно загруженные подозрительные файлы
Найдите PHP-файлы в загрузках:
Через SSH:
bash
find /path/to/wp-content/uploads/ -name "*.php"
Через FTP:
- Просмотрите папку uploads
- Сортируйте по “Типу” или “Расширению”
- Ищите всё кроме изображений/видео/документов
Действие:
- Удалите любые
.phpфайлы из загрузок - Проверьте подозрительные файлы изображений со внедрённым кодом
- Проверьте недавно загруженные файлы
Шаг 15: Защитите wp-config.php
Добавьте меры безопасности в wp-config.php:
php
<?php
/**
* Конфигурация базы данных WordPress
*/
define('DB_NAME', 'database_name');
define('DB_USER', 'database_user');
define('DB_PASSWORD', 'strong_password_here');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8mb4');
define('DB_COLLATE', '');
/**
* Уникальные ключи и соли аутентификации
* Сгенерируйте новые на: https://api.wordpress.org/secret-key/1.1/salt/
*/
define('AUTH_KEY', 'вставьте вашу уникальную фразу сюда');
define('SECURE_AUTH_KEY', 'вставьте вашу уникальную фразу сюда');
define('LOGGED_IN_KEY', 'вставьте вашу уникальную фразу сюда');
define('NONCE_KEY', 'вставьте вашу уникальную фразу сюда');
define('AUTH_SALT', 'вставьте вашу уникальную фразу сюда');
define('SECURE_AUTH_SALT', 'вставьте вашу уникальную фразу сюда');
define('LOGGED_IN_SALT', 'вставьте вашу уникальную фразу сюда');
define('NONCE_SALT', 'вставьте вашу уникальную фразу сюда');
/**
* Префикс таблиц базы данных WordPress
* Измените с стандартного wp_ на что-то уникальное
*/
$table_prefix = 'xyz_'; // Измените это!
/**
* Улучшения безопасности
*/
// Отключить редактирование файлов в панели управления
define('DISALLOW_FILE_EDIT', true);
// Отключить установку плагинов/тем
define('DISALLOW_FILE_MODS', true);
// Ограничить ревизии постов
define('WP_POST_REVISIONS', 3);
// Включить автоматические обновления
define('WP_AUTO_UPDATE_CORE', true);
// Принудительный SSL для админки
define('FORCE_SSL_ADMIN', true);
// Скрыть версию WordPress
define('WP_HIDE_VERSION', true);
/**
* Отладка (ОТКЛЮЧИТЕ на продакшене!)
*/
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', false);
define('WP_DEBUG_DISPLAY', false);
/* Это всё, больше не редактируйте! Удачных публикаций. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
require_once(ABSPATH . 'wp-settings.php');
Измените это немедленно:
- Сгенерируйте новые ключи безопасности: https://api.wordpress.org/secret-key/1.1/salt/
- Измените префикс таблиц базы данных (требует изменений в базе данных тоже)
- Обновите пароль базы данных
Установите правильные права доступа к файлу:
bash
# wp-config.php должен быть 640 или 600
chmod 600 wp-config.php
Шаг 16: Обновите файл .htaccess
Замените на чистый .htaccess для WordPress:
apache
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
# Дополнительные правила безопасности
# Защита wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>
# Отключить просмотр директорий
Options -Indexes
# Защита .htaccess
<files ~ "^\.htaccess">
order allow,deny
deny from all
</files>
# Блокировать доступ к папке wp-includes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>
# Блокировать выполнение PHP в загрузках
<Directory "/path/to/wp-content/uploads/">
<Files "*.php">
Order Deny,Allow
Deny from All
</Files>
</Directory>
# Защита от внедрения скриптов
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]
🔐 ФАЗА УСИЛЕНИЯ ЗАЩИТЫ (1-2 часа)
Шаг 17: Установите правильные права доступа к файлам
Рекомендуемые права доступа:
bash
# Директории: 755
find /path/to/wordpress/ -type d -exec chmod 755 {} \;
# Файлы: 644
find /path/to/wordpress/ -type f -exec chmod 644 {} \;
# wp-config.php: 600 (самый безопасный)
chmod 600 wp-config.php
# .htaccess: 644
chmod 644 .htaccess
Через FTP (FileZilla):
1. Правый клик на папке/файле
2. Права доступа к файлу
3. Установите числовое значение (755 для папок, 644 для файлов)
4. Отметьте "Рекурсивно в подкаталоги" для папок
Владение (если у вас есть SSH-доступ):
bash
# Измените владельца на пользователя веб-сервера
chown -R www-data:www-data /path/to/wordpress/
# Или для некоторых серверов:
chown -R apache:apache /path/to/wordpress/
Шаг 18: Установите плагины безопасности
Установите и настройте Wordfence (Рекомендуется):
1. Плагины → Добавить новый → Поиск "Wordfence"
2. Установите и активируйте
3. Завершите мастер настройки
4. Включите эти функции:
- Web Application Firewall (WAF) - Брандмауэр веб-приложений
- Безопасность входа (2FA, CAPTCHA)
- Сканирование на вредоносное ПО в реальном времени
- Защита от брутфорса
- Блокировка по странам (опционально)
Настройте параметры Wordfence:
Wordfence → Брандмауэр → Управление брандмауэром:
- Включить "Расширенная защита"
- Режим обучения → Включён и защищает
Wordfence → Безопасность входа:
- Включить двухфакторную аутентификацию
- Включить reCAPTCHA
- Установить лимит попыток входа (3-5 попыток)
- Блокировать IP после неудачных попыток
Wordfence → Сканирование:
- Запланировать автоматические сканирования (ежедневно)
- Включить оповещения по email
Альтернативные плагины безопасности:
SiateGuarding Security (Бесплатно)
- Сканирование на вредоносное ПО
- Мониторинг чёрных списков
- Усиление безопасности
- Действия после взлома
iThemes Security (Бесплатно/Pro)
- 2FA аутентификация
- Защита от брутфорса
- Обнаружение изменений файлов
- Принудительное использование сильных паролей
All In One WP Security (Бесплатно)
- Безопасность учётных записей пользователей
- Блокировка входа
- Безопасность базы данных
- Правила брандмауэра
Шаг 19: Включите двухфакторную аутентификацию
Для администратора WordPress:
Метод 1: Wordfence 2FA
1. Wordfence → Безопасность входа
2. Двухфакторная аутентификация → Включить
3. Отсканируйте QR-код приложением (Google Authenticator, Authy)
4. Введите код для проверки
5. Сохраните коды восстановления
Метод 2: Плагин Two Factor Authentication
1. Установите плагин "Two Factor Authentication"
2. Пользователи → Ваш профиль
3. Опции двухфакторной аутентификации → Включить
4. Выберите метод (рекомендуется TOTP)
5. Отсканируйте QR-код приложением аутентификатора
6. Протестируйте и сохраните
Рекомендуемые приложения 2FA:
- Google Authenticator (iOS/Android)
- Authy (iOS/Android/Desktop)
- Microsoft Authenticator
- 1Password (встроенный TOTP)
Шаг 20: Ограничьте попытки входа
Установите Limit Login Attempts Reloaded:
1. Плагины → Добавить новый
2. Поиск "Limit Login Attempts Reloaded"
3. Установите и активируйте
4. Настройки → Limit Login Attempts
5. Настройте:
- Разрешённые попытки: 3
- Минут блокировки: 20
- Часов до сброса попыток: 12
- Блокировка: Увеличить до 24 часов после 4 блокировок
Через Wordfence:
Wordfence → Безопасность входа
- Немедленно блокировать недействительные имена пользователей
- Немедленно блокировать IP брутфорса
- Ограничить попытки входа до 3
- Блокировать на 1 час после 3 неудачных попыток
Шаг 21: Измените URL входа WordPress
Зачем? Боты постоянно атакуют /wp-admin/ и /wp-login.php
Установите WPS Hide Login:
1. Плагины → Добавить новый
2. Поиск "WPS Hide Login"
3. Установите и активируйте
4. Настройки → WPS Hide Login
5. Измените URL входа на что-то уникальное:
- Пример: yoursite.com/my-secret-login-page
- Избегайте: admin, login, wp-login
6. Сохраните изменения
7. ВАЖНО: Добавьте новый URL входа в закладки!
⚠️ ПРЕДУПРЕЖДЕНИЕ: Сохраните ваш новый URL входа или вы будете заблокированы!
Шаг 22: Отключите XML-RPC (распространённый вектор атаки)
XML-RPC используется для:
- Пингбэков
- Трэкбэков
- Удалённой публикации
- Мобильных приложений
Если вам это не нужно, отключите:
Метод 1: Через плагин
Установите плагин "Disable XML-RPC"
Активируйте (настройка не требуется)
Метод 2: Через .htaccess
apache
# Блокировать XML-RPC
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
Метод 3: Через functions.php
php
// Отключить XML-RPC
add_filter('xmlrpc_enabled', '__return_false');
Протестируйте отключение:
- Посетите: yoursite.com/xmlrpc.php
- Должна показываться ошибка или пустая страница
Шаг 23: Отключите редактирование файлов в панели управления
Уже добавлено в wp-config.php, но проверьте:
php
// В wp-config.php
define('DISALLOW_FILE_EDIT', true);
Это предотвращает:
- Редактирование файлов темы из панели управления
- Редактирование файлов плагинов из панели управления
- Изменение файлов хакерами при взломе админки
Для редактирования файлов вам понадобится:
- FTP доступ
- Файловый менеджер в cPanel
- SSH доступ
Шаг 24: Настройте регулярные резервные копии
Решения для автоматического резервного копирования:
Вариант 1: UpdraftPlus (Бесплатно)
1. Установите плагин UpdraftPlus
2. Настройки → UpdraftPlus Backups
3. Вкладка Settings:
- Расписание: Ежедневно (файлы) + Ежедневно (база данных)
- Удалённое хранилище: Google Drive/Dropbox/S3
4. Подключите облачное хранилище
5. Тестовая резервная копия: "Backup Now"
6. Тестовое восстановление: "Restore"
Вариант 2: BackupBuddy (Премиум)
- Автоматические запланированные резервные копии
- Интеграция с облачным хранилищем
- Инструменты миграции
- Сканирование на вредоносное ПО
Вариант 3: VaultPress/Jetpack Backup (Премиум)
- Резервные копии в реальном времени
- Восстановление в один клик
- Автоматическое сканирование на вредоносное ПО
Вариант 4: Резервные копии хостинга
Многие хосты включают автоматические резервные копии:
- cPanel: Включите автоматические резервные копии
- Хранение резервных копий: минимум 30 дней
- Регулярно скачивайте резервные копии
- Храните в офлайне
Лучшие практики резервного копирования:
- Правило 3-2-1: 3 копии, 2 разных носителя, 1 вне офиса
- Тестируйте восстановления ежемесячно
- Храните резервные копии минимум 30 дней
- Шифруйте файлы резервных копий
- Скачивайте резервные копии локально
Шаг 25: Обновите всё
Обновляйте в этом порядке:
- Ядро WordPress
Панель управления → Обновления
Обновить сейчас
- Плагины
Панель управления → Плагины
Проверить обновления
Обновить все плагины
- Темы
Панель управления → Внешний вид → Темы
Обновить доступные темы
- Версия PHP
cPanel → MultiPHP Manager
Выберите PHP 8.0+ (сначала проверьте совместимость темы/плагинов)
- MySQL/MariaDB
Свяжитесь с хостингом для обновления версии базы данных
Рекомендуется: MySQL 8.0+ или MariaDB 10.5+
Включите автоматические обновления:
php
// В wp-config.php
// Автообновления ядра
define('WP_AUTO_UPDATE_CORE', true);
// Автообновления плагинов (включите в Панель управления → Плагины)
// Автообновления тем (включите в Панель управления → Темы)
🔬 ФАЗА ПРОВЕРКИ (30 минут)
Шаг 26: Запустите финальные сканирования безопасности
Сканируйте несколькими инструментами:
- Полное сканирование Wordfence
Wordfence → Сканирование → Запустить новое сканирование
Дождитесь завершения (10-30 минут)
Изучите все находки
- SiateGuarding SiteCheck
Посетите: https://www.siteguarding.com/en/sitecheck
Введите ваш домен
Изучите результаты
- Google Safe Browsing
Посетите: https://transparencyreport.google.com/safe-browsing/search
Введите ваш домен
Подтвердите "Небезопасный контент не найден"
- VirusTotal
Посетите: https://www.virustotal.com
Введите ваш домен в сканер URL
Изучите результаты от нескольких движков
- Проверка заголовков безопасности
Посетите: https://securityheaders.com
Введите ваш домен
Изучите оценку и рекомендации
Шаг 27: Протестируйте функциональность сайта
Контрольный список:
- Можете ли вы войти в панель администратора?
- Все страницы загружаются корректно?
- Изображения отображаются?
- Формы работают (контакты, поиск)?
- Оформление заказа в электронной торговле работает?
- Нет ошибок JavaScript (проверьте консоль браузера)
- SSL сертификат активен и действителен?
- Мобильная адаптивность сохранена?
- Система комментариев работает?
- Email уведомления отправляются?
- SEO функциональность сохранена?
Тестирование браузеров:
- Chrome
- Firefox
- Safari
- Мобильные браузеры
Очистите все кэши:
- Плагин кэша WordPress
- Кэш браузера
- Кэш CDN (Cloudflare и т.д.)
- Кэш сервера
Шаг 28: Проверьте статус в поисковых системах
Google Search Console:
1. Войдите в Google Search Console
2. Безопасность и ручные действия → Проблемы безопасности
3. Проверьте наличие предупреждений
4. Если есть предупреждения: Запросить проверку
Если ваш сайт был деиндексирован:
1. Search Console → Проверка URL
2. Протестировать реальный URL
3. Запросить индексацию
4. Отправить обновлённую карту сайта
Bing Webmaster Tools:
Аналогичный процесс для Bing
Проверьте предупреждения безопасности
Запросите повторное сканирование
Шаг 29: Мониторинг на повторное заражение
Настройте мониторинг на 30 дней:
Ежедневные проверки:
- Вход в админку (проверка на проблемы)
- Просмотр оповещений Wordfence
- Проверка списка пользователей на новые аккаунты
- Мониторинг использования ресурсов сервера
Еженедельные проверки:
- Полное сканирование Wordfence
- Просмотр логов доступа
- Проверка Google Search Console
- Проверка работы резервных копий
Инструменты мониторинга:
Uptime Robot (Бесплатно)
- Мониторит доступность сайта
- Email оповещения при даунтайме
- Проверки каждые 5 минут
SiateGuarding (Платно)
- Непрерывный мониторинг
- Оповещения о вредоносном ПО
- DDoS защита
ManageWP (Бесплатно/Платно)
- Мониторинг нескольких сайтов
- Автоматические сканирования
- Мониторинг производительности
Шаг 30: Задокументируйте всё
Создайте отчёт об инциденте:
markdown
## Отчёт об инциденте взлома WordPress
**Дата обнаружения:** [Дата и время]
**Сайт:** [URL]
**Хостинг:** [Провайдер]
### Детали атаки
- **Тип взлома:** [Вредоносное ПО/Дефейс/SEO спам/и т.д.]
- **Точка входа:** [Как они проникли]
- **Затронутые файлы:** [Список ключевых файлов]
- **Скомпрометированные данные:** [Данные пользователей/email/и т.д.]
### Предпринятые действия
1. [Включён режим обслуживания]
2. [Все пароли изменены]
3. [Вредоносное ПО удалено из X файлов]
4. [Плагины обновлены]
...
### Внедрённые меры безопасности
- [Установлен Wordfence]
- [Включена 2FA]
- [Изменён URL входа]
...
### Извлечённые уроки
- [Что пошло не так]
- [Как предотвратить в будущем]
### Требуется дальнейшее наблюдение
- [Мониторинг в течение 30 дней]
- [Ежемесячная проверка безопасности]
🛡️ ДОЛГОСРОЧНАЯ ПРОФИЛАКТИКА
Контрольный список текущей безопасности
Ежедневно:
- Просмотр оповещений безопасности
Еженедельно:
- Проверка обновлений плагинов/тем
- Просмотр учётных записей пользователей
- Проверка целостности резервных копий
- Просмотр логов безопасности
Ежемесячно:
- Полное сканирование безопасности
- Обновление ядра WordPress
- Обновление всех плагинов
- Обновление всех тем
- Проверка прав доступа к файлам
- Тестирование восстановления резервных копий
- Смена паролей администратора
- Проверка срока действия SSL сертификата
Ежеквартально:
- Аудит безопасности
- Проверка безопасности хостинга
- Обновление версии PHP
- Очистка неиспользуемых плагинов/тем
- Проверка ролей и прав пользователей
- Оптимизация базы данных
📞 РЕСУРСЫ ПРОФЕССИОНАЛЬНОЙ ПОМОЩИ
Когда обращаться к профессионалам
Обратитесь к профессионалу, если:
- Сайт повторно взламывается
- Не можете определить источник вредоносного ПО
- Скомпрометированы данные клиентов
- Сайт полностью не работает
- Хостинг приостановил ваш аккаунт
- Юридические вопросы/соответствие требованиям (GDPR, PCI)
- Нет технических знаний
- Критическое влияние на бизнес по времени
Профессиональные услуги
Услуги удаления вредоносного ПО:
SiteGuarding ($199.99 – $299.99)
- Профессиональное удаление вредоносного ПО
- Удаление из чёрных списков
- Базовая защита брандмауэром
- Гарантия 30 дней
- Сайт: SiteGuarding Security
Wordfence Premium ($119/год)
- Брандмауэр в реальном времени
- Чёрный список IP в реальном времени
- Блокировка по странам
- Расширенное сканирование
MalCare ($99+/год)
- Автоматическое удаление вредоносного ПО
- Очистка в один клик
- Staging окружение
- Сайт: https://www.malcare.com
WP Hacked Help (Индивидуальное ценообразование)
- Экстренное реагирование
- Полная очистка
- Усиление безопасности
- Сайт: https://hirex.tech
Фриланс-эксперты по безопасности WordPress:
- Codeable.io
- Upwork (тщательно проверяйте)
- Toptal
🚫 РАСПРОСТРАНЁННЫЕ ОШИБКИ, КОТОРЫХ СЛЕДУЕТ ИЗБЕГАТЬ
НЕ делайте этого:
- ❌ Не удаляйте всё и не начинайте заново
- Вы потеряете ценные данные
- Может не исправить основную уязвимость
- Сначала резервная копия, затем систематическая очистка
- ❌ Не игнорируйте предупреждения хостинг-провайдера
- У них есть информация на уровне сервера
- Возможно, уже изолировали ваш сайт
- Они могут помочь определить векторы атаки
- ❌ Не используйте взломанные/пиратские плагины или темы
- Источник взломов WordPress №1
- Часто предварительно заражены бэкдорами
- Нет обновлений или поддержки
- Немедленно удалите при обнаружении
- ❌ Не используйте старые пароли повторно
- Даже если они были “сильными”
- Могли быть скомпрометированы
- Генерируйте полностью новые пароли
- ❌ Не пропускайте сканирование на вредоносное ПО
- Вредоносное ПО часто скрывается в нескольких местах
- Бэкдоры позволяют повторное заражение
- Тщательно сканируйте перед объявлением чистоты
- ❌ Не восстанавливайте из заражённой резервной копии
- Найдите чистую резервную копию до даты заражения
- Протестируйте резервную копию перед полным восстановлением
- По возможности сканируйте файлы резервной копии
- ❌ Не продолжайте редактирование в продакшене
- Используйте staging окружение для изменений
- Тестируйте плагины перед установкой на живом сайте
- Не экспериментируйте с рабочим сайтом
- ❌ Не игнорируйте безопасность после очистки
- Хакеры могут попытаться снова
- Мониторьте минимум 30+ дней
- Поддерживайте меры безопасности постоянно
- ❌ Не используйте ‘admin’ как имя пользователя
- Наиболее часто атакуемое имя пользователя
- Создайте нового администратора с уникальным именем
- Удалите пользователя ‘admin’
- ❌ Не отключайте функции безопасности для удобства
- 2FA может казаться раздражающей, но критически важна
- Ограничения редактирования файлов защищают вас
- Держите плагины безопасности активными
🎯 КОНТРОЛЬНЫЙ СПИСОК ПРОФИЛАКТИКИ
Основные меры безопасности
Контроль доступа:
- Сильные пароли (20+ символов)
- Двухфакторная аутентификация включена
- Уникальное имя пользователя (не ‘admin’)
- URL входа изменён
- Активно ограничение попыток входа
- Регулярная смена паролей (каждые 90 дней)
Обслуживание ПО:
- Ядро WordPress всегда обновлено
- Все плагины обновлены
- Все темы обновлены
- PHP 8.0+ (последняя стабильная версия)
- Неиспользуемые плагины удалены
- Неиспользуемые темы удалены
Усиление безопасности:
- Установлен плагин безопасности (Wordfence/SiteGuarding)
- Брандмауэр активен
- Редактирование файлов отключено
- XML-RPC отключён (если не нужен)
- Просмотр директорий отключён
- Установлены правильные права доступа к файлам
- Установлен SSL сертификат
- Настроены заголовки безопасности
Мониторинг и резервные копии:
- Ежедневные автоматические резервные копии
- Хранение резервных копий вне сайта
- Ежемесячное тестирование восстановления
- Активный мониторинг безопасности
- Настроены оповещения по email
- Регулярные сканирования на вредоносное ПО
Обучение пользователей:
- Обучите всех администраторов лучшим практикам безопасности
- Документируйте процедуры безопасности
- Регулярные напоминания о безопасности
- План реагирования на инциденты
📚 ДОПОЛНИТЕЛЬНЫЕ РЕСУРСЫ
Обучающие материалы
Официальная документация WordPress:
- https://wordpress.org/support/article/hardening-wordpress/ (на английском)
- Руководство по усилению безопасности
Ресурсы по безопасности:
- OWASP Top 10: https://owasp.org/
- WPScan Vulnerability Database: https://wpscan.com/
- SiteGuarding Blog: https://siteguarding.com/security/blog
Сообщества:
- WordPress Support Forums
- Reddit: r/wordpress, r/webhosting
- Stack Overflow: WordPress тег
✅ КОНТРОЛЬНЫЙ СПИСОК
После завершения всех шагов, убедитесь:
- Сайт полностью функционален
- Все пароли изменены
- Установлены плагины безопасности
- Включена 2FA
- Настроены автоматические резервные копии
- Сканирование на вредоносное ПО чисто
- Google Safe Browsing показывает безопасно
- SSL работает корректно
- Все обновления применены
- Права доступа к файлам правильные
- Мониторинг настроен
- Создан отчёт об инциденте
- Проинформированы затронутые пользователи (если применимо)
- Команда обучена профилактике
