Двофакторна аутентифікація значно підвищує рівень безпеки при дотриманні інших умов (таких як своєчасне оновлення движка-тим-плагінів, застосування практик безпечного програмування тощо).
Зіткнувшись з питанням підключення Google Authenticator до сайту на WordPress, я провів невелике дослідження існуючих плагінів і сьогодні хочу поділитися з вами результатами цього дослідження.
Насамперед позначимо початкові умови:
- сайт на WordPress версії 5.3.2 (найбільш актуальної на той момент);
- движок розгорнуто в режимі Multisite в зв’язці з nginx;
- грошей платити не хочеться (ну це як завжди).
Незважаючи на велику кількість плагінів, придатних для виконання поставленого завдання, до розгляду були допущені тільки чотири з них, що пройшли перевірку на сумісність з вашою версією WordPress:
Підсумки огляду та тестування
Google Authenticator від miniOrange
Сторінка плагіна: wordpress.org/plugins/miniorange-2-factor-authentication
Заявлені можливості безкоштовної версії плагіна для Google Authenticator від miniOrange:
- двофакторна аутентифікація одного користувача;
- підтримка Google Authenticator, Authy, LastPass Кодів, QR-кодів, PUSH-повідомлень, Soft Token питань;
- запобігання брутфорс атак і блокування IP-адрес;
- моніторинг подій входу в систему;
- багатомовність.
Ключові особливості платних версій плагін для Google Authenticator від miniOrange:
- двофакторна аутентифікація декількох користувачів (оплата за кількістю користувачів);
- підтримка додаткових каналів OTP, наприклад, OTP over email, OTP over SMS (послуги SMS купуються окремо), підтвердження email;
- кастомізація способів входу для різних облікових записів;
- використання security-питань для відновлення доступу;
- підтримка multisite;
- переадресація користувачів після логіна на основі ролі користувача;
- управління довіреними пристроями.
Після установки і активації плагіна в очі кидається неймовірну кількість налаштувань і функцій, пропонованих адміністратору сайту. Тут можна знайти все від WAF до автоматичного бекапа бази даних за розкладом. Чесно кажучи, мене завжди лякають комбайни подібного роду, а практика показує, що з-за великої кількості функцій глибина їх реалізації часто залишає бажати кращого.
Результати тестування:
- настройки задаються відразу для всієї мережі в режимі multisite — тільки в платних версіях;
- можливість використання двофакторної аутентифікації можна надати однією або кількома ролями — тільки в платних версіях;
- для групи «Адміністратори» можна примусово включити двофакторну аутентифікацію — невідомо;
- при примусовому включення можна задати graceful період і відправити повідомлення — невідомо;
- примусове включення для певного користувача — невідомо;
- присутній опція включення довіри до пристрою на X днів — тільки в платних версії;
- можна задати білий список IP-адрес, для яких не буде застосовуватися двофакторна аутентифікація — тільки в платних версіях;
- двофакторна аутентифікація для XMLRPC включається окремо — невідомо;
- у вікні налаштування можна включити ReCaptcha і налаштувати поріг її спрацювання — це добре;
- ReCaptcha можна запустити в тестовому режимі (без блокування користувачів) — невідомо;
- при підключенні Google Authenticator пропонується завантажити коди відновлення — тільки в платних версіях.
Two Factor Authentication
Сторінка плагіна: wordpress.org/plugins/two-factor-authentication
Заявлені особливості безкоштовної версії плагіна Two Factor Authentication:
- застосування двофакторної аутентифікації до певної ролі сайту (можна включити для адміністраторів, але не включати для передплатників);
- можливість відключення користувачем;
- підтримка мультисайтов.
Ключові особливості платній версії плагіна Two Factor Authentication:
- можливість примусового включення двофакторної аутентифікації через деякий час після створення облікового запису (наприклад, для всіх адміністраторських облікових записів старше тижні);
- власники сайта можуть вказувати довірені пристрої, для яких запит додаткової аутентифікації буде виконуватися один раз у кілька днів, а не при кожному вході в систему;
- підтримка сторонніх форм входу в систему;
- застосування аварійних кодів при втраті пристрою.
Результати тестування:
- настройки задаються відразу для всієї мережі в режимі multisite — це дуже добре;
- можливість використання двофакторної аутентифікації можна надати однією або кількома ролями — це дуже добре;
- для групи «Адміністратори» можна примусово включити двофакторну аутентифікацію — тільки в Premium-версії;
- при примусовому включення можна задати graceful період і відправити повідомлення — це дуже добре;
- примусове включення для певного користувача — невідомо;
- присутній опція включення довіри до пристрою на 30 днів — тільки в Premium-версії;
- можна задати білий список IP-адрес, для яких не буде застосовуватися двофакторна аутентифікація — можливість відсутня;
- двофакторна аутентифікація для XMLRPC включається окремо — це добре;
- у вікні налаштування можна включити Captcha і налаштувати поріг її спрацьовування — можливість відсутня;
- Captcha можна запустити в тестовому режимі (без блокування користувачів) — можливість відсутня;
- при підключенні Google Authenticator пропонується завантажити коди відновлення — тільки в Premium-версії.
Two-Factor
Сторінка плагіна: wordpress.org/plugins/two-factor
Плагін Two-Factor від команди Plugin Contributors є OpenSource плагіном і пропонує наступні опції:
- використання email для відправки кодів двофакторної аутентифікації;
- резервні коди;
- Dummy метод для цілей тестування.
Результати тестування:
- не знайшов налаштувань для мережі або сайту, всі знайдені налаштування розташовувалися тільки в профілі користувача — це погано;
- існуючий тестовий користувач після установки і активації плагіна в систему увійти не зміг через непізнаною помилки, знадобилося відключення і повторне включення плагіна — це теж якось не дуже;
- цікава функція — використання email як засіб додаткової аутентифікації, однак, зважаючи на те, що для цього використовується той же самий email, на який реєструвався користувач, практична значимість її досить сильно знижується;
- адміністратор може примусово включити функцію двофакторної аутентифікації для конкретного користувача, але не може включити те ж саме для груп користувачів.
Wordfence Login Security
Сторінка плагіна: wordpress.org/plugins/wordfence-login-security
Wordfence Login Security є відокремленою частиною комплексного плагіна Wordfence Security.
Wordfence Login Security безкоштовно надає наступний функціонал:
- двофакторна аутентифікація з використанням Google Authenticator, Authy, 1Password, FreeOTP;
- включення OTP для будь ролі сайту;
- відсутність обмежень будь-якого роду;
- додавання Google Recaptha v3 для сторінок входу та реєстрації;
- захист від роботів;
- захист від перебору паролів і перехоплення облікових даних шляхом блокування з великим IP пулам;
- захист XMLRPC двофакторної аутентифікацією або відключення цього функціоналу зовсім.
Враховуючи, що даний плагін є спрощеною версією складного комерційного продукту, цілком можливо, що він задовольнить і не найпростіші потреби.
Результати тестування:
- настройки задаються відразу для всієї мережі в режимі multisite — це дуже добре;
- можливість використання двофакторної аутентифікації можна надати однією або кількома ролями — це дуже добре;
- для групи «Адміністратори» можна примусово включити двофакторну аутентифікацію — це добре (якщо б дозволили так робити для кожної групи користувачів, було б дуже добре);
- при примусовому включення можна задати graceful період і відправити повідомлення — це дуже добре;
- примусове включення для певного користувача — відсутня (принаймні, у безкоштовній версії);
- присутній опція включення довіри до пристрою на 30 днів — це добре;
- можна задати білий список IP-адрес, для яких не буде застосовуватися двофакторна аутентифікація — це дуже добре (полегшить нам проведення автоматизованого тестування безпеки);
- двофакторна аутентифікація для XMLRPC включається окремо — це добре;
- у вікні налаштування можна включити ReCaptcha і налаштувати її поріг — це добре;
- ReCaptcha можна запустити в тестовому режимі (без блокування користувачів) — це добре;
- при підключенні Google Authenticator пропонується завантажити коди відновлення — це добре.
В режимі мультисайту плагін коректно відпрацював з усіма підключеними сайтами і з усіма користувачами (зареєстрованими на всіх сайтах/на одному з сайтів мережі).
Висновки
Для особистого блогу або невеликого single-сайту, в якому один або декілька користувачів, цілком може підійти плагін Two-Factor від Plugin Contributors. Це мінімалістичне рішення, яке дозволить отримати головний функціонал без реклами і настирливих прохань заплатити за ту чи іншу плюшку.
Для режиму multisite і задоволення бажань потюнить аутентифікацію, а також не платити за це грошей, кращим вибором, на мою думку, буде плагін Wordfence Login Security.
Для того ж режиму multisite при бажанні потюнить аутентифікацію і готовність оплатити необхідний функціонал, цілком може підійти плагін Two Factor Authentication.
Давати ж які-небудь рекомендації щодо Google Authenticator від miniOrange рука не піднімається, бо протестувати функціонал конкретно двофакторної аутентифікації і управління цим функціоналом у безкоштовної версії не вийшло, а ставлення до подібного роду комбайнів у мене завжди дуже обережне.