Пока я занят делами прозаическими да проектными, молодой сайт уже начал встраиваться в экосистему Всемирной Паутины. И его уже вовсю прощупывают разного рода боты и двуногие биороботы.
Драматичная сцена
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 точки доступа, где с безопасностью всё печально. Некоторые хостинг-провайдеры предоставляют возможность выпустить бесплатный сертификат для таких целей.
На сегодня у меня всё. Будьте здоровы и держите свои сайты под присмотром.
