Обсудить проект
Max
Директор
Константин
PR менеджер
Работаем
пн-пт
с 9:00 до 19:00
Украина
0 800 211 593
Звонки бесплатные
Київ
044 300 25 36
Харьков
+380 67 258 45 54
+380 99 602 55 44
ПРИСОЕДИНЯЙТЕСЬ
тут много полезного и интересного
Обсудить проект

Восстановление безопасность защита Wordpress

  • Взломан
  • Заражен
  • Пробит
  • Как защитить?
Поможем
Мы собрали максимально полный план работы для восстановления WordPress

Первое после взлома

Руководство по первостепенным действиям после взлома сайта на WordPress

Остановка и блокировка сайта (остановить рекламу, если есть)
Скачивание полного файлового архива
Проверка файловой сборки сайта антивирусом (при этом анализировать нужно всю папку хостинга, а не только публичную часть)
Замена всех доступов - хостинг, база данных, FTP, админка сайта
Смена Authentication Unique Keys and Salts в файле wp-config.php

Смена Authentication Unique Keys and Salts

перейти по ссылке api.wordpress.org/secret-key/1.1/salt/ и скопировать содержимое

В файле wp-config.php изменить указанные строки

Удалить лишние и неиспользуемые плагины и темы дизайна
Обновление WordPress, плагинов и тем
Установка системы защиты (сканнер и файрвол)
Выполнить мероприятия по обеспечению безопасности
Проверить CRON задания на сервере
Восстановить работу сайта
Создать чистую резервную копию сайта

Плановые работы по обеспечению безопасности

Мероприятия по обеспечению безопасности WordPress

Поддержание актуальной версии WordPress, плагинов и тем
Использование нестандартных учетных данных для входа

Используйте хороший логин

Используйте сложный и уникальный пароль

Включение двух этапной аутентификации

Одни из самых популярных плагинов двухфакторной верификации WordPress

Google Authenticator https://ru.wordpress.org/plugins/google-authenticator/

Two-Factor Authentication https://ru.wordpress.org/plugins/two-factor-authentication/

Сканирование WordPress на наличие вредоносных программ

https://ru.wordpress.org/plugins/wordfence/

https://ru.wordpress.org/plugins/bulletproof-security/

https://ru.wordpress.org/plugins/sucuri-scanner/

Необходимо убедиться в качестве хостинга. Если это виртуальный хостинг, удостоверьтесь, что ваша учетная запись изолирована от других пользователей. На хостинге присутствует функция автоматического бэкапа (резервного копирования). Сервер имеет сторонний фаервол и инструмент для сканирования.
Установить плагины для резервного копирования (любой из списка)

https://wordpress.org/plugins/vaultpress/

https://wordpress.org/plugins/backup/

https://wordpress.org/plugins/backupwordpress/

https://wordpress.org/plugins/all-in-one-wp-migration/

https://wordpress.org/plugins/updraftplus/

https://wordpress.org/plugins/duplicator/

Удаление неиспользуемых шаблонов и плагинов
Изменение стандартных префиксов базы данных WordPress

8.1. Найдите ваш файл wp-config.php используя FTP клиент или Файловый менеджер и внесите изменения в строку со значением $table_prefix.

8.2. Переименуйте все таблицы Базы Данных через phpMyAdmin (пример запроса)

RENAME table wp_commentmeta TO wp_1secure1_commentmeta;

RENAME table wp_comments TO wp_1secure1_comments;

RENAME table wp_links TO wp_1secure1_links;

RENAME table wp_options TO wp_1secure1_options;

RENAME table wp_postmeta TO wp_1secure1_postmeta;

RENAME table wp_posts TO wp_1secure1_posts;

RENAME table wp_terms TO wp_1secure1_terms;

RENAME table wp_termmeta TO wp_1secure1_termmeta;

RENAME table wp_term_relationships TO wp_1secure1_term_relationships;

RENAME table wp_term_taxonomy TO wp_1secure1_term_taxonomy;

RENAME table wp_usermeta TO wp_1secure1_usermeta;

RENAME table wp_users TO wp_1secure1_users;

Подключить SSL-сертификат (защищенное соединение). Прежде всего вам необходимо будет приобрести SSL-сертификат и установить его для вашего доменного имени. После этого нужно установить обязательное использование SSL-протокола при входе в панель управления вашим сайтом.
Ограничьте количество неудачных попыток авторизации (любой из плагинов)

http://www.bad-neighborhood.com/login-lockdown.html

http://devel.kostdoktorn.se/limit-login-attempts/

