Wordpress - sucuri-scanner - антивірусний плагін - 2026
Published: 2026-08-18
Загальні відомості
Sucuri Security (технічний slug — sucuri-scanner, у спільноті частіше кажуть просто Sucuri Scanner) — безкоштовний антивірусний плагін для WordPress від компанії Sucuri Inc., яка тепер належить GoDaddy. У каталозі WordPress.org він зареєстрований під повною назвою «Sucuri Security — Auditing, Malware Scanner and Security Hardening» і позиціонується як комплексний захисний набір: журналювання подій, пошук шкідливого коду, перевірка цілісності файлів і набір засобів посилення захисту (hardening).
Станом на серпень 2026 року плагін працює на понад 600 000 сайтах, має 4,2 зірки з 5 (384 відгуки) і входить до сотні найпопулярніших плагінів каталогу. Остання стабільна версія — 2.7.4 (вийшла 7 липня 2026 року), а в офіційному репозиторії на GitHub гілка main уже містить 2.7.5 з одноразовими резервними кодами для двофакторної автентифікації, пошуком і фільтрами в журналі аудиту та експортом журналу у формат CSV.
Ліцензія — GPL v2. Мінімальні вимоги: WordPress 6.0+, PHP 7.4+. Плагін протестовано до WordPress 7.0. Цікава особливість: преміальні функції (сканування вразливостей ядра, PHP, плагінів і тем, темна тема) не потребують окремого встановлення — вони активуються після введення ключа API хмарного фаєрволу Sucuri (WAF).
Історія розвитку
Плагін дебютував у каталозі WordPress.org 18 листопада 2011 року. З того часу він пройшов кілька етапів:
- 2011–2013 (1.1–1.5) — перші публічні версії: сканування сайту, «одноклікове посилення захисту», перевірка цілісності WordPress, журнал останніх входів, підтримка IPv6.
- 2014 (1.6) — нова панель керування, інтеграція з віддаленим сканером SiteCheck, сторінка «Системна інформація».
- 2015–2016 (1.7) — становлення системи аудиту: журнал подій, обробка невдалих входів, звіти про brute-force атаки, черги журналів, режим зворотного проксі.
- 2017–2021 (1.8) — наймасштабніший період: повний редизайн інтерфейсу, перенесення налаштувань з бази даних у файл, інтернаціоналізація, підтримка PHP 8, перехід власності до GoDaddy (1.8.29), відключення залежності від API wordpress.sucuri.net (1.8.37), автоматичне оновлення секретних ключів, розділ «Рекомендації з безпеки WordPress».
- 2022 (1.9) — керування заголовками Cache-Control, CSP, CORS, фільтри в журналі аудиту.
- 2023–2024 (2.0–2.4) — сканери вразливостей ядра, PHP, плагінів і тем; темна тема; попередження про невідповідність домену WAF.
- 2024 (2.5) — вбудована двофакторна автентифікація (TOTP) з QR-кодами.
- 2025 (2.6–2.7) — нова бібліотека прав, шифрування ключа WAF алгоритмом AES-256-GCM, виправлення за результатами Plugin Check, явна карта AJAX-диспетчера.
- 2025–2026 (2.7.1–2.7.4) — виправлення шифрування, пагінація сторінки 2FA для великих сайтів, пошук користувачів, вимкнення XML-RPC однією кнопкою, маскування ключів у журналі аудиту, виправлення фатальної помилки PHP 8.
- 2.7.5 (у розробці) — резервні коди 2FA, пошук/фільтри/CSV журналу аудиту, виправлення порожнього журналу на неангломовних сайтах.
Варто окремо зазначити: у версії 1.8.37 розробники вимкнули публічний API wordpress.sucuri.net. Відтоді для хмарного аудиту власник сайту мусить сам визначити константу
SUCURISCAN_API_URL
у файлі wp-config.php. Тож «з коробки» сучасні версії працюють суто локально.
Вимоги та встановлення
Системні вимоги
- WordPress 6.0+ (перевірено до 7.0);
- PHP 7.4+;
- права адміністратора;
- розширення openssl (бажано) для шифрування ключа WAF;
- системна команда
diff
(опціонально, для утиліти порівняння файлів ядра).
Кроки встановлення
Усе стандартно: «Плагіни → Додати новий» у консолі WordPress, пошук за словом «sucuri», встановлення варіанта «By Sucuri Inc.». Після активації в бічному меню з'являється розділ із логотипом Sucuri. Для хмарного моніторингу подій натискають «Generate API Key» — плагін створить унікальний ключ аутентифікації сайту. Без ключа плагін функціонує повністю локально.
Корисні константи wp-config.php
// перенесення сховища даних в іншу директорію
define('SUCURI_DATA_STORAGE', '/path/to/custom/storage');
// власний API-сервіс аудиту
define('SUCURISCAN_API_URL', 'https://your-api.example.com/');
// налагоджувальні режими
define('SUCURISCAN_THROW_EXCEPTIONS', true);
define('SUCURISCAN_NO_API_HANDLE', true);
define('SUCURI_CLEAR_CACHE_ON_PUBLISH', true);
Внутрішня будова
Точка входу
Єдина точка входу — файл
sucuri.php
. Його логіка жорстко регламентована:
- спершу визначається guard-константа
SUCURISCAN_INIT
— кожен файл ізsrc/
перевіряє її і відповідає кодом 403 Forbidden на прямий запит; - перевіряються залежності WordPress (wp_die, add_action, wp_remote_get, wp_remote_post тощо);
- оголошуються константи плагіна;
- підключаються ~35 бібліотек із
src/
; - реєструються хуки деактивації та видалення.
Основні константи
| Константа | Значення | Призначення |
|---|---|---|
SUCURISCAN |
sucuriscan | Ідентифікатор і префікс опцій |
SUCURISCAN_VERSION |
2.7.5 | Версія |
SUCURISCAN_API_VERSION |
v1 | Версія API аудиту |
SUCURISCAN_CLOUDPROXY_API |
https://waf.sucuri.net/api | API Sucuri Firewall |
SUCURISCAN_CLOUDPROXY_API_VERSION |
v2 | Версія API WAF |
SUCURISCAN_SCANNER_FREQUENCY |
10800 | Інтервал сканування файлів (сек) |
SUCURISCAN_SITECHECK_LIFETIME |
21600 | Час життя кешу SiteCheck (6 год) |
SUCURISCAN_MAX_REQUEST_TIMEOUT |
5 | Таймаут запитів до API (сек) |
SUCURISCAN_AUDITLOGS_PER_PAGE |
25 | Записів аудиту на сторінку |
Ієрархія класів
Код написано в процедурно-класовому стилі PHP 7.4 без просторів імен. Усі класи статичні й утворюють ланцюжок успадкування: SucuriScan (база: шляхи, визначення IP, валідація) → SucuriScanRequest (санітизація запитів) → SucuriScanOption (зберігання налаштувань, шифрування) → SucuriScanAPI (зовнішні API) → SucuriScanSiteCheck / SucuriScanFirewall / SucuriScanMail (спеціалізовані обгортки) → SucuriScanEvent (події, черги, сповіщення) → SucuriScanHook (перехоплювачі подій WP).
Шаблонна система
Інтерфейс будується на файлових шаблонах
inc/tpl/*.html.tpl
(~120 файлів). Використовуються три типи токенів:
%%SUCURI.X%%
— екранована підстановка;%%%SUCURI.X%%%
— сира підстановка;{{Текст}}— локалізований рядок (лише при локалі, відмінній від en_US).
Усі AJAX-запити йдуть на admin-ajax.php з параметрами action=sucuriscan_ajax, nonce sucuriscan_page_nonce і змінною form_action, яку диспетчер зіставляє з явною картою з 26 обробників.
Ключові можливості
Журнал аудиту подій (Audit Logs)
Плагін перехоплює близько 45 подій WordPress і записує їх із рівнями серйозності Debug, Notice, Info, Warning, Error, Critical. Охоплено: входи (успішні та невдалі), відновлення паролів, реєстрацію й видалення користувачів, зміни профілів; публікацію, редагування, видалення й переходи статусів записів; життєвий цикл плагінів і тем; віджети, категорії, посилання, вкладення; оновлення ядра; зміну налаштувань.
Принципово важливо: журнал не зберігається в базі даних WordPress. Події накопичуються у файловій черзі auditqueue і пачками надсилаються на віддалений API. Перед записом конфіденційні дані маскуються регулярними виразами — значення полів password|passwd|pwd|secret|token|api_key|access_key|private_key|client_secret|authorization|cookie|salt замінюються на [redacted].
Сторінка журналу («Events Reporting») підтримує фільтри за часом, типами подій, користувачами, плагінами, темами, пошук (до 200 символів), пагінацію та кнопку відправлення черги. У 2.7.5 з'явився CSV-експорт (7 колонок) із захистом від формульних ін'єкцій: значення, що починаються з =, +, -, @, |, %, доповнюються апострофом.
Перевірка цілісності файлів ядра
Інструмент порівнює локальні файли з офіційними контрольними сумами:
- стандартно —
https://api.wordpress.org/core/checksums/1.0/?version={v}&locale={l}(MD5); - за налаштування checksum_api — репозиторій GitHub (SHA-1 для git-blob).
Скануються ABSPATH, wp-admin, wp-includes. Результати групуються: added, removed, modified, stable; для кожного файла вказується можливість автоматичного відновлення (перевірка права на запис). Передбачено гнучке ігнорування: статичні імена (php.ini, .htaccess, wp-config.php, readme.html), регулярні вирази (файли sucuri_*.php, дампи БД, зображення, локалізації, верифікаційні файли Google/Pinterest) і користувацький список «позначених як виправлені» (ключ — md5 шляху).
Утиліта Diff завантажує оригінал із
https://core.svn.wordpress.org/tags/{version}/{file}і виконує системну команду diff -u --. Відновлення файлів захищено від path-traversal функцією resolveIntegrityPath — саме це виправлення з'явилося у 2.7.4 після знахідки CVE-2026-73033.
Віддалене сканування (SiteCheck)
Інтеграція з безкоштовним сканером Sucuri SiteCheck:
- запит на
https://sitecheck.sucuri.net/
(json=1, fromwp=2, таймаут 60 с); - кешування результату на 6 годин;
- примусове оновлення — параметр sucuriscan_sitecheck_refresh=true.
Сканер повертає дані про шкідливий код (тип загрози, заражений URL, документація), статуси блок-списків (Sucuri Labs, Google Safe Browsing, Norton, AVG, Phish Tank, ESET, McAfee, Yandex, SpamHaus, Bitdefender), рекомендації та статистику посилань, iframe і скриптів. Сканування імітує звичайного відвідувача, тож виявляє «прихований» шкідливий код.
Моніторинг блок-списків
Окрема цінність — контроль занесення сайту до блок-списків. Потрапляння в Google Safe Browsing, наприклад, позначає сайт у видачі та браузерах, що безпосередньо б'є по репутації.
Посилення захисту (Hardening)
Розділ «Hardening & Prevention» пропонує 13 опцій:
| Опція | Призначення |
|---|---|
| Firewall | Статус підключення Sucuri Firewall |
| WPVersion | Актуальність версії WordPress |
| RemoveGenerator | Видалення мета-тега генератора (незворотно) |
| NginxPHPFPM | Довідкова опція для nginx |
| WPUploads | Блокування PHP у /wp-content/uploads |
| WPContent | Блокування PHP у /wp-content |
| WPIncludes | Блокування PHP у /wp-includes (з винятками wp-tinymce.php і ms-files.php) |
| Readme | Видалення readme.html |
| AdminUser | Перевірка акаунта з логіном «admin» |
| FileEditor | Константа DISALLOW_FILE_EDIT у wp-config.php |
| SecKeyUpdater | Автооновлення секретних ключів за розкладом |
| XMLRPC | Повне вимкнення XML-RPC (із попередженням про Jetpack) |
| AllowPHPFiles | Білий список окремих PHP-файлів у заблокованих директоріях |
Блокування PHP реалізується через .htaccess із сумісністю з Apache 2.2/2.4:
<FilesMatch "\.(?i:php)$">
<IfModule !mod_authz_core.c>
Order allow,deny
Deny from all
</IfModule>
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
</FilesMatch>
Плагін коректно прибирає власні правила (зокрема легасі-правила старих версій) і не працює з .htaccess на серверах nginx та IIS.
Пост-хак інструменти
Розділ відновлення після компрометації містить чотири кроки:
- Оновлення секретних ключів — нові ключі з
https://api.wordpress.org/secret-key/1.1/salt/
, перезапис блоку define() у wp-config.php із LOCK_EX; - Скидання паролів — генерація 15-символьного пароля, reset-ключ, лист користувачу;
- Перевстановлення плагінів — резервна копія директорії, перевстановлення через Plugin_Upgrader, відкат за збою;
- Доступні оновлення — зведення оновлень плагінів і тем, надсилання поштою.
Журнали входів (Last Logins)
Розділ показує: усі користувачі (пагінація по 25), адміністратори (останні 5 входів із прапорами країн), невдалі спроби та «зараз в мережі» (transient, оновлення кожні 15 хв, життя 30 хв). Невдалі входи зберігаються у файлах failedlogins та oldfailedlogins; після перевищення порога (30 спроб на годину) надсилається звіт про brute-force.
Де зберігаються дані
Головний принцип плагіна — відмова від бази даних WordPress для власних даних:
- корінь сховища:
wp-content/uploads/sucuri/
(змінюється константою SUCURI_DATA_STORAGE); - кожен файл —
sucuri-<ім'я>.php
із PHP-guard<?php exit(0); ?>
; - налаштування — файл sucuri-settings.php: один рядок JSON після guard-рядка;
- ключі сховищ — лише символи [0-9a-zA-Z_].
Використовувані сховища: sitecheck, auditqueue, auditlogs, trustip, integrity, ignorescanning, vulnerabilities, plugindata, lastlogins, failedlogins, oldfailedlogins, hookdata.
Шифрування секретів: ключ WAF (формат k/s — дві 32-символьні hex-стрічки) зберігається в опції cloudproxy_apikey у зашифрованому вигляді — AES-256-GCM із 12-байтовим випадковим IV (поля iv/tag/ct у base64). Ключ шифрування похідний від солей, які плагін записує у wp-config.php (SUCURI_PLUG_KEY / SUCURI_PLUG_SALT), а ті, своєю чергою, виводяться з wp_salt('auth'). Підтримується міграція легасі-формату v1 у v2; без openssl або при недоступному для запису wp-config.php активується режим зберігання без шифрування (флаг no_salt_encryption).
Налаштування
Сторінка налаштувань має п'ять вкладок:
| Вкладка | Зміст |
|---|---|
| General Settings | Сховище даних, Self-Hosting (експорт логів у власний файл), Reverse Proxy, визначення IP, часовий пояс, імпорт/експорт, скидання опцій |
| Scanner | Розклад задач (cron), утиліта Diff, кеш цілісності, ігноровані директорії |
| Alerts | Отримувачі, тема листа, ліміт листів на годину (5–160 або unlimited), поріг brute-force (30–480/год), перемикачі 25 типів подій, ігноровані типи записів, довірені IP |
| API Service Communication | Статус сервісу, проксі, API контрольних сум, цільовий URL SiteCheck |
| Website Info | Відомості про сайт, вміст .htaccess |
Довірені IP зберігаються в сховищі trustip (ключ — md5 адреси), підтримують CIDR /8, /16, /24 і виключають події з цих адрес із відправлення на сервіс. Імпорт/експорт виконується за суворим білим списком із 35 опцій — ключі API свідомо не експортуються. Скидання опцій вимагає підтвердження й деактивує плагін.
Керування HTTP-заголовками
Через хук send_headers плагін може керувати трьома групами заголовків:
- Cache-Control — режими disabled/static/occasional/frequent/busy/custom; для 13 типів сторінок налаштовуються max-age, s-maxage, stale-if-error, stale-while-revalidate, множники пагінації та «старіння». Пресет static задає max-age 604800;
- CSP (Content-Security-Policy) — лише режим report-only, щоб не ламати сайт;
- CORS — режими disabled/enabled.
Для WooCommerce у таблиці з'являються додаткові рядки (товари та категорії).
Двофакторна автентифікація (2FA)
Із версії 2.5 плагін має власну реалізацію 2FA на основі TOTP (RFC 6238):
- HMAC-SHA1, 6 цифр, крок 30 секунд, вікно допуску ±2 тики, порівняння через hash_equals;
- секрет (160 біт, base32) генерується random_bytes і зберігається в метаданих користувача;
- QR-код рендериться на клієнті вбудованою бібліотекою qrcode-generator (MIT, вендорена копія — через побоювання компрометації npm-пакетів);
- після логіну користувач отримує transient-токен (600 секунд) і переходить на сторінку введення коду;
- захист від повторного використання — запам'ятовування останнього успішного тику;
- ліміти спроб: 5 для TOTP, 3 для резервних кодів — перевищення знищує сесію;
- політика: disabled / all_users / selected_users; списки понад 25 000 користувачів вимикають політику (fail-closed).
У 2.7.5 додано одноразові резервні коди: 10 кодів по 8 символів з алфавіту 23456789ABCDEFGHJKMNPQRSTUVWXYZ (без схожих 0/O/1/I/L), формат XXXX-XXXX. Коди зберігаються лише як хеші wp_hash_password і витрачаються одноразово зі захистом від гонок (умовне оновлення метаданих). Про залишок ≤2 кодів надсилається попередження.
Інтеграція з фаєрволом Sucuri (WAF)
Інтеграція з хмарним Web Application Firewall (платна послуга):
- API:
https://waf.sucuri.net/api
(v2); - операції: show_settings, audit_trails, blacklist_ip / delete_blacklist_ip, clear_cache;
- після введення ключа автоматично вмикається reverse proxy і заголовок HTTP_X_SUCURI_CLIENTIP;
- очищення кешу при публікації записів (auto_clear_cache);
- визначення «за фаєрволом» — за наявністю заголовка HTTP_X_SUCURI_CLIENTIP;
- попередження про невідповідність доменів.
Ключ WAF доступний лише підписникам Sucuri; безкоштовна версія показує рекламні панелі та модальне вікно активації.
Сканери вразливостей
Преміальні сканери перевіряють версії ядра, PHP, плагінів і тем проти бази вразливостей:
- API:
https://wp-plugin.sucuri.net/v1/vulnerabilities/{php|core|plugin|theme}/{slug}/{version}; - автентифікація: Bearer-токен ключа WAF, заголовок X-Sucuri-WAF: 1 за фаєрволом;
- кеш результатів — 1 година (сховище vulnerabilities);
- дані надаються в партнерстві з проєктом WPVulnerability.
Робота з терміналом (wp-cli)
# реєстрація сайту або встановлення ключа API wp sucuri register wp sucuri register 0123456789abcdef0123456789abcdef # ігнорування файлу в перевірці цілісності wp sucuri integrity ignore /path/to/file.php wp sucuri integrity ignore /path/to/file.php --reason=modified # скасування ігнорування wp sucuri integrity unignore /path/to/file.php
Планувальник задач
Плагін використовує стандартний WP-Cron:
- sucuriscan_scheduled_scan — щодня (через 10 с після встановлення): скан дерева файлів із MD5-сумами (тротлінг 3 год), звіт про версію, перевірка цілісності, перевірка оновлень, відправлення черги логів (бюджет max_execution_time − 6 с);
- sucuriscan_autoseckeyupdater — щотижня: оновлення секретних ключів;
- додаткові частоти: weekly, monthly, quarterly; є опція «Never (no execution)»;
- керування — з вкладки Scanner (runnow / remove / перепланування).
Безпека та відомі вразливості
Захисні механізми
- guard прямого доступу (403) у всіх PHP-файлах;
- nonce sucuriscan_page_nonce на всіх формах;
- AJAX-диспетчер вимагає manage_options, строго валідує form_action (^[a-z0-9_]+$);
- валідація вводу регулярними виразами (заголовок IP, часовий пояс UTC±XX.XX, типи записів до 20 символів, тема листа, URL контрольних сум — лише GitHub);
- захист шляхів від виходу за ABSPATH, білий список імен сховищ;
- маскування секретів у логах і CSV; виключення ключів API з експорту;
- cookie-хелпер: whitelist-патерни, httponly, Secure на HTTPS, SameSite=Lax;
- 2FA-токени прив'язані до сесії, user-agent і валідації редиректів.
Відомі CVE
| CVE | Опис | CVSS | Версії | Виправлено |
|---|---|---|---|---|
| CVE-2022-29489 | CSRF: створення записів журналу подій (CWE-352) | 4.3 (Medium) | ≤ 1.8.33 | 1.8.34 |
| CVE-2026-73033 | Path traversal → видалення довільних файлів через sucuriscan_integrity[]=../../../wp-config.php (CWE-22) | 6.5 (CVSS 3.1) / 7.0 (CVSS 4.0) | ≤ 2.7.3 | 2.7.4 |
Додатково: збережений XSS через неекрановані імена файлів у журналі аудиту (виправлено в 2.7.4) та історичний XSS у 1.7.16. За 15 років — лише дві офіційні CVE, обидві закриті оперативно.
Тестування та CI/CD
Репозиторій вирізняється зрілою інженерною культурою:
- PHPUnit: 25 тест-класів (~196 методів) із Brain\Monkey; покриття — вектори TOTP RFC 6238, міграція AES-GCM v1→v2, інваріанти маскування секретів, захист CSV від формул, заборона path-traversal;
- Playwright: 21 e2e-спека на єдиному wp-env; workers=1, бо тести мутують глобальний стан; артефакти браузера вимкнені, щоб не захоплювати паролі й TOTP-секрети;
- phpcs.xml — явний allowlist снифів: лише security-групи (EscapeOutput, NonceVerification, ValidatedSanitizedInput, PreparedSQL, i18n, Capabilities); повний WPCS давав би ~19 000 порушень;
- GitHub Actions: unit-тести на PHP 7.4/8.5, e2e на 7.4/8.0, передрелізні перевірки, аудит залежностей composer/npm лише на релізах, деплой на WordPress.org через 10up/action-wordpress-plugin-deploy;
- маніфест дистрибутива — білий список із 7 елементів (LICENSE, inc, index.html, lang, readme.txt, src, sucuri.php).
Порівняння з іншими плагінами
| Критерій | Sucuri Security | Wordfence | MalCare | iThemes Security |
|---|---|---|---|---|
| Локальний скан файлів | MD5-дерево хешів | Власний двигун сигнатур | Хмарний скан | Власний двигун |
| Віддалений скан SiteCheck | Так (безкоштовно) | Ні | Так (платно) | Ні |
| Журнал подій | Файли + API | База даних | Так | Так |
| 2FA | Вбудована (TOTP) з 2.5 | Вбудована | Ні | Вбудована |
| Сканер вразливостей плагінів | Преміум (ключ WAF) | Вбудований | Платно | Вбудований |
| WAF | Хмарний Sucuri (платно) | Вбудований (ліміт) | Хмарний (платно) | Хмарний (платно) |
| Зберігання даних | Файли, без БД | База даних | База даних | База даних |
Головна відмінність Sucuri — зв'язка безкоштовного локального інструментарію з платними сервісами Sucuri (SiteCheck, WAF, гарантоване очищення заражених сайтів). Слабке місце безкоштовної версії — відсутність власного локального сигнатурного двигуна: виявлення шкідливого коду переважно делеговано хмарі.
Резюме
Sucuri Security (sucuri-scanner) — зрілий і поширений антивірусний плагін WordPress (600 000+ встановлень, 2 CVE за 15 років, обидві закриті). Сильні сторони:
- повний локальний набір: журнал подій, перевірка цілісності ядра з diff, 13 опцій hardening, пост-хак відновлення, журнали входів;
- принцип «без бази даних» — файлове сховище з PHP-guard і шифруванням секретів AES-256-GCM;
- вбудований TOTP 2FA з резервними кодами;
- віддалений скан SiteCheck і моніторинг блок-списків;
- інтеграція з хмарним WAF;
- серйозна інженерна культура: тести, CI, явні security-снифи.
Обмеження: для хмарного аудиту потрібна константа SUCURISCAN_API_URL (офіційний сервіс вимкнено), преміальні сканери вразливостей вимагають платного ключа WAF, а локальне виявлення шкідливого коду поступається двигунам Wordfence/MalCare. Плагін годиться як базова система моніторингу та посилення захисту, особливо для сайтів, що планують підключення платних сервісів Sucuri.
Посилання
- Сторінка плагіна на WordPress.org
- Офіційний репозиторій GitHub
- SVN-репозиторій WordPress.org
- Огляд коду на Trac
- Дзеркало common-repository
- База знань Sucuri щодо плагіна
- Профіль вразливостей на WPScan
- CVE-2022-29489 у NVD
- CVE-2026-73033 у NVD
- GHSA-vxwv-hcj3-j79g
- Трекер проблем GitHub
- Оцінка wp-safety.org
- Порівняння Sucuri і Wordfence
- Сайт Sucuri
