Общие советы по безопасности WordPress-сайтов

В январе 2020 исследователи безопасности нашли, а разработчики исправили уязвимости в плагине для WordPress под названием WP Database Reset. Это плагин для технических целей сайтостроителей, упрощающий сброс всей базы данных WordPress в исходное состояние или же только отдельных выбранных пользователем таблиц.

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

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

Уязвимость в плагине устранена разработчиком в середине января, на 2 февраля 2020, судя по статистике скачиваний, плагин обновили 20% пользователей.

Скриншот с официального сайта WordPress.org показывает статистику плагина Wp Database Reset за январь 2020
Статистика загрузок плагина Wp Database Reset на сайте WordPress.org

Чтобы снизить вероятность взлома сайта на WordPress — а взлом это не обязательно разрушение, чаше взломщикам нужны ресурсы сервера, на котором сайт расположен, придерживайтесь следующих скучных правил (выполнение большинства из них не требует специальных навыков, список неполон):

Настройте создание резервных копий сайта на виртуальном хостинге и периодически скачивайте их себе на компьютер, после чего дублируйте в облачных хранилищах и на отдельных физических носителях. Дополнительно используйте резервное копирование с помощью плагинов (обычно доступно в комплексных плагинах безопасности);
Регулярно обновляйте систему управления контентом сайта (по умолчанию она обновляется автоматически);
Обновляйте плагины на сайте (по умолчанию требует ручного обновления);
Обновляйте тему оформления. Важно ! Если вносились изменения в код темы без использования функционала дочерних тем, после обновления ваши изменения кода будут утрачены;
Удалите темы оформления сайта, кроме той, которую используете;
Удалите неиспользуемые плагины (деактивировать их недостаточно);
Поставьте один из популярных комплексных плагинов безопасности на ваш сайт;
Для использования сайта в стандартном режиме (написание новых статей, комментирование) заведите отдельную учётную запись, которая не будет администраторской;
Используйте менеджеры паролей, которые позволят создавать и хранить сложные и отличающиеся для различных сервисов пароли (пример хорошего пароля: pyMDJ5$RMP5&PJWI$pex&q39)
Для доступа к управлению сайтом не используйте бесплатные сети Wi-Fi, если не пользуетесь надёжным VPN;
Ваш рабочий компьютер также должен быть защищен, используйте последние версии программ, регулярно устанавливайте обновления для них и операционной системы. Помните, что Windows 7, если не имеет коммерческой лицензии организации на продолжение поддержки, более не поддерживается Microsoft и является уязвимой;
Если вы уверенный пользователь и пользуетесь ftp-клиентом для загрузки файлов на сайт — остановитесь. И используйте клиент с поддержкой sftp (Secure File Transfer Protocol) — использовать ftp небезопасно;
Установите SSL-сертификат на ваш сайт, входите в административную панель, используя HTTPS;
Обновляйте версию PHP в административной панели вашего виртуального хостинга;
Если в вашем аккаунте виртуального хостинга несколько сайтов — уязвимость одного из них ставит под угрозу безопасность других ваших сайтов. Держите каждый сайт в обновлённом состоянии.

Да, выполнять рекомендации из этого списка скучно и лень часто побеждает. Но многое из него настраивается один раз, что-то автоматизируется.

Автоматическое обновление плагинов и тем в WordPress легко настроить. По умолчанию обновляется только сам WordPress, включить авто обновление остальных компонентов можно в конфигурационном файле, или же воспользоваться специальными плагинами.

Резервное копирование, конечно, тоже автоматизируется. Но, чтобы не было ложной уверенности в безопасности, резервные копии надо проверять на возможность восстановления, хранить в разных хранилищах (облако, компьютер, физический носитель, в идеале ещё один физический носитель в отдельном помещении). Словом, делать это не как все.

Настраивая плагин резервного копирования, не стоит хранить полученные резервные копии в каталоге сайта на хостинге — определённые атаки на незащищённый сайт позволят утащить базу данных сайта, затем узнать административный пароль.

Нужен ли антивирус для сайта ?

 