Обеспечить необходимый уровень скрытности - удалить файлы readme.html и license.txt в корневой папке сайта, отключить отправку отчетов об ошибках PHP, закрыть список файлов и папок, скрыть версию WordPress, скрыть сообщение о неверно введенном пароле и логине, запретить индексацию поисковиком файлов WordPress

Отключение отправки отчетов об ошибках PHP

Добавить в файл wp-config.php такой код:

error_reporting(0);

@ini_set(‘display_errors’, 0);

Обеспечить безопасность файловой сборки - установить необходимые права файлов и папок (755 или 750 для всех папок, 644 или 640 для файлов, 600 для wp-config.php), добавить ограничение на изменение файлов и установку тем и плагинов, отключить выполнение PHP в определенных папках, защитить файл wp-config.php, защитить файла .htaccess, запретить доступ к файлу xmlrpc.php, переместите файл wp-config.php. Также начиная с версии 2.6, WordPress позволяет перемещать файл wp-config.php на высший уровень. По причине того, что этот файл содержит в себе намного более важную информацию, чем какой либо другой, и потому что всегда намного сложнее получить доступ к корневой папке сервера. Имеет смысл хранить его не в той же директории, где и остальные файлы. WordPress автоматически обратится к высшей папке в поиске файла wp-config.php.

Добавив такой код в wp-config.php файл, вы так же сможете укрепить защиту вашего веб-сайта:

define( ‘DISALLOW_FILE_EDIT’, true );

define( ‘DISALLOW_FILE_MODS’, true );

Обеспечить блокировку опасных запросов - запрет доступа к административной части WordPress, запрет отслеживания HTTP заголовков, запрет запросов, содержащих кодировку Base64, запрет запросов, содержащих кодировку <script>, запрет запросов, пытающихся установить глобальные переменные или изменить переменную, запрет запросов, содержащих SQL-инъекции.

Добавить в файл .htaccess такой код:

RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]

RewriteRule ^(.*)$ index.php [F,L]

Запрет запросов от распространенных хакерских утилит - небольшой файрвол для сайта.

Добавьте код файрвола в файл .htaccess в корневом каталоге сайта:

RewriteEngine On

#Блокировка XSS

RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]

#Блокируем выставление переменной PHP GLOBALS через URL

RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]

#Блокируем возможность изменять переменную _REQUEST через URL

RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})

#Блокировка MySQL инъекций, RFI, base64, и др.

RewriteCond %{QUERY_STRING} (javascript:)(.*)(;) [NC,OR]

RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR]

RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(..//?)+ [OR]

RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC,OR]

RewriteCond %{QUERY_STRING} =PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC,OR]

RewriteCond %{QUERY_STRING} (../|..) [OR]

RewriteCond %{QUERY_STRING} ftp: [NC,OR]

RewriteCond %{QUERY_STRING} http: [NC,OR]

RewriteCond %{QUERY_STRING} https: [NC,OR]

RewriteCond %{QUERY_STRING} =|w| [NC,OR]

RewriteCond %{QUERY_STRING} ^(.*)/self/(.*)$ [NC,OR]

RewriteCond %{QUERY_STRING} ^(.*)cPath=http://(.*)$ [NC,OR]

RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]

RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]

RewriteCond %{QUERY_STRING} (<|%3C).*iframe.*(>|%3E) [NC,OR]

RewriteCond %{QUERY_STRING} (<|%3C)([^i]*i)+frame.*(>|%3E) [NC,OR]

RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [OR]

RewriteCond %{QUERY_STRING} base64_encode.(.) [NC,OR]

RewriteCond %{QUERY_STRING} base64_(en|de)code[^(]*([^)]*) [NC,OR]

RewriteCond %{QUERY_STRING} ^.*([|]|(|)|<|>).* [NC,OR]

RewriteCond %{QUERY_STRING} (NULL|OUTFILE|LOAD_FILE) [OR]

RewriteCond %{QUERY_STRING} (./|../|.../)+(motd|etc|bin) [NC,OR]

RewriteCond %{QUERY_STRING} (localhost|loopback|127.0.0.1) [NC,OR]

