Close

Оптимізація кібербезпеки CMS WordPress

WordPress – одна з найпопулярніших систем керування вмістом для веб-сайтів. Легка у встановленні, опануванні та обслуговуванні. Це дозволяє навіть людині без досвіду швидко запустити свій сайт в інтернеті. Але ця популярність має й іншу “сторону медалі”. За статистикою, кожен третій сайт, зроблений на WordPress, піддається кібер-атакам, й більшість з них досягають цілі. По замовчуванню, CMS WordPress майже не захищена та потребує додаткових заходів безпеки. Тож якщо ви просто “встановили і забули” –  рано чи пізно ваш сайт почне “жити своїм життям”. У цій статті ми поділимося рекомендаціями по оптимізації кібербезпеки сайтів на базі CMS WordPress. 

Зміст статті

Захист DNS-зони, TCP/UDP портів та IP-адреси

IP Defense

Захист DNS-зони, мережевих TCP/UDP портів та IP-адреси – це нульова точка кіберзахисту будь-якого електронного ресурсу. Якщо IP-адреса вашого сайту публічно розкрита, DNS-інформація містить чутливі дані (наприклад зв’язок з іншими серверами, сервісами, субдоменами), а TCP/UDP порти сервера вразливі, то усі інші заходи просто не матимуть сенсу.  Знаючи ці подробиці, хакер запросто зможе ідентифікувати і локалізувати вашу інфраструктуру, використавши IP-адресу як “живу мішень”, а мережеві порти як “відкриті двері”, направивши будь-яку атаку в ціль, наприклад DOS/DDOS, BruteForce, SPAM, HTTP/ICMPP-флуд та інші. В результаті це зможе спричинити втручання у роботу електронно-обчислювальної системи й викликати відмову в обслуговуванні (падіння сервера). Ваш сайт просто перестане функціонувати, а усі його дані та резервні копії, які зберігалися на сервері, можуть бути пошкодженими або навіть знищеними. Тому перше з чого необхідно починати – це забезпечення надійного кіберзахисту таких базових мережевих вузлів як DNS, TCP/UDP та IP.

Зробити це можна завдяки онлайн-сервісу ⚡ CloudFlare – справжня панацея у світі кібербезпеки електронних ресурсів! Сервіс надасть вам DNS-обслуговування (паркінг), IP-адреси v4/v6 та потужні сервери, якими “прикриє” вашу власну мережеву інфраструктуру. Глобальний міжмережевий екран CloudFlare фіксуватиме та відбиватиме будь-які аномалії та підозрілі HTTP-запити, спроби DDOS-атак. Фактично ви отримаєте безкоштовну “інтернет-броню”!

WAF Cloudflare scheme

Повний набір функцій сервісу Cloudflare включає:

  • Захист IP-адреси;
  • Захист мережевих TCP/UDP портів;
  • Надійне DNS-обслуговування, захист від викрадення домену;
  • Блокування небезпечного вхідного трафіку: підозрілих інтернет-ботів, шкідливих краулерів та сканерів (парсерів), невідомих User-Agent, токсичних і трекінгових (шпигунських) IP-адрес;
  • Генерація надійного безкоштовного SSL-сертифікату, який ніколи не “злітає” та надійно шифрує HTTP-з’єднання. Доступні різні типи: Universal, Client та Server SSL строком на 15 років (!);
  • Підтримка високошвидкісних HTTPS-з’єднань: HTTP/2, HTTP/3, SPDIF;
  • Підтримка HTTP Security Headers (заголовків безпеки);
  • Підтримка кешування типу Brotli;
  • Підтримка протоколів TLS 1.2-1.3;
  • Захист від хотлінкінгу, клікджекінгу, спуфінгу, несанкціонованого парсингу;
  • Email-роутинг.

Як бачимо, це “щедрий кошик” переваг, яким просто не можна не скористатись!

Встановлення плагінів безпеки WordPress