Многие популярные хостинг провайдеры используют антивирусные решения для автоматической проверки сайтов своих пользователей. Если ваш сайт окажется заражён, вы, скорее всего, будете уведомлены об этом по электронной почте провайдером, а также сервисами Яндекс Вебмастер и Google Вебмастер, если пользуетесь ими.

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

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

Важна комплексная превентивная защита сайта, основные направления которой описаны в списке выше. К тому же, если сканирование происходит бесплатно, то функция лечения платная. Выполняйте рекомендации по безопасности, тогда и лечение не понадобится.

Для проверки того, что рекомендации по безопасности сайта на WordPress соблюдены, достаточно проверить сайт двумя-тремя популярными онлайн-сканерами безопасности.

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

Приведённые рекомендации по безопасности касаются не только сайтов на CMS WordPress, но и сайтов на других системах управления контентом, устанавливаемых пользователем на хостинг самостоятельно. WordPress остаётся самой популярной CMS в 2020 году.

По статистике W3Techs на конец января 2020, более 42% всех сайтов не используют каких либо систем управления контентом, те же, что используют, преимущественно выбирают WordPress. Эта CMS используется более чем на 35% мировых сайтов, с огромным отрывом опережая другие системы — среди CMS доля WordPress составляет более 62% (данные на конец января 2020).

Статистика использования CMS от W3Techs
Статистика использования CMS от W3Techs

10 самых популярных CMS по статистике W3Techs на начало 2020 года выглядит так:

Скриншот 10 самых популярных CMS на начало 2020 года по версии W3Tech
10 самых популярных CMS в начале 2020 года

 

Из-за своей популярности и ошибок пользователей в её эксплуатации, WordPress — самая уязвимая CMS, также как платформа Windows на компьютерах и Android на мобильных устройствах. Регулярные обновления компонентов ваших сайтов и выполнение общих правил безопасности при работе с программным обеспечением сведут угрозы безопасности ваших сайтов к статистическому минимуму.

Возвращаясь к началу статьи, дополню список плагинов, уязвимости в которых также были найдены в январе 2020 и уже исправлены. Эти плагины нужно обновить:

  • Donorbox;
  • Quiz And Survey Master;
  • Redirects;
  • Rencontre;
  • Featured Image from URL;
  • bbPress Members Only;
  • bbPress Login Register Links On Forum Topic Pages;
  • GDPR Cookie Compliance;
  • Photo Gallery;
  • Minimal Coming Soon & Maintenance Mode;
  • WooCommerce Conversion Tracking; Import Users From CSV with Meta;
  • Ultimate FAQ; WP Simple Spreadsheet Fetcher For Google;
  • Backup and Staging by WP Time Capsule;
  • InfiniteWP Client; Ultimate Auction;
  • WooCommerce – Store Exporter;
  • Awesome Support;
  • Videos on Admin Dashboard;
  • Computer Repair Shop;
  • LearnDash;
  • Code Snippets;
  • Chained Quiz;
  • Contextual Adminbar Color;
  • 2J SlideShow;
  • Chatbot with IBM Watson;
  • WP Accessibility;
  • AccessAlly;
  • Ultimate Member;
  • WP DS FAQ Plus;
  • wpCentral;
  • WPS Hide Login;
  • Calculated Fields Form;
  • Flamingo.
Следующие плагины придётся удалить и найти им замену, так как в них найдены уязвимости, которые на конец января 2020 года не закрыты. Официальный сайт WordPress.org отключил возможность загрузки этих плагинов из-за опасности их дальнейшего использования:

  • resim-ara;
  • Marketo Forms and Tracking.

В следующих темах WordPress также были исправлены уязвимости и их необходимо обновить по состоянию на конец января 2020:

  • ListingPro;
  • Travel Booking;
  • ElegantThemes Divi Builder;
  • EasyBook;
  • TownHub;
  • CityBook;
  • Real Estate 7;
  • CarSpot;
  • Houzez – Real Estate.

Соблюдайте общие правила информационной безопасности и получайте максимум от ваших сайтов.