Проблемы с безопасностью WordPress

Рассказываем о проблемах безопасности, характерных для WordPress, и о том, как их можно решить, чтобы защитить ваш сайт или интернет-магазин от киберпреступников.

Какие проблемы с безопасностью есть у WordPress

WordPress — самая популярная система управления контентом в мире. Как очень любят упоминать сами разработчики этой системы, на WordPress построено более 40% веб-сайтов. Однако у этой популярности есть и обратная сторона: такое огромное количество потенциальных мишеней неизбежно притягивает злоумышленников. По той же причине и исследователи кибербезопасности внимательно изучают WordPress и регулярно рассказывают о тех или иных проблемах данной CMS.

В результате достаточно часто можно услышать мнение о том, что WordPress свойственны проблемы с безопасностью. Но у столь пристального внимания есть и позитивная сторона: благодаря ему хорошо известны и сами угрозы, и те методы, с помощью которых с ними можно справляться, чтобы сделать свой WordPress-сайт безопасным. Об этом мы сегодня и поговорим.

1. Уязвимости в плагинах, темах и WordPress core (именно в этом порядке)

Во всех подборках проблем с безопасностью WordPress, которые вы можете найти в интернете, стабильно фигурируют такие вещи, как межсайтовый скриптинг (XSS, cross-site scripting), внедрение SQL-кода (SQLi, SQL injection) и межсайтовая подделка запроса (CSRF, cross-site request forgery). Так вот, все эти атаки — а также ряд других — становятся возможны из-за уязвимостей либо в основном программном обеспечении WordPress (WordPress core), либо в плагинах и темах.

При этом следует иметь в виду, что, по статистике, непосредственно в WordPress core обнаруживают лишь малую часть уязвимостей. К примеру, за весь 2022 год в основном ПО WordPress нашли всего 23 уязвимости — что составляет 1,3% от всех 1779 уязвимостей, найденных в WordPress в прошлом году. Еще 97 багов (5,45%) были обнаружены в темах. Ну а львиная доля приходится на плагины: в них нашли 1659 уязвимостей, то есть аж 93,25% от общего числа.

Стоит заметить, что количество обнаруживаемых в WordPress уязвимостей не должно быть поводом для того, чтобы отказываться от использования этой CMS. Уязвимости есть везде, просто находят их в основном там, где активно ищут, — то есть в наиболее популярном программном обеспечении.

Как повысить безопасность:

  • Всегда вовремя обновляйте WordPress core — пусть уязвимости в нем находят не так часто, их эксплуатация может быть гораздо более массовой, так что опасно надолго оставлять их незапатченными.
  • Также не забывайте обновлять темы и — в особенности — плагины. Именно плагины ответственны за большинство известных уязвимостей в экосистеме WordPress.
  • Не устанавливайте «лишние» WordPress-плагины, то есть те, которые не требуются для работы вашего сайта. Это поможет существенно снизить количество потенциальных уязвимостей, которые есть на вашем WordPress-сайте.
  • Вовремя деактивируйте или вовсе удаляйте те плагины, которые вам больше не нужны.

2. Слабые пароли и отсутствие двухфакторной аутентификации

Вторая важная проблема безопасности WordPress — это взлом сайтов с помощью простого перебора паролей (bruteforce) или ввода утекших логинов и паролей (credential stuffing) из готовых баз, которые собирают в результате утечек с каких-то сторонних сервисов.

В случае успешной компрометации одного из аккаунтов с высокими привилегиями злоумышленники могут получить контроль над вашим WordPress-сайтом и использовать его в своих целях: воровать данные, незаметно добавлять в ваш контент ссылки на продвигаемые ими ресурсы (SEO-спам), устанавливать вредоносное ПО, включая веб-скиммеры, задействовать ваш сайт для хостинга фишинговых страниц и так далее.

Как повысить безопасность:

  • Используйте надежные пароли для всех пользователей вашего WordPress-сайта. Чтобы этого добиться, полезно применять парольную политику — то есть список правил, которым должны удовлетворять пароли. Существуют плагины, которые позволяют внедрить политику паролей на вашем WordPress-сайте.
  • Ограничьте количество попыток логина — опять-таки, для этого есть масса плагинов.
  • Обязательно подключите двухфакторную аутентификацию с помощью одноразовых кодов из приложения. И снова: для этого есть WordPress-плагины.
  • Чтобы ваши WordPress-пользователи не мучились, запоминая длинные и сложные пароли, убедите их установить менеджер паролей. Кстати, в нашем Kaspersky Password Manager можно также получать и одноразовые коды для двухфакторной аутентификации.