RewriteCond %{QUERY_STRING} (<|>|'|%0A|%0D|%27|%3C|%3E|%00) [NC,OR]

RewriteCond %{QUERY_STRING} concat[^(]*( [NC,OR]

RewriteCond %{QUERY_STRING} union([^s]*s)+elect [NC,OR]

RewriteCond %{QUERY_STRING} union([^a]*a)+ll([^s]*s)+elect [NC,OR]

RewriteCond %{QUERY_STRING} (;|<|>|'|"|)|%0A|%0D|%22|%27|%3C|%3E|%00).*(/*|union|select|insert|drop|delete|update|cast|create|char|convert|alter|declare|order|script|set|md5|benchmark|encode) [NC,OR]

RewriteCond %{QUERY_STRING} (\|...|../|~|`|<|>||) [NC,OR]

RewriteCond %{QUERY_STRING} (boot.ini|etc/passwd|self/environ) [NC,OR]

RewriteCond %{QUERY_STRING} (thumbs?(_editor|open)?|tim(thumb)?).php [NC,OR]

RewriteCond %{QUERY_STRING} (sp_executesql) [NC]

RewriteCond %{QUERY_STRING} (eval() [NC,OR]

RewriteCond %{QUERY_STRING} ([a-z0-9]{2000,}) [NC,OR]

RewriteRule ^(.*)$ - [F,L]

#Блокировка известных Shell

RewriteEngine on

RewriteCond %{REQUEST_URI} .*((php|my)?shell|remview.*|phpremoteview.*|sshphp.*|pcom|nstview.*|c99|r57|webadmin.*|phpget.*|phpwriter.*|fileditor.*|locus7.*|storm7.*).(p?s?x?htm?l?|txt|aspx?|cfml?|cgi|pl|php[3-9]{0,1}|jsp?|sql|xml) [NC,OR]

RewriteCond %{REQUEST_METHOD} (GET|POST) [NC]

RewriteCond %{QUERY_STRING} ^(.*)=(/|%2F)(h|%68|%48)(o|%6F|%4F)(m|%6D|%4D)(e|%65|%45)(.+)?(/|%2F)(.*)(/|%2F)(.*)$ [OR]

RewriteCond %{QUERY_STRING} ^work_dir=.*$ [OR]

RewriteCond %{QUERY_STRING} ^command=.*&output.*$ [OR]

RewriteCond %{QUERY_STRING} ^nts_[a-z0-9_]{0,10}=.*$ [OR]

RewriteCond %{QUERY_STRING} ^c=(t|setup|codes)$ [OR]

RewriteCond %{QUERY_STRING} ^act=((about|cmd|selfremove|chbd|trojan|backc|massbrowsersploit|exploits|grablogins|upload.*)|((chmod|f)&f=.*))$ [OR]

RewriteCond %{QUERY_STRING} ^act=(ls|search|fsbuff|encoder|tools|processes|ftpquickbrute|security|sql|eval|update|feedback|cmd|gofile|mkfile)&d=.*$ [OR]

RewriteCond %{QUERY_STRING} ^&?c=(l?v?i?&d=|v&fnot=|setup&ref=|l&r=|d&d=|tree&d|t&d=|e&d=|i&d=|codes|md5crack).*$ [OR]

RewriteCond %{QUERY_STRING} ^(.*)([-_a-z]{1,15})=(chmod|chdir|mkdir|rmdir|clear|whoami|uname|unzip|gzip|gunzip|grep|more|umask|telnet|ssh|ftp|head|tail|which|mkmode|touch|logname|edit_file|search_text|find_text|php_eval|download_file|ftp_file_down|ftp_file_up|ftp_brute|mail_file|mysql|mysql_dump|db_query)([^a-zA-Z0-9].+)*$ [OR]

RewriteCond %{QUERY_STRING} ^(.*)(wget|shell_exec|passthru|system|exec|popen|proc_open)(.*)$

RewriteRule .* - [F]

Поддержка WordPress

Поддержка надлежащего уровня безопасности сайта WordPress

Регулярное создание резервных копий сайта. Мы рекомендуем делать резервную копию сайта (файлы) каждую неделю. MSQL базу данных - раз в сутки

Рациональным будет хранение

4 еженедельные резервные копии за последний месяц

3 ежемесячных резервных копий за последний квартал

2 последние ежеквартальные резервные копии

по одной ежегодной копии за последние 5 лет

Сохранять резервные копии сайта как минимум на 3х разных носителях (компьютер, облако, флешка)
Регулярно обновлять WordPress, плагины и темы дизайна (проверку обновлений выполнять каждую неделю)
Регулярно изменять доступы к сайту (хостинг, база данных, FTP, админка сайта) - как минимум раз в полгода
Предоставлять сторонним разработчиком индивидуальные доступы и удалять их по завершению работ таких разработчиков
Регулярно проверяйте свой локальный компьютер на наличие вирусов
Не храните ненужные файлы тем и плагинов
Скачивайте темы и плагины с надежных ресурсов
Max
Директор
Гарантия на все работы 1 год
Все работы ведет опытный Project manager
Отчеты по выполненной работе в конце недели
Поддержка и консультации по развитию

ОБСУДИТЬ ПОДРОБНЕЕ

Наше кредо

Совершенствуем себя
Делаем лучше мир

Гордость