Обсудить проект
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
1. Остановка и блокировка сайта (остановить рекламу, если есть)
2. Скачивание полного файлового архива
3. Проверка файловой сборки сайта антивирусом (при этом анализировать нужно всю папку хостинга, а не только публичную часть)
4. Замена всех доступов - хостинг, база данных, FTP, админка сайта
5. Смена Authentication Unique Keys and Salts в файле wp-config.php

Смена Authentication Unique Keys and Salts
перейти по ссылке api.wordpress.org/secret-key/1.1/salt/ и скопировать содержимое
В файле wp-config.php изменить указанные строки

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

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

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

3. Включение двух этапной аутентификации
Одни из самых популярных плагинов двухфакторной верификации WordPress
Google Authenticator https://ru.wordpress.org/plugins/google-authenticator/
Two-Factor Authentication https://ru.wordpress.org/plugins/two-factor-authentication/
Google Authenticator https://ru.wordpress.org/plugins/google-authenticator/
Two-Factor Authentication https://ru.wordpress.org/plugins/two-factor-authentication/
4. Сканирование WordPress на наличие вредоносных программ
https://ru.wordpress.org/plugins/wordfence/
https://ru.wordpress.org/plugins/bulletproof-security/
https://ru.wordpress.org/plugins/sucuri-scanner/
5. Необходимо убедиться в качестве хостинга.
Если это виртуальный хостинг, удостоверьтесь, что ваша учетная запись изолирована от других пользователей.
На хостинге присутствует функция автоматического бэкапа (резервного копирования). Сервер имеет сторонний фаервол и инструмент для сканирования.
6. Установить плагины для резервного копирования (любой из списка)
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/
7. Удаление неиспользуемых шаблонов и плагинов
8. Изменение стандартных префиксов базы данных 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;
9. Подключить SSL-сертификат (защищенное соединение).
Прежде всего вам необходимо будет приобрести SSL-сертификат и установить его для вашего доменного имени. После этого нужно установить обязательное использование SSL-протокола при входе в панель управления вашим сайтом.
10. Ограничьте количество неудачных попыток авторизации (любой из плагинов)
http://www.bad-neighborhood.com/login-lockdown.html
http://devel.kostdoktorn.se/limit-login-attempts/
11. Обеспечить необходимый уровень скрытности
удалить файлы readme.html и license.txt в корневой папке сайта
отключить отправку отчетов об ошибках PHP
Отключение отправки отчетов об ошибках PHP
Добавить в файл wp-config.php такой код:
error_reporting(0);
@ini_set(‘display_errors’, 0);
закрыть список файлов и папок,
скрыть версию WordPress,
скрыть сообщение о неверно введенном пароле и логине,
запретить индексацию поисковиком файлов WordPress
12. Обеспечить безопасность файловой сборки
установить необходимые права файлов и папок
755 или 750 для всех папок
644 или 640 для файлов
600 для wp-config.php
Добавить ограничение на изменение файлов и установку тем и плагинов
Добавив такой код в wp-config.php файл, вы так же сможете укрепить защиту вашего веб-сайта:
define( ‘DISALLOW_FILE_EDIT’, true );
define( ‘DISALLOW_FILE_MODS’, true );
отключить выполнение PHP в определенных папках
защитить файл wp-config.php
защитить файла .htaccess
запретить доступ к файлу xmlrpc.php
переместите файл wp-config.php

Также начиная с версии 2.6, WordPress позволяет перемещать файл wp-config.php на высший уровень. По причине того, что этот файл содержит в себе намного более важную информацию, чем какой либо другой, и потому что всегда намного сложнее получить доступ к корневой папке сервера. Имеет смысл хранить его не в той же директории, где и остальные файлы. WordPress автоматически обратится к высшей папке в поиске файла wp-config.php.
13. Обеспечить блокировку опасных запросов
запрет доступа к административной части WordPress
запрет отслеживания HTTP заголовков
запрет запросов, содержащих кодировку Base64
запрет запросов, содержащих кодировку <script>
запрет запросов, пытающихся установить глобальные переменные или изменить переменную
запрет запросов, содержащих SQL-инъекции.
Добавить в файл .htaccess такой код:
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteRule ^(.*)$ index.php [F,L]
Запрет запросов от распространенных хакерских утилит
небольшой файрвол для сайта.
Добавьте код файрвола в файл .htaccess в корневом каталоге сайта:
<ifmodule mod_rewrite.c>
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]
</ifmodule>

Поддержка WordPress

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

Рациональным будет хранение
4 еженедельные резервные копии за последний месяц
3 ежемесячных резервных копий за последний квартал
2 последние ежеквартальные резервные копии
по одной ежегодной копии за последние 5 лет

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

Обсудить подробнее

Наше кредо

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

Гордость