
Безпека веб-серверів, Cloud-платформ.
Надійний захист від атак відмова в обслуговуванні
Комплексний захист електронних ресурсів.
Пошук та видалення вірусів на веб-сайтах.
Захист та рішення безпеки для сайтів на WordPress.
Пентест сайтів і веб-додатків.
Безпека веб-серверів, Cloud-платформ.
Надійний захист від атак відмова в обслуговуванні
Комплексний захист електронних ресурсів.
Пошук та видалення вірусів на веб-сайтах.
Захист та рішення безпеки для сайтів на WordPress.
Пентест сайтів і веб-додатків.
Безпека веб-серверів, Cloud-платформ.
Надійний захист від атак відмова в обслуговуванні
Комплексний захист електронних ресурсів.
Пошук та видалення вірусів на веб-сайтах.
Захист та рішення безпеки для сайтів на WordPress.
Пентест сайтів і веб-додатків.
Безпека веб-серверів, Cloud-платформ.
Надійний захист від атак відмова в обслуговуванні
Комплексний захист електронних ресурсів.
Пошук та видалення вірусів на веб-сайтах.
Захист та рішення безпеки для сайтів на WordPress.
Пентест сайтів і веб-додатків.
WordPress – одна з найпопулярніших та найрозвинутіших систем керування веб-контентом у світі. Близько 40% усіх сайтів у мережі Інтернет побудовані саме на CMS WordPress. Ця багатоцільова і кросплатформна система з відкритим кодом має мільйони розширень і доповнень у вигляді різноманітних тем, плагінів, компонентів. Однак така популярність спричиняє і певні ризики. Щороку фіксуємо велику кількість атак і вразливостей на сайти під управлінням WordPress. У цьому керівництві ви дізнаєтесь як тримати сайт на постійному замку й не дати пасти під навалою раптових кіберзагроз. Комплексні та дієві поради і рекомендації усім власникам WordPress.
Сайти на незахищеному HTTP-протоколі є більш вразливими, аніж сайти на HTTPS (Hypertext Transfer Protocol Secure). Для хакерів вони є ласим шматочком, адже незахищене з’єднання дає можливість проексплуатувати найрізноманітніші типи вразливостей: SQL/PHP/XSS-ін’єкції, DOS/DDOS, LFI та багато інших.
Щоби перевести сайт на захищений HTTPS-протокол, необхідно встановити на своєму сервері SSL-сертифікат. Існують як платні (COMODO, DigiCert) так і безкоштовні сертифікати (LetsEncrypt, Cloudflare).
Додатково, подбайте про те, щоб на сервері використовувалися останні версії протоколу шифрування передачі даних TLS – 1.2-1.3. Активуйте протокол HTTP/2, який оптимізований під повнофункціональне використання TLS.
Перевірити коректність встановлення і налаштування SSL/TLS можна з допомогою сервісів Qualys SSL Labs (веб-версія) та testssl.sh (версія для командного рядка).
HTTP Security Headers — це заголовки безпеки, які віддає сервер по протоколу HTTP з метою захистити інтернет-з’єднання з веб-сторінкою від перехоплення даних та будь-яких інших маніпуляцій чи загроз.
Заголовки, які рекомендується додати:
Strict-Transport-Security
– так-званий HSTS заголовок, який унеможливлює доступ по HTTP-протоколу та змушує веб-браузер примусово використовувати HTTPS-з’єднання;Content-Security-Policy
– один з найважливіших заголовків, який являє собою політику безпеки для контролю внутрішніх та зовнішніх HTTP-з’єднань;X-Frame-Options
– захищає від несанкціонованого показу вашого сайту у вигляді iframe на інших ресурсах, унеможливлює Hijacking/Clickjacking маніпуляції;X-Content-Type-Options
– захищає контент від сніффінгу, спуфінгу та інших атак;Referrer Policy
– визначає які функції API та мультимедіа можуть використовуватись на сайті.Детальніше про HTTP-заголовки на сторінці OWASP.
Переглянути яких HTTP-заголовків не вистачає на сайті можна з допомогою онлайн-сервісів:
У 90% випадків наявність багатофакторної аутентифікації (2FA/MFA) стає на заваді зламу. За відсутності 2FA, зловмиснику залишається просто підібрати логін і пароль до вашого сайту.
Багатофакторна аутентифікація – це додатковий шар захисту облікового запису, який окрім пароля, передбачає введення коду підтвердження, який надійде вам на електронну пошту, мобільний застосунок (Google Authentificator) або в desktop-додаток (KeepassXC).
Для інтеграції 2FA в WordPress існує чудовий плагін – Wordfence Security:
Wordfence Security – Firewall, Malware Scan, and Login Security
Щоб увімкнути двофакторну аутентифікацію на сайті, необхідно перейти в меню Wodfence Security в сайдбарі WordPress й обрати пункт Login Security, після чого з’явиться вкладка Two-Factor Authentification з відповідними налаштуваннями:
Якщо сайтом користуються інші користувачі, бажано увімкнути обов’язкову 2FA-авторизацію для усіх типів облікових записів. Це можна зробити на вкладці Settings:
Усі файли і папки WordPress повинні бути надійно захищеними, інакше постає ризик витоку та розкриття даних, а разом з тим і несанкціонованого доступу
Система CMS WordPress по замовчуванню має наступну файлову структуру:
├── index.php
– це індексна, домашня сторінка WordPress, яка у свою чергу підключає головну сторінку активної теми;
├── license.txt
– це файл публічної угоди користувача про безкоштовне використання WordPress за ліцензією GNU / OpenSource. Його можна видалити або заборонити доступ, щоб приховати сліди CMS;
├── readme.html
– це публічний файл з довідковою інформацією для адміністратора по встановленню WordPress, містить детальний опис кроків встановлення, а також інформацію про системні вимоги і посилання WordPress. В старіших версіях WordPress він розкривав поточну версію CMS. За потреби його можна видалити або обмежити доступ;
├── wp-activate.php
– це службовий файл, який використовується для активації електронної пошти під час створення або реєстрації нового користувача;
├── wp-admin
– службова директорія WordPress, яка містить ресурси адмін-панелі WordPress, при переході по ній система здійснює автоматичний редирект на сторінку входу в адмін-панель з формою авторизації wp-login.php
;
├── wp-blog-header.php
– це службовий файл ядра WordPress, який здійснює ініціалізацію основних початкових компонентів при завантаженні сайту;
├── wp-comments-post.php
– це службовий файл WordPress, який відповідає за обробку та публікацію коментарів, які надсилаються користувачами на сайт. Якщо функція публікації коментарів для відвідувачів увімкнена, цим файлом можна зловживати;
├── wp-config.php
– основний службовий файл WordPress, в якому прописується конфігурація CMS-системи, повинен бути захищений, адже містить усі налаштування і доступи до бази даних WordPress;
├── wp-config-sample.php
– публічний файл, який служить шаблоном для конфігурації CMS WordPress та підготовки основного wp-config.php
. Рекомендується його видаляти після кожного оновлення WordPress, або просто обмежити публічний доступ;
├── wp-content
– це службова директорія WordPress, яка містить усі основні користувацькі дані, необхідні для роботи сайту: теми, плагіни, директорію сайту, кеш, папка завантажень та інше;
├── wp-cron.php
– вбудований планувальник WordPress, який виконує фонові завдання CMS за розкладом. Рекомендується перейти на серверний планувальник cronjob (див. нижче);
├── wp-includes
– основна службова директорія WordPress, яка містить критично важливі файли ядра CMS. Тут зберігаються сертифікати, шрифти, файли JavaScript, віджети та ін.;
├── wp-links-opml.php
– це службовий файл WordPress, який відповідає за роботу посилань з так-званого “Блогролу” – функції, яка в останніх версіях є вимкненою і майже не використовуєть;
├── wp-load.php
– це службовий файл, який використовується для підвантаження функціоналу WordPress в різних скриптах;
├── wp-login.php
– сторінка доступу до WordPress, яка по замовчуванню знаходиться у публічному доступі, а тому рекомендується обмежити її;
├── wp-mail.php
– це службовий файл, який використовується для публікації контенту через надіслані email-листи. Може використовуватися в атаках, а тому краще обмежити доступ;
├── wp-settings.php
– це службовий файл, який відповідає за підключення усіх налаштувань та конфігурацій WordPress;
├── wp-signup.php
– це службовий файл, який виконує функцію реєстрації нового користувача, а також нового сайту, якщо включена опція “Мультисайт”. Якщо реєстрація користувачів увімкнена, може застосовуватися для спам-атак. Рекомендується обмежити доступ;
├── wp-trackback.php
– це службовий файл, який відповідає за обробку відстеження в рамках функціоналу WordPress Pingback, що реалізує сповіщеннях з інших блогів, якщо на них з’явиться зворотне посилання на ваш сайт. Цією функцією серйозно зловживають, часто викликаючи DDoS. Рекомендується обмежити доступ;
└── xmlrpc.php
– це протокол віддаленого доступу до CMS WordPress. Через нього та функції API деякі плагіни, наприклад Jetpack, можуть дистанційно обмінюватися інформацією з сайтом. На жаль, цим протоколом також часто зловживають, наприклад можуть провести DDOS або SSRF-атаку. Рекомендується обов’язково обмежити публічний доступ до цього файлу.
Найкритичнішим з усіх є системних файлів є wp-config.php
– у ньому міститься вся ключова інформація щодо конфігурації WordPress та під’єднання до бази даних сайту:
Найпростіший спосіб захистити wp-config — перенести його на рівень вище, за межі кореневого каталогу сайту WordPress (напр., public_html або www) й встановити права доступу 0600
, що унеможливить будь-які маніпуляції та зміни.
Ще один службовий файл, про який варто подбати аби не був у відкритому доступі – debug.log
. Він знаходиться в директорії /wp-content
. Цей файл зберігає журнали подій WordPress та застосовується для відладки. В ньому фіксуються усі системні попередження та помилки з вказаними шляхами до проблемних рерсурсів. Необхідно виставити права читання і перегляду на цей файл лише для Адміністратора — 0660
.
Маючи приватний доступ до debug.log, можна вимкнути публічне виведення системних помилок на сторінках сайту, що є важливим в цілях безпеки. Для цього необхідно в wp-config.php додати рядок:
define('WP_DEBUG_DISPLAY', true);
Ще одним джерелом розкриття інформації про WordPress є публічнодоступні файли readme.txt
, які знаходяться в директоріях плагінів і розкривають технічні деталі про них. Вони ні на що не впливають і без них можна обійтися. Однак для зловмисника інформація в них є вкрай важливою, адже дає можливість підібрати експлойт під конкретну версію плагіна. Цей витік можна легко побороти, виконавши команду на автоматичний пошук та вилучення файлів readme:
sudo find /home/example.com/public_html -name "readme*" -exec rm -f {} \;
У 2018 році користувачі WordPress дізналися про вразливість CVE-2018-6389, яка дозволяла маніпулювати ресурсами JavaScript через компонент loads-script.php
. Зловмисники через доступ до /wp-admin/load-scripts.php?load=
підвантажували велику кількість JS-скриптів і в результаті викликали відмову в обслуговуванні на боці сервера, тобто проводили DDoS. Щоб захистити сайт від такого навантаження, необхідно обмежити до файлу load-scripts.php (а також load-styles.php) публічний доступ й додати в wp-config.php наступну директиву:
define( 'CONCATENATE_SCRIPTS', false );
У висновку це збереже ваші ресурси, а також пришвидшить роботу сайту (за умови що ви використовуєте HTTP/2).
Ще однією поширеною атакою на WordPress є WPSetup Hack, яка полягає у публічному доступі до файлів інсталяції /wp-admin/setup-config.php
та /wp-admin/install.php
. Таким чином зловмисник може спробувати повторно запустити процес встановлення WordPress. Якщо ви розгорнули свіжий сайт і не розпочали процес встановлення WordPress, тоді він може прописати власні дані конфігурації, зокрема доступ до бази даних на своєму віддаленому сервері і таким чином захопити ресурс. Найкращим способом є просто обмежити доступ до обох файлів.
Перелік файлів та директорій WordPress, публічний доступ до яких рекомендується обов’язково обмежити (надати код відповіді сервера 40X для всіх неавторизованих користувачів):
Примітка: Як саме обмежується доступ на вашому сервері – читайте в документації розробників. Наприклад, для Apache серверів це може бути директива RewriteCond/RewriteRule
в файлі .htaccess. Для Nginx та LiteSpeed необхідно додати відповідні правила у файли конфігурації віртуальних хостів.
Для решти папок та файлів CMS WordPress рекомендує встановити наступні права доступу відповідно:
find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \;
find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;
Можна також включити автоматичне виставлення прав доступу для файлів і папок в wp-config.php, додавши такі рядки:
define(‘FS_CHMOD_FILE’, 0644); define(‘FS_CHMOD_DIR’, 0755);
Примітка: для критично важливих файлів налаштуйте права 640, 600 або 440. Розібратися з їх значеннями можна в онлафн-сервісі CHMOD-CALCULATOR.
Відкритий лістинг директорій (Directory listing, CWE-548) — це вразливість, яка дає можливість переглядати файлову структуру сайту публічно через інтернет.
Зловмисник може повністю дослідити структуру сайту, ідентифікувати компоненти: теми, плагіни, стилі, скрипти тощо. Може дізнатися розташування службових файлів, наприклад логів, дампів, файлів конфігурації. Усе це допоможе йому вдало спланувати атаку.
Ось команда, яка переводить дані з відкритого лістингу директорій у читабельний формат у командному рядку:
curl -s -X GET https://example.com/wp-includes/ | html2text
Відключити лістинг директорій просто – достатньо у файлі .htaccess прописати директиву: Options All -Indexes
.
По замовчуванню, доступ в адмін-панель WordPress здійснюється за URL-адресою example.com/wp-admin
, яка є публічнодоступною і переспрямовує користувача на сторінку з формою входу example.com/wp-login.php
.
Дуже часто боти атакують цю форму, намагаючись підібрати логін та пароль. WordPress повідомляє про некоректно введені дані, що дає їм можливість відсіяти неуспішні спроби. Загалом, усе це створює ризик несанкціонованого доступу і тільки навантажує сервер/
Існує кілька способів, як вирішити цю проблему. Найпростіший – змінити URL-адресу сторінки входу в адмінку WordPress можна з допомогою плагіна WPS Hide Login:
WPS Hide Login
Окрім того можна додатково обмежити кількість невдалих спроб входу в адмінку WordPress. Відповідні налаштування містить плагін Wordfence Security – вкладка Brute Force Protection у розділі All options:
Існує також окремий плагін для обмеження спроб входу – Limit Login Attempts Reloaded:
Limit Login Attempts Reloaded
Ще один дієвий спосіб як захистити адмінку WordPress без жодних плагінів (рекомендую) – це обмежити доступ до example.com/wp-admin
з допомогою фільтрації по IP або ж створити додаткову преавторизацію HTTP Authorization до сторінки входу з допомогою методу htapsswd:
WP-CRON — це вбудований планувальник WordPress, який дозволяє здійснювати публікацію записів за розкладом. По-замовчуванню, файл wp-cron.php є загальнодоступним й може також стати мішенню DDOS. Окрім того він споживає системні ресурси і на слабких серверах сповільнює WordPress. Я рекомендую відключити його і натомість активувати серверний планувальник Crontab.
Для цього необхідно перейти в файл конфігурації wp-config.php й додати наступний рядок:
define( 'DISABLE_WP_CRON', true );
Після цього підключитися до сервера по SSH і виконати команду:
crontab -e
Відкриється редактор серверного планувальника. Необхідно додати команду, яка запускатиме планувальник wp-cron за розкладом (наприклад, кожних 5 хвилин):
*/5 * * * * wget -qO- https://example.com/wp-cron.php &> /dev/null
Для власників веб-серверів LiteSpeed/OpenLiteSpeed можна у цілях безпеки перекрити будь-які зовнішні запити до wp-cron.php. Для цього необхідно перейти в меню Server Configuration > General й увімкнути опцію Use Client IP in Header, а потім для Virtual Host (домену) прописати окремі правила в Rewrite Rules (вказавши IP-адресу вашого сервера):
RewriteCond %{REMOTE_ADDR} !^XXX\.XXX\.XXX\.XXX RewriteCond %{REQUEST_URI} xmlrpc.php|wp-cron.php [NC] RewriteRule .* - [F,L]
Рекомедую додатково встановити плагін Advanced Cron Mananger, щоби мати можливість контролювати виконання завдань відразу з адміністративної частини WordPress:
Advanced Cron Manager – debug & control
REST API — це технологія, яка дозволяє різним плагінам, додаткам, обліковим записам віддалено взаємодіяти з WordPress. Цю технологію використовують деякі компоненти для синхронізації і оновлення контенту.
Інформація в REST API передається у форматі JSON. Якщо доступ до REST API не обмежено, кожен бажаючий може відкрити URL-посилання, наприклад https://example.com/wp-json/wp/v2/users
і провести атаку енумерації користувачів.
Подібним чином можна розкрити ID:
https://example.com/wp-json/wp/v2/posts
)https://example.com/wp-json/wp/v2/categories
)https://example.com/wp-json/wp/v2/tags
)https://example.com/wp-json/wp/v2/comments
)У 2017 році в WordPress була зафіксована серйозна вразливість, яка дозволяла через підключені по REST API плагіни провести екскалацію привілеїв і зламати більше 2 млн. сайтів.
Отже, у цілях безпеки рекомендується обмежити доступ по REST API для неавторизованих відвідувачів і HTTP-клієнтів. Існують вже готові плагіни, які реалізують це, наприклад Disable REST API:
Disable REST API
Ім’я користувача (username) WordPress за замовчуванням, наприклад “admin”, дуже легко визначити, а далі спробувати підібрати пароль до нього. Тому при створенні облікових записів дотримуйтесь складних нестандартних імен та багатозначних паролів (до 20-ти і більше символів), які містять літери верхнього та нижнього регістру, цифти та спеціальні знаки.
На жаль, ім’я вже існуючого облікового запису в WordPress неможливо змінити. Але можна створити нового користувача, вилучити старого і зв’язати усі його записи та права з новим користувачем:
Якщо на сайті доступна реєстрація, або ним користуються різні люди, варто перевірити їх облікові записи і привілеї. Доволі часто користувачі стають жертвами атак, а їх облікові записи зламуються і можуть бути змінені з метою отримання несанкціонованого доступу.
По замовчуванню, в WordPress діє рольова система з наступними типами і характеристиками користувачів:
👉 Детальніше про ролі користувачів на офіційному сайті WordPress>>
Вилучіть облікові записи, які не використовують або є підозрілими.
Варто також подбати про захист облікових записів авторів від такої атаки як WordPres User Enumeration. Це техніка брутфорс-перебору, яка дає можливість дізнатися справжні логіни користувачів, які використовуються для доступу до адмін-панелі. Хакери парсять URL-адреси сторінок авторів, наприклад /?author=1
. Знаючи логіни та імена користувачів в системі, вони можуть приступити до підбору паролів та зламати сайт.
Необхідно заборонити доступ до цих URL-адрес, прописавши в файлі конфігурації веб-сервера .htaccess правило:
RewriteCond %{QUERY_STRING} ^author=([0-9]*) RewriteRule .* http://example.com/? [L,R=302]
Або скористатись плагіном GOTMLS, який cамостійно блокуватиме будь-які спроби запитів до ?author=
:
Anti-Malware Security and Brute-Force Firewall
У вихідному коді сторінок сайту WordPress розкриває чимало технічної інформації, наприклад номер версії ядра (через тег <meta generator>
), версії CSS-стилів і JS-скриптів (додаючи до їх URL-адрес параметри з номерами). Цю інформацію дуже легко спарсити такими інструменти командого рядка як: curl, wfuzz, wpscan.
Цього варто уникати, адже розкривши технічні деталі, зловмисник запросто зможе відшукати вразливості, а потім написати шкідливий сценарій або підібрати готовий експлойт для їх експлуатації.
Приховати версії компонентів WordPress найпростіше з допомогою плагінів безпеки Wordfence Security та Sucuri Security:
Можна також вручну дописати код в functions.php
:
function remove_version_info() { return ''; } add_filter('the_generator', 'remove_version_info');
Або цей код (використовується інший метод):
// remove version from head remove_action('wp_head', 'wp_generator'); // remove version from rss add_filter('the_generator', '__return_empty_string'); // remove version from scripts and styles function collectiveray_remove_version_scripts_styles($src) { if (strpos($src, 'ver=')) { $src = remove_query_arg('ver', $src); } return $src; } add_filter('style_loader_src', 'collectiveray_remove_version_scripts_styles', 9999); add_filter('script_loader_src', 'collectiveray_remove_version_scripts_styles', 9999);
Не варто забувати і про HTML-коментарі, котрі додаються компонентами CMS або самими розробниками й також розкривають технічну інформацію:
Рекомендується здійснити стискання і міфікацию вихідного коду, вилучаючи з нього усе зайве, роблячи його складним для зовнішнього прочитання.
По-замовчуванню, база даних WordPress має префікс wp_
. Це полегшує зловмисникам пошук та виявлення таблиць бази даних.
Змінити префікс можна з допомогою серверної утиліти PhpMyAdmin або спеціальних плагінів WordPress:
All-In-One Security (AIOS) – Security and Firewall
Brozzme DB Prefix & Tools Addons
У CMS WordPress Адміністратор може редагувати вихідний код файлів, теми та плагіни одразу в адмін-панелі з допомогою вбудованого редактора коду (Appearance -> Theme Editor):
Однак це створює додаткові ризики безпеки. Хакери нерідко проникають в адміністративну частину й завдяки увімкненому редактору залишають реверс-шели в файлах тем, наприклад в файлах 404.php або footer.php, після чого віддалено керують сервером зі своєї хост-машини (атаки Remote Code Execution (RCE)).
Читайте також: Що таке Reverse Shell і як він працює? Практичні приклади.
Рекомендується працювати з файлами сайту лише через захищені протоколи sFTP або SSH. Вимкнути вбудований редактор коду WordPress можна додавши в wp-config.php рядок:
// Disable WordPress file editor define( 'DISALLOW_FILE_EDIT', true );
Robots.txt — це службовий файл, який встановлює правила індексації сайту для пошукових ботів. З його допомогою можна заборонити пошуковим системам індексувати ті чи інші сторінки сайту.
Часто Адміністратори намагаються через robots.txt приховати якомога більше службових директорій та конфіденційних файлів сайту. Таким чином вони полегшують роботу зловмисникам і видають список прихованих ресурсів, які ті використовують як ціль для своїх атак:
Отже, robots.txt варто створювати якомога лаконічнішим. Для блокування індексації тих чи інших веб-сторінок рекомендується застосовувати тег <meta name =”robots” content=”noindex, nofollow”>
, а також серверні права доступу на файли і папки (chmod
, chown
). Таким чином, якщо пошуковий бот або відвідувач полізуть туди куди не треба, від сервера надійде код 403 – “Відмова у доступі”.
Captcha (Completely Automated Public Turing Test) — це автоматична система перевірки та захисту електронних ресурсів від ботів та спаму. Технологія перевіряє цифровий слід відвідувача: IP-адресу, країну, User-Agent та інші параметри. Якщо виявить підозру, попросить підтвердити, що ви не бот, інакше обмежить доступ.
З допомогою Captcha можна захистити будь-які сенситивні об’єкти та елементи на сайті, наприклад форми, кнопки, поля вводу і таке інше. Це чудовий захист від спамерів.
Відсутність капчі, дає можливість атакуючому провести ін’єкцію шкідливого коду, підмінити або перехопити дані, завантажити шелл:
Увімкнути капчу на WordPress-сайті можна з допомогою сервісу Google reCaptcha та плагіну Wordfence Security, або будь-якого іншого що підтримує reCAPTCHA v2/v3:
Окрім Google reCaptcha, існують альтернативні системи:
Способів як це зробити – насправді безліч. Починаючи від інтеграцій таких загальновідомих рішень як Fail2ban та SpamAssasin, та закінчуючи встановленням спеціального плагіна для WordPress.
Одним із кращих є Maspik, який налаштовується у два кліки, містить багато правил та інтеграцій:
Maspik – Advanced Spam Protection
Зловмисники намагатимуться просканувати ваш сайт, перебираючи різні комбінації URL-адрес (фаззінг), відправляючи GET (отримання) та POST (відправка) запити, підмішуючи до них різноманітні нелогічні і динамічні параметри, які називаються “payloads”, щоб таким чином виявити слабкі точки.
Фільтрація трафіку дозволить своєвчасно виявляти подібні кіберзагрози, відхиляти і блокувати будь-які невалідні та шкідливі HTTP-запити, токсичні User-Agent’и, хости, геолокації, адреси і так далі. А головне – приховати IP-адресу сайту, на яку націлюються хакери!
Реалізувати всі вищеперераховані функції можна з допомогою хмарного онлайн-сервісу Cloudflare WAF. Ви отримаєте надійний зовнішній мережевий екран-брандмауер для вашого сайту. Ви також зможете сформувати будь-які свої правила блокування у разі виявленнях тих чи інших несанкціонованих дій та аномалій.
Додатковим шаром безпеки безпосередньо для CMS-системи WordPress може стати Wordfence Security – один з кращих плагінів безпеки:
Wordfence – це справжній комбайн, який має велику кількість додаткових функцій. З його допомогою можна просканувати сайт, зіставити зміни у файлах, отримати рекомендації тощо.
Зберігайте сайт в актуальному стані, адже мало не щодня з’являються нові загрози та Zero-Day Вразливості. Не використовуйте ламані “Nulled” та “warez” плагіни – вони можуть містити шкідливий код (закладки, бекдори) й сповільнювати роботу сайту, викликаючи збої і помилки.
Просканувати WordPress та усі його компоненти на вразливості, знайти “прострочені плагіни” і “дірки безпеки” допоможуть наступні плагіни:
Patchstack – WordPress & Plugins Security
WPScan – WordPress Security Scanner
Wordfence Security – Firewall, Malware Scan, and Login Security
Sucuri Security – Auditing, Malware Scanner and Security Hardening
Також додатково рекомендую скористатися окремими зовнішніми DAST-сканерами, які дозволять провести аудит безпеки та комплексно оцінити його захищеність, наприклад:
👉 Читайте також:
Резервна копія (backup) — це дамп, дублікат даних електронного ресурсу, який включає увесь вміст — файли і папки сайту, базу даних. Збережений дамп дає можливість швидко відновити сайт до попереднього стану.
Ось плагіни, які підійдуть для резервного копіювання WordPress:
BackWPup – WordPress Backup Plugin
UpdraftPlus: WordPress Backup & Migration Plugin
Уважно спостерігаючи за системними журналами, можна виявити і погасити будь-яку атаку ще в її зародковій формі.
Кожен веб-сервер по замовчуванню генерує 2 типи логів:
Окрім цього у WordPress існує власний лог:
Дуже важливо їх щоденно передивлятися і моніторити, що забезпечити стабільне та надійне функціонування електронного ресурсу. Це можна робити як з допомогою автоматизованих систем, наприклад GoAccess або Zabbix, так і стандартними засобами командного рядка Linux, наприклад:
tail -n 50 access.log
– перегляд останніх 50 рядків журналу;tail -n 100 -f access.log
– виводить останні 10 рядків журналу і стежить за наступними запитами в режимі реального часу;tail -f access.log | grep "ERROR"
– фільтрація логів в режимі реального часу;tail -f access.log error.log
– перегляд декількох логів одночасно в режимі реального часу;grep "User-Agent" access.log | grep "YYYY-MM-DD"
– пошук в логах запитів від заданого юзер-агента та за вказаною датою.Виявлені шкідливі IP-адреси варто перевіряти, вносити в чорні списки та блокувати на рівні сервера з допомогою фарєвола. Одним з кращих рішень є CSF Firewall – синхронізується з IPTablecs, LFD, Fail2ban, ClamAV, дозволяє формувати різноманітні правила доступу, обмежувати доступ за геолокацією, формувати білі та чорні списки і багато іншого.
Варто дбати не тільки про безпеку сайту, а й сервера на якому він розміщений. Якщо сервер вразливий, то всі старання щодо захисту WordPress будуть зведені нанівець.
Зокрема, перевірте все, що стосується мережевих TCP/UDP портів:
Проведіть аудит безпеки SSH-з’єднання, яке найчастіше піддається bruteforce атакам:
Встановіть спеціалізовані програмні модулі для захисту сервера:
Користувачі часто запитують: “Хто і навіщо буде мене ламати? Кому я та мій сайт потрібен?”.
Їм потрібні не ви чи ваші сайти. Їм потрібні ваші ресурси. Будь-який сайт – це інструмент, знаряддя, додаткові потужності, які можуть бути використані в різних цілях, наприклад:
А тепер уявіть, що таких сайтів — тисячі. Виходить прибутковий бізнес.
Підсумовуючи, можу виділити вектори атак, яким найчастіше піддаються сайти на WordPress:
zip -r website-backup.zip
та mysqldump -u username -p databasename > dump_file.sql
./wp-content/plugins
і плагіни деактивуються скопом.define( ‘WP_ALLOW_REPAIR’, true );
та перейшовши за посиланням https://your-site.com/wp-admin/maint/repair.php
wp_users
(наявність прихованих користувачів) і wp_posts, wp_meta (на наявність шкідливого коду).18. Провести ручний пошук по базі даних – зробити її дамп, скачати SQL-файл на локальний комп’ютер, відкрити в редакторі вихідного коду Sublime Text або SciTE Editor та через пошук/заміна або регулярні вирази прибрати його. Варто звернути на такі вирази як: base64_decode, eval, document write та інші. Очищену базу зберегти у тому самому форматі і кодуванні та імпортувати назад.
19. Звернутися до спеціалістів KR. Laboratories – ми допоможемо з захистом сайту на WordPress.
20. Перейти на якісний та захищений хостинг, що унеможливить зараження від сайтів-сусідів і вразливостей самого хостингу.
21. Перенести домен сайту на обслуговування в DNS Cloudflare.
👉 Читайте також:
ПОДІЛИТИСЬ У СОЦМЕРЕЖАХ:
Вкажіть, будь ласка, контактний номер телефону. Наш менеджер миттєво зв’яжеться з Вами!
Топовий матеріал!
Дякую за вашу роботу!
дякую!