3. Беспорядок с пользователями и правами доступа

Следующая проблема связана с предыдущей: часто владельцы WordPress-сайтов недостаточно тщательно управляют правами своих WordPress-пользователей. Тем самым существенно повышаются риски в случае успешного взлома одного из пользовательских аккаунтов.

Потенциальные последствия взлома аккаунта с высокими правами доступа — в том числе такими, которые были выданы ошибочно или «на вырост», — мы уже описали выше: добавление SEO-спама в ваш контент, несанкционированный доступ к данным, установка вредоносного ПО, создание фишинговых страниц и так далее.

Как повысить безопасность:

  • Крайне внимательно относитесь к выдаче пользователям прав. Применяйте принцип минимальных привилегий — выдавайте пользователям только те права, которые им совершенно точно необходимы для их работы.
  • Регулярно проверяйте список ваших WordPress-пользователей и удаляйте все аккаунты, которые больше не нужны.
  • Переводите пользователей в менее привилегированные категории, если повышенные права им более не требуются.
  • Конечно же, тут также справедливы советы из пункта 2: используйте надежные пароли и подключите двухфакторную аутентификацию.

4. Вредоносные плагины

Отдельно от «просто уязвимых» плагинов существуют также откровенно вредоносные. К примеру, не так давно исследователи обнаружили WordPress-плагин, который притворялся плагином для кэширования страниц, но на самом деле представлял собой полноценный бэкдор. Основной его функцией было создание нелегальных учетных записей с правами администратора и получение полного контроля над зараженными сайтами.

Ранее в этом году исследователями был обнаружен другой вредоносный WordPress-плагин, который изначально был легитимным, но был заброшен разработчиками более десятилетия назад. Его заботливо «подобрали» киберпреступники и превратили опять-таки в бэкдор, с помощью которого они смогли получить контроль над тысячами WordPress-сайтов.

Как повысить безопасность:

  • Старайтесь не устанавливать лишние WordPress-плагины — только те, которые действительно необходимы для работы сайта.
  • Перед установкой плагина внимательно читайте отзывы пользователей — если плагин делает что-то подозрительное, велик шанс, что кто-нибудь это уже заметил.
  • Деактивируйте или удаляйте плагины, которые вы больше не используете.
  • Существуют плагины, сканирующие WordPress-сайт на предмет вредоносного ПО. Но имейте в виду, что им нельзя полностью доверять: многие современные WordPress-зловреды умеют их обманывать.
  • Если ваш WordPress-сайт ведет себя странно и у вас есть подозрения, что он заражен, подумайте о том, чтобы заказать аудит безопасности и чистку сайта у специалистов.

 

5. Протокол XML-RPC без ограничений

Еще одна специфическая уязвимость, которая есть в WordPress, — это протокол XML-RPC. Он предназначен для коммуникации между WordPress и сторонними программами. Однако еще в 2015 году в WordPress появилась поддержка REST API, и теперь для работы с приложениями чаще всего используется именно он. Несмотря на это, XML-RPC все еще остается включен в WordPress по умолчанию.

 

Проблема состоит в том, что XML-RPC может быть использован взломщиками для двух типов атак на ваш сайт. Во-первых, это брутфорс-атаки, направленные на подбор пароля к учетным записям ваших WordPress-пользователей. Дело в том, что XML-RPC позволяет объединять множество попыток логина в один запрос, что упрощает и ускоряет задачу хакерам. Во-вторых, протокол XML-RPC может быть использован для организации DDoS-атак на ваш WordPress-веб-сайт через так называемые пингбэки.

Как повысить безопасность:

  • Если в ближайшее время вы не собираетесь использовать XML-RPC, лучше отключить его на вашем WordPress-сайте — это можно сделать несколькими способами. Если эта функциональность понадобится позже — несложно будет включить ее обратно.
  • Если вы собираетесь пользоваться XML-RPC, то стоит настроить его ограничения — это можно сделать с помощью WordPress-плагинов.
  • Также чтобы защититься от брутфорс-атак, можно следовать советам из пункта 2 этого поста: используйте надежные пароли, включите двухфакторную аутентификацию и используйте менеджер паролей. Кстати, он входит в лицензию нашего продукта для защиты малого бизнеса Kaspersky Small Office Security.
Советы