Наступним кроком буде – забезпечити надійний захист ядра та файлової системи CMS WordPress. Це можна зробити з допомогою плагінів безпеки, які здійснюватимуть функції мережевих екранів на рівні CMS. 

Ось три безкоштовних, перевірених нами, плагіни безпеки WordPress, які доповнюють один одного:

  • Wordfence Security – працює як безкоштовний сканер вразливостей WordPress та має функції WAF (Web Application Firewall). З його допомогою можна задіяти ряд важливих функцій з кібербезпеки, наприклад: 2FA-авторизацію (у WordFence це робиться одним кліком), Google reCaptcha v3 (захист користувацьких форм і веб-полів), anti-Bruteforce захист (захист від несанкціонованої енумерації та підбору паролів), фільтрація вхідних запитів (захист від XSS/SQL/PHP ін’єкцій) та ін. WordFence вкаже на помилки прав доступу на файли та папки, виявить заражені файли і багато іншого. Цей плагін – маст-хев, який повинен бути у розпорядженні кожного вебмайстра;
  • Sucuri Security – чудовий безкоштовний плагін для здійснення моніторингу за усіма змінами на сайті. Зокрема, це моніторинг файлів ядра WordPress, оновлення Authority Keys, робота з системними журналами, сповіщення про входи в систему, перевірка IP-адреси на наявність у чорних списках (blacklists) і багато іншого. Sucuri буде тримати в курсі будь-яких подій та проводити первинну перевірку. Крім того він містить розділ “Hardening Options”, який на автоматі вносить додатковий шар захисту файлової системи (захист від Shell Upload, блокування виконнання неавторизованих PHP-файлів і сценаріїв, захист системних директорій і т.п.);
  • All-in-One Sucurity – справжній комбайн для тюнінгу безпеки WordPress. У ньому є чимало функцій, які відсутні у двох попередніх плагінах. Наприклад він дозволяє легко змінити стандартний префікс бази даних wp_, змінити URL-адресу сторінки входу, заблокувати вразливу службу xmlrpc.php, активувати 4G/5G захист від шкідницьких ботів, а також автоматично виставити коректні права доступу на всі файли і папки WordPress. Однак з AIOS потрібно бути максимально обережним, щоби не заблокувати доступ до сайту важливим службам та пошуковим роботам;
  • WPscan – сканер відомих вразливостей компонентів WordPress. Методом API сканує і перевіряє по своїй базі даних вразливості в ядрі, темах і плагінах WordPress. WPscan допоможе зберігати CMS-систему оновленою та безпечною;
  • BackWPup – плагін резерного копіювання сайтів на WordPress. Простий у налаштуванні та відмінний у роботі, легко інтегрується з Google Drive, Amazon S3, Dropbox, Azure та іншими хмарними дисками.

Оптимізація файлів конфігурації

Захист файлів конфігурації

Файли конфігурації – це системні та службові файли, які контролюють (регулюють) роботу веб-сайтів і веб-серверів.

Отже, необхідно оптимізувати наступні файли конфігурації:

✔️ htaccess – це файл конфігурації веб-сервера Apache (а також для LiteSpeed, для NGINX необхідно правити файл vhost.conf). Він містить директиви, що керують роботою і налаштуваннями веб-сервера. З його допомогою можна також провести наступні заходи:

  • Впровадити HTTP-заголовки безпеки: HSTS, CSP, X-FRAME, X-CONTENT, EXPECT та інші. Детальніше на сторінці OWASP Secure Headers Project;
  • Впровадити фільтрацію вхідних HTTP-запитів (захист від XSS-атак, фаззінгу, ін’єкцій і т.д.);
  • Обмежити доступ до службових, системних, конфіденційних файлів і папок, запобігти неавторизованому доступу до директорій (httpasswd), унеможливити втручання в зміст файлів;
  • Налаштувати 301-редиректи та фільтрацію небежаних, динамічних, вразливих URL-адрес;

Таким чином, захист відбуватиметься не тільки на рівні CloudFlare та CMS, а й на рівні веб-сервера.

