6 шагов для защиты WordPress от взлома

Какие из них используете вы?

WordPress — самая популярная в мире система управления контентом. Больше сайтов — больше вебмастеров и администраторов, которые не уделяют внимания безопасностью — больше жалоб на взломы.

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

ТОП-5 Open-source CMS 2017 года. Источник: Рейтинг Рунета

 

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

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

А вот и сама инструкция. Все способы актуальны и проверены на дату публикации статьи. Если у вас есть своя методика — поделитесь в комментариях. Обсудим, протестируем, разберемся.

Как взламывают сайты на WordPress

  1. Подбор или брутфорс (brute force) паролей. Хакеры сканируют интернет, ищут админки и пытаются перебирать пароли по словарю. Это срабатывает чаще, чем хотелось бы, потому что удивительно много пользователей до сих пор используют пароли вида «12345» или «qwerty».
  2. Использование нелегальных «тем». Темы — шаблоны дизайна, позволяющие изменить внешний вид сайта. На рынке существует огромное количество профессиональных тем, которые продаются за деньги. Но любители халявы идут на пиратские сайты и скачивают бесплатные темы. В русскоязычном интернете 95% таких тем заражены троянами: вредоносными программами, которые дают возможность злоумышленнику получить управление над сайтом, не выдавая себя.

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

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

Это основные и самые распространенные способы взлома сайтов на WordPress. Давайте разберемся, как заделать эти дыры и сделать ваш сайт безопасным.

Защита от брутфорса

Отказ от пользователя admin

Это самый популярный логин для пользователя, имеющего полные права на управление сайтом. И это хорошо известно хакерам. Поэтому никогда не используйте логин admin.

Что делать:

  1. Создайте нового пользователя с другим именем.
  2. Передайте ему все права, которыми обладает admin.
  3. Удалите пользователя admin и впредь логиньтесь в панель под новым именем.
  4. С помощью плагина iThemes Security автоматически блокируем любого пользователя, который пытается войти в систему под логином admin. Так как мы знаем, что мы его переименовали, то это точно хакер.
  5. Наслаждаемся спокойствием.
Настройка блокировки хоста, который пытается залогиниться как admin, с помощью IThemes Security

Ограничение доступа к странице входа

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

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

Что делать:

 

  1. В основной директории сайта создайте два файла: «.htaccess» и «.htpasswd» (названия файлов указываются без кавычек-елочек). В «.htaccess» мы пропишем инструкции, а в «.htpasswd» — данные для доступа к странице.
  2. В файл .htaccess добавляем строки:
<Files wp-login.php>

AuthName "Access Denied"

AuthType Basic

AuthUserFile /var/www/digital.tools/data/www/digital.tools/.htpasswd

require valid-user

</Files>

Где /var/www/digital.tools/data/www/digital.tools/.htpasswd — полный путь до директории с файлами. Узнать его можно у хостера.

  1. В .htpasswd прописываем логин и пароль для доступа к странице входа в систему управления контентом. Для генерации .htpasswd удобно использовать следующий инструмент: http://www.htaccesstools.com/htpasswd-generator/.
  2. Теперь при попытке зайти на страницу логина в панели управления, пользователь увидит дополнительное окно, в которое нужно ввести правильный логин и пароль — и только потом он сможет перейти на страницу входа и залогиниться уже непосредственно в панели управления.

Большинство автоматических переборщиков паролей не работают при отсутствии прямого доступа к странице входа в панель управления

Защита от взлома с использованием уязвимостей

Защита от взлома с использованием существующих уязвимостей

Используем возможности все того же iThemes Security.

Что делать:

  1. В основных настройках отметьте «Отправлять дайджест по электронной почте» и укажите email. Небольшой хак для тех, кто администрирует много сайтов одновременно: используйте для всех проектов общий email. У нас он, к примеру, вида wp@, и его читают все ответственные за поддержку сайтов специалисты. Все сообщения со всех проектов будут приходить в одно место. И это лучше, чем постоянно менять email на куче разных сайтов.
  2. Вот как это выглядит в интерфейсе iThemes Security

 

  1. Ниже включаем режим совместимости с InfiniteWP. Зачем это нужно — немного позже.
Режим совместимости включается простым чекбоксом. Ничего сложного

Включаем мониторинг изменения файлов. Проверяем чтобы была включена отправка логов изменения файлов.

Теперь вы будете получать отчет, как только какой-то из файлов сайта изменится

Теперь вы будете получать отчет, как только какой-то из файлов сайта изменится

2. Защита от взлома с использованием будущих уязвимостей

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

Чтобы злоумышленники не смогли воспользоваться незакрытыми уязвимостями, нужно обеспечить постоянное обновление движка WordPress, тем и плагинов. Встроенный механизм фонового обновления не решает этот вопрос на 100%.

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

Что сделать:

  1. Поставьте плагин InfiniteWP — Client на каждый сайт, который вы обслуживаете.
  2. Подключите сайт к центру IWP.
  3. В нем уже настройте принудительное обновление каждое воскресенье.
  4. Время от времени и при необходимости заходите в IWP и проверяйте, все ли в порядке.

3. Резервное копирование

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

Советы по настройке:

  • Ежедневный бэкап, ночью в 2-4 часа утра. Хранить 5-10 копий.
  • Еженедельный бэкап, ночью в воскресенье в 2-4 часа утра. Хранить 4-8 копий.

4. Проверка на вирусы

Если вы изначально не уверены в чистоте сайта, проверить его на наличие вредоносного кода можно с помощью AI-Bolit.

Проверка на вирусы обязательна, если на сайте стоит пиратская, а не оригинальная тема, используются пиратские плагины.

Проверка очень желательна — если сайт пришел к вам на поддержку и обслуживание от другого человека или компании.

Подводя итоги

Все, о чем мы рассказали, можно свести к достаточно короткому чек-листу.

  1. Замените пользователя admin.
  2. Ограничьте доступ к странице авторизации.
  3. Следите за изменениями файлов на сервере.
  4. Регулярно обновляйтесь.
  5. Делайте резервные копии.
  6. Проверьте сайт на вирусы.

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

0 Shares: