По фреймворкам
Безопасность WordPress — почему его атакуют и минимальная защита
WordPress атакуют чаще всего из-за его доли — через уязвимости плагинов/тем, пропущенные обновления, слабых администраторов и открытые поверхности администрирования (wp-admin/xmlrpc). Минимальная защита: автообновления, минимум плагинов, надёжная аутентификация (2FA), ограничение доступа к админке и резервные копии.
Для: всех, кто ведёт сайт на WordPress. Здесь нет шагов атаки — только почему его атакуют и минимальная защита. Общую по фреймворкам картину смотрите на хабе безопасности по фреймворкам.
Почему его атакуют: входы предсказуемы
Атаки на WordPress — не магия: автоматизированный перебор прощупывает фиксированный набор слабых мест. Знаете входы — знаете, что закрывать.
① Уязвимости плагинов/тем
Известные дыры в стороннем коде. Крупнейший вход. Оставленная без внимания или заброшенная — дыра остаётся открытой.
② Пропущенные обновления
Неприменённые патчи ядра/плагинов. Автоматизированные инструменты бьют по опубликованным CVE.
③ Слабые/переиспользуемые администраторы
admin + слабый пароль + без 2FA. Захват через перебор входа или переиспользование утёкшего пароля.
④ Открытая поверхность администрирования
wp-admin/xmlrpc/перечисление пользователей через REST. Плацдарм для перебора или усиления.
Минимальная защита (5 шагов)
Закрывайте специфичные ловушки WordPress по порядку. Каждый шаг делается в панели администратора или в конфигурации.
Автоматизируйте обновления (высший приоритет)
Держите плагины/темы минимальными
Надёжная аутентификация (2FA) для администраторов
admin и держите привилегии минимальными. (→ что такое 2FA)Ограничьте доступ к админке и число попыток входа
xmlrpc.php, если он не используется, и подавите перечисление пользователей через REST-API. Ограничить, откуда можно достучаться до панели администратора, — ещё лучше.Резервные копии и обнаружение подмены
Частое (опасное)
- ядро и плагины обновляются вручную, а потом заброшены
- неиспользуемые плагины/темы лишь отключены
- администратор
admin+ слабый пароль + без 2FA - попытки входа, xmlrpc, перечисление пользователей оставлены нараспашку
Правильно
- ядро/плагины/темы на автообновлениях
- неиспользуемые расширения удалены для минимизации
- администраторы на надёжном пароле + 2FA, минимальные привилегии
- ограничение попыток входа, ненужные функции выключены, восстановимые резервные копии
Взгляд этого сайта: управляйте «расширениями и заброшенностью», а не ядром
Для WordPress работает не эффектная конфигурация, а операционная дисциплина «не добавлять расширений сверх меры, не оставлять их без присмотра». Плагины удобны, но каждый добавляет «ответственность продолжать обновлять». Принцип нашего сайта тот же, что для любой технологии: минимизируйте зависимости (плагины), автоматизируйте обновления и защищайтесь надёжной аутентификацией и восстановимыми резервными копиями. Выглядит специфично для WordPress, но на деле это применённый универсальный фундамент. Проверить CVE плагинов можно через поиск CVE/KEV.
Читать дальше
- Хаб: безопасность по фреймворкам · Безопасность Laravel
- Фундамент: плейбук реагирования на уязвимости · основы резервных копий
- Аутентификация: что такое 2FA · Глоссарий: что такое фишинг (главный путь к администраторам)
FAQ
QWordPress опасен?
Ядро WordPress активно сопровождается и само по себе не особенно уязвимо. Опасно использование. Крупнейшая доля делает его лёгкой целью для автоматизированных атак, и большинство реальных взломов приходит не из ядра, а из уязвимостей сторонних плагинов/тем, пропущенных обновлений, слабых учётных записей администратора и открытых поверхностей администрирования. Обратная сторона: закрыв это, вы срезаете большую часть риска.
QСколько плагинов — уже слишком много?
Правило: «только необходимый минимум». Каждый плагин расширяет поверхность атаки, а любой оставленный без обновления или заброшенный становится дырой. Перед установкой проверьте частоту обновлений, распространённость и дату последнего обновления; а всё, что не используете, удаляйте, а не просто отключайте (файлы отключённого плагина всё ещё могут быть целью уязвимости). То же и с темами.
QЧто абсолютный минимум, который стоит сделать?
(1) Включите автообновления для ядра, плагинов и тем; (2) удалите неиспользуемые плагины/темы, чтобы срезать число; (3) дайте учётным записям администратора надёжный пароль и двухфакторную аутентификацию (2FA); (4) ограничьте доступ к админке (wp-admin/логин) и число попыток входа; (5) держите восстановимые офлайн-резервные копии плюс обнаружение подмены. Эти пять останавливают большинство автоматизированных атак.