✔️ wp-config.php –  файл конфігурації CMS WordPress. Містить ряд важливих та корисних перемінних, які дозволяють відрегулювати WordPress. Рекомендуємо надійно захистити цей файл від сторонніх “очей”, перемістивши його за межі кореневої папки WordPress – на 1 рівень в гору, в межі папки public_html. Отже, з допомогою wp-config.php можна налаштувати такі функції:

  • Заборонити редагування файлів, тем і плагінів сайту через панель керування WordPress – define(‘DISALLOW_FILE_EDIT’, true);. Доступ до файлової системи має здійснюватися лише через окремі безпечні з’єднання по протоколам SFTP/SSH;
  • Відключити публічний доступ до логів та відображення помилок на сайті (відладку). Часто файли звітів про помилки (log-файли) зберігаються у відкритому доступі (наприклад, /wp-content/debug.log), що дозволяє хакеру дізнатися про усі можливі несправності. Не завжди корисним є і публічне відображення помилок – це дозволяє навмисно спровокувати помилку та отримати чутливу інформацію, наприклад взнати шляхи розташування файлів або таблиці бази даних, котрі ці помилки викликають; 
  • Відключити вбудований планувальник завдань WordPress – define(‘WP_DEBUG’, false);. Відомо, що він дуже навантажує слабкі сервери, але окрім того можна стати ціллю масованих DDOS-атак. Найкращим рішенням є включення вбудованого серверного планувальника – crontab;
  • Відрегулювати автозбереження публікацій та автостворення ревізій, відключити функцію “Кошик”;
  • Змінити розташування по-замовчуванню для кореневої директорії WordPress, контенту (/wp-content), тем (/themes), плагінів (/plugins) та завантажень (/uploads);
  • Встановити примусове SSL-з’єднання для адміністративної частини – define( ‘FORCE_SSL_ADMIN’, true ); ;
  • Вимкнути функціонал мультисайт, якщо він не використовується;
  • Відключити можливість встановлювати та редагувати плагіни для користувачів CMS – define(‘DISALLOW_FILE_MODS’,true); ;
  • Оновити ключі безпеки – WordPress Secret Keys;
  • Дозволити системі скачувати плагіни та оновлюватись лише через захищене авторизоване з’єднання – SSH2/SFTP;
  • Встановити допустимий об’єм оперативної пам’яті сервера під використання WordPress – define( ‘WP_MAX_MEMORY_LIMIT’, ‘256M’ ); ;

Рекомендуємо також уважно вивчити рекомендації по налаштуванню wp-config.php в Codex WordPress ->>

✔️ robots.txt – важливий службовий файл, який регулює індексування сторінок веб-сайту. Він дозволяє прописати правила (директиви) пошукових систем: Google, Bing, Baidu, Yandex та інших. В robots.txt з допомогою директиви Disallow можна приховати від пошукових систем ряд сторінок і URL-адрес, які на вашу думку не повинні з’являтися у пошуковій видачі. Також файл robots.txt може здійснювати контроль частоти сканування сайту (директива Crawl-Delay) та блокувати доступ шкідливим ботам (Bad Bots).

Проте, не варто робити файл robots надто інформативним, вказувати забагато інформації у ньому, зокрема шляхи до конфіденційних файлів та папок, адже цим можуть скористатися хакери, які аналізують robots на наявність вразливих URL-адрес та пробують їх експлуатувати. Сторінки з приватним змістом варто закривати від індексації на рівні сервера (код відповіді 404/403), або з допомогою вбудованого у код сторінки HTML-тегу meta robots.

✔️ /etc/ssh/sshd_config – файл конфігурації SSH-сервісу, який застосовується для безпечного з’єднання з сервером, доступу до його файлової системи та проведення операцій: читання, редагування, переміщення і т.д. SSH-протокол є одним з найпопулярніших каналів передачі даних між серверами, а тому часто стає жертвою Bruteforce-переборів і атак. Відповідно, він повинен бути максимально захищеним. Файл конфігурації sshd_config є потужним засобом для налаштування безпеки SSH, він дозволяє наступне:

  • Змінити номер порта SSH – замість стандартного 22-го поставити будь-яке пятизначне число (XXXXX), тим самим “відрізавши” себе від автоматичних атак грубої сили саме на порт 22 і зупинивши навантаження на сервер;
  • Заборонити авторизацію на сервері через обліковий запис суперадміністратора – root (PermitRootLogin prohibit-password). Це теж унеможливить ряд автоматичних атак, які намагаються перебрати усі можливі парольні комбінації до користувача root;
  • Заборонити доступ з так-званим “пустим” паролем (PermitEmptyPasswords no);
  • Заборонити вхід на сервер через пароль – натомість дозволити лише за наявністю SSH-ключа доступу. Це взагалі унеможливить атаки з підбором пари “логін/пароль”;
  • Дозволити вхід на сервер тільки для обмеженого списку IP-адрес;
  • Обмежити кількість спроб невдалого з’єднання (Limit Login Password Attempts).

☝ Це не увесь список системних файлів, які треба захистити, а лиш ті, які часто зламують. Пропонуємо ознайомитись з чек-лістом захисту CMS WordPress >>

Встановлення серверних файрволів, модулів та додатків безпеки

Утиліти і файєрволи для безпеки серверів

Тепер залишилося встановити базові сервіси та утиліти безпеки, які будуть захищати доступ до сайту на рівні веб-сервера.

Можемо виділити наступні рішення:

  • ConfigServer Security & Firewall (CSF) – універсальний багатофункціональний мережевий екран, призначений для захисту VPS/VDS-серверів на базі операційної системи Linux. Містить величезну кількість конфігурацій та можливостей;
  • IPtables – утиліта командного рядка, яка здійснює функції брандмауера. З допомогою IPtables ви зможете відфільтрувати та захистити мережевий трафік;
  • Fail2ban – ефективна програма для захисту серверів від атак грубої сили. Сканує системні журнали та виявляє небажані IP-адреси, різноманітні небезпечні та безглузді дії, формуючи чорні списки заблокованих IP-адрес (Blacklists). Також ця утиліта дуже ефективна для блокування Email-спаму та фішингу;
  • modsecurity –  це система правил безпеки для виконання тих чи інших операцій на сервері. ModSecurity перевіряє усі команди, запити, дії облікових записів і блокує їх, якщо вони не відповідають політикам безпеки. Дуже потужний засіб, який потрібно використовувати з обережністю;
  • Snort – вільна система для виявлення та запобігання кібер-атакам (IPS). Може виявити шкідливий Malware-код методом сигнатурного аналізу. Захищає від атак переповнення буфера, блокує мережеві аномалії, трояни, зондування;
  • ClamAV – серверний антивірус з управлінням із командного рядка; 
  • Lynis – утиліта для аудиту безпеки серверів на базі ОС Linux.

Отже, ми розглянули майже усі ефективні інструменти та засоби захисту сайтів на базі WordPress. Сподіваємося, матеріал був для вас цікавим та корисним. Почувайтесь в безпеці! А кому потрібна професійна допомога – ми до ваших послуг! Звертайтеся на електронну адресу: security@kr-labs.com.ua

Email-розсилка

Підписуйтесь на новини та отримуйте нові публікації на свою електронну пошту!

5 1 голос
Рейтинг статті
Підписатися
Сповістити про
guest
0 Коментарі
Вбудовані Відгуки
Переглянути всі коментарі
0
Цікаво почути Вашу думку!x
Отримати комерційну пропозицію
Оформити заявку
Замовити консультацію

Заповніть, будь ласка, форму й наш спеціаліст зв’яжеться з Вами та надасть безкоштовну консультацію!

Замовити дзвінок

Вкажіть, будь ласка, контактний номер телефону. Наш менеджер миттєво зв’яжеться з Вами!