Безопасность сайта на WordPress: как настроить. Чеклист.

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

Драматичная сцена

31.07.2016 - Пользователь заблокирован из-за большого количества попыток неудачного входа или неверного имени: 
Username: admin 
IP Address: 91.210.145.0 (0.145.dynamic.PPPoE.fregat.ua)
IP Range: 91.210.145.*

07.08.2016 - Пользователь заблокирован из-за большого количества попыток неудачного входа или неверного имени: 
Username: admin 
IP Address: 188.163.107.186 (SOL-FTTB.186.107.163.188.sovam.net.ua)
IP Range: 188.163.107.*

07.08.2016 - Пользователь заблокирован из-за большого количества попыток неудачного входа или неверного имени: 
Username: pro-toyz.ru 
IP Address: 188.163.107.186 (SOL-FTTB.186.107.163.188.sovam.net.ua)
IP Range: 188.163.107.*

Что делаем при развёртывании блога

    • Администратор сайта ни в коем случае не должен иметь имя по умолчанию – admin. Этим вы в разы сокращаете сопротивляемость своего сайта.
      Также помните, что первый пост и комментарий к нему делается от имени администратора. Если демо-данные оперативно не удалить, атакующий сможет увидеть ваш реальный логин.

  • Имя пользователя не должно совпадать с видимым именем. Это также усложнит жизнь атакующему.
  • Пароль. Мне смешно про это писать, но некоторые люди до сих пор уверены, что их любимые слово или два достаточно надёжны и уникальны, чтобы быть паролем. Используйте программы для генерации сложных паролей.
    При этом внутренний параноик шепчет мне, что онлайн-генераторы паролей иногда используются их авторами для пополнения словарей для атак. Поэтому скачиваем программу-генератор паролей (например, здесь) и генерируем его самостоятельно. Состав: буквы разных регистров, цифры, спецсимволы. Для лучшего запоминания можно использовать генерацию по слогам (вида DoRe2mi).
  • Если на блоге не предполагается свободная регистрация и написание статей внешними участниками, этот функционал нужно обязательно отключить. Повысить уровень прав с «автора» до «администратора» — отдельная успешно практикуемая дисциплина в атаках.
  • Отключаем возможность правки программного кода php из веб-интерфейса.
  • Поменять ”salt” в wp-config.php. Что такое «соль»? Это настройка начальных значений для генератора случайных чисел. Образно выражаясь, при использовании стандартных «солей» вы убедительно и подробно рассказываете всему миру где вы будете через час, день и даже год. Это очень удобно для атакующего, подбирающего пароль.
    Для этого идём на: https://api.wordpress.org/secret-key/1.1/salt
    Полученные строки вставляем в наш файл, там есть точно такой же блок с другими значениями.
    При каждом заходе на страницу хеши будут пересчитываться.
    Это следует сделать сразу после развёртывания сайта, а также при любом подозрении на взлом/утечку пароля. Все активные пользовательские сессии (куки) станут недействительными, пароли при следующем изменении пересчитаются с новой рандомизацией.
  • Отключаем XML-RPC (возможность удалённой публикации статей в том числе через Microsoft Word). Это удобно, но также сильно облегчает злоумышленнику работу по подбору пароля.
  • Переименовать префикс базы данных. Это затруднит атакующему проникновение в виде SQL-инъекции. Это также может позволить держать несколько не особо нагруженных сайтов WordPress в одной базе.
  • Обязательно настраиваем регулярное резервное копирование сайта и базы данных. Даже если до сайта доберутся, это позволит сравнить страницы «до» и «после» и быстро откатить вредоносные изменения.
  • Полезно также настроить регулярный мониторинг добавлений и изменений файлов. Это позволит оперативно выявить факт вмешательства.
  • Для продвинутых – править сайт в репозитории GIT или SVN и выкатывать сайт оттуда.

Общие вопросы сетевой гигиены

  • Регулярно обновляем версии WordPress и дополнений. Атаки по свежим уязвимостям — это отдельный востребованный рынок, использование же недочётов старых версий вообще доступно каждому интересующемуся вопросом пользователю.
  • Любые доработки, делающие обновления невозможными, следует придирчиво и многократно обдумывать: а нужны ли они в таком виде и нет ли альтернатив? У WordPress есть прекрасный механизм «дочерних тем», позволяющий во многих случаях  не изменять стандартный программный код.
  • Минимизируем число дополнений. Стараемся их не ставить без нужды. Если дополнение уже не нужно – его также следует удалить, а не просто деактивировать. Несмотря на то, что дополнения порой сильно облегчают нам жизнь, они могут быть ещё и небезопасно разработаны (чаще всего без злого умысла), то есть открывать двери злоумышленнику там, где, казалось бы, всё отлично защищено. Атаки на популярные версии плагинов включены в функционал автоматически тралящих Интернет роботов.
  • Управляем сайтом через SSL-соединение (https://) для предотвращения кражи передаваемых учётных данных. Особенно это касается работы через публичные Wi-Fi точки доступа, где с безопасностью всё печально. Некоторые хостинг-провайдеры предоставляют возможность выпустить бесплатный сертификат для таких целей.

На сегодня у меня всё. Будьте здоровы и держите свои сайты под присмотром.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

два + 17 =