Обговорити проект
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
Звіти по виконаній роботі в кінці тижня
Підтримка та консультації з розвитку

Обговорити докладніше

Наше кредо

Удосконалюємо себе
Робимо кращим світ

Гордість