Вступление
Безопасность и как следствие нормальная работа сайта остается актуальной уже многие годы. Не секрет, что сайты, созданные на CMS WordPress, особенно активно подвергаются стороннему вмешательству. Для периодической проверки защищенности сайте, существует ряд действий, которые принято называть аудит безопасности WordPress сайта. О нём речь в этой статье.
Проблемы безопасности WordPress
Под безопасностью сайта, понимаем закрытие потенциальных и существующих возможностей проникнуть в код сайта для внедрения вирусных кодов, а также спам атак сайта через формы комментирования и обратной связи. Если второй вариант, угроз безопасности, можно отнести к неудобствам администрирования, мало влияющим на функционал сайта, то проникновение в код чревато от периодического воровства контента, до воровства сайта целиком.
Основные проблемы безопасности WordPress это их динамичность и скрытость. Под динамичностью понимаем, всё новые варианты взломать сайт. Скрытность, подразумевает невозможность понять, что сайт взломан без специальных инструментов анализа.
Как хакеры взламывают сайты WordPress
При написании кода почти невозможно не создавать никаких дыр в безопасности. Когда хакеры находят эти уязвимости, они используют их, и вы остаетесь с уязвимым сайтом. Существуют и другие способы, которыми сайт может стать уязвим, включая человеческие ошибки, такие как использование паролей, которые легко угадать, а также небезопасный или ненадежный хостинг.
Существует ряд часто используемых и потенциальных уязвимостей WordPress, он включает:
- SQL Injection (SQLI) – возникает, когда SQL-запросы могут вводиться и выполняться с URL-адреса сайта;
- Межсайтовый скриптинг (XSS) – хакер может вводить код в сайт, как правило, через поле ввода;
- Загрузка файла с вредоносным кодом на незащищенный сервер;
- Подпрограмма запроса на межсайтовый запрос (CSRF) – код или строки вводятся и выполняются с URL-адреса сайта;
- Brute Force – Метод подбора. Постоянные попытки войти в систему, угадывая имя пользователя и пароль учетной записи администратора;
- Отказ в обслуживании (DoS) – когда сайт падает из-за постоянного потока трафика, исходящего от хакбота;
- Распределенный отказ в обслуживании (DDoS). Подобно атаке DoS, за исключением того, что hackbot отправляет трафик из нескольких источников, таких как зараженные компьютеры или маршрутизаторы;
- Open Redirect – внедряется код и страница сайта, постоянно перенаправляется на другую страницу, установленную хакером со спамом или на другой сайт (фишинговый) сайт;
- Фишинг (кража личных данных) – сайт или страница, созданная хакером, которая похожа на хорошо известный, общепринятый сайт, но используется для сбора учетных данных для входа в систему, обманывая пользователя для ввода их сведений;
- Вредоносное ПО – вредоносный скрипт или программа с целью заражения сайта или системы;
- Локальное включение файлов (LFI) – злоумышленник может контролировать, какой файл выполняется в запланированное время, установленное CMS или веб-приложение;
- Обход аутентификации – дыра в безопасности, позволяющая хакеру обойти регистрационную форму и получить доступ к сайту;
Еще варианты взломов
- Полное раскрытие пути (FPD). Когда путь к веб-сайту сайта раскрывается, например, когда видны листы каталога, ошибки или предупреждения;
- Список пользователей. Возможность определения действительного имени пользователя для его последующего использования ватаке с использованием «тупого» добавления имени в конец URL-адреса сайта WordPress. Это даст идентификатор пользователя, который может вернуть профиль автора с действительным именем пользователя;
- XML External Entity (XXE) – XML-вход, который ссылается на внешний объект и плохо обрабатывается неправильно настроенным парсером XML и может привести к раскрытию конфиденциальной информации;
- Обход безопасности – аналогично обход аутентификации, за исключением того, что хакер может обойти существующую систему безопасности, чтобы получить доступ к некоторой части сайта;
- Удаленное выполнение кода (RCE) . Хакер имеет возможность выполнять произвольный код на машине или сайте с другого компьютера или сайта;
- Включение удаленного файла (RFI). Использование на сайте ссылки на внешний скрипт, с целью загрузки вредоносного ПО с совершенно другого компьютера или сайта;
- Подделка запроса на стороне сервера (SSRF). Когда хакер может управлять сервером частично или полностью, чтобы заставить его выполнять запросы удаленно;
- Обход каталога. Случаи, при которых HTTP может быть использован для доступа к каталогам сайта и выполнения команд за пределами корневого каталога сервера;
Хотя это не полный список уязвимостей WordPress, они являются наиболее распространенными способами взлома сайта, с помощью бота. Могут быть применены несколько методов одновременно. Источник списка уязвимостей: https://premium.wpmudev.org
Как проводить аудит безопасности WordPress сайта
Посмотрим основные мероприятия, которые нужно включить в аудит безопасности WordPress сайта.
Актуальность версии
Прежде всего убедитесь, что ваша версия WordPress актуальна и обновлена до последней версии. Стоит отдать должное разработчикам системы и сообществу WordPress, они постоянно следят за возникающими проблемами уязвимости. В кротчайшие сроки после выявления уязвимости, выпускаются релизы безопасности с её устранением. Так что, проверка версии системы это первый шаг в комплексном аудите безопасности.
Префикс базы данных
Это нужно было делать во время установки. Раньше, во время установки система всем выставляла префикс базы данных wp_. Это уязвимость. Сейчас, система предлагает (если я не ошибаюсь) для префикса произвольные символы. Как бы то ни было, префикс базы данных в виде двух букв [wp_] нужно сменить и использовать для префикса 4 цифры и/или буквы (можно больше). Как сменить префикс рабочего сайта читать Как поменять префикс базы данных WordPress.
Простые логины
Исключите из пользователей и не допускайте регистрации тех, кто в качестве логина (имени пользователя) выбрал логины «administrator», «admin». Если по каким либо причинам, вы имеет такой логин, сначала создайте нового пользователя с правами «администратор», поменяйте автора у статей и удалите пользователей «administrator», «admin».
Почему это важно? Логины «administrator», «admin» используются первыми в варианте проникновения н сайт через подбор паролей.
Уберите простой пароль администратора
В продолжение борьбы с подбором, поменяете лёгкий пароль администратора или администраторов, если их несколько. С недавних пор на WordPress стоит генератор сложных паролей, которого вполне достаточно для создания сложного пароля. Посмотреть и поменять пароль можно на вкладке Пользователи>>> ваш профиль.
Если вас не устраивает встроенный генератор паролей, используйте сторонний тут (http://randstuff.ru/password/) или тут (http://www.webtoolhub.com/tn561383-random-password-generator.aspx).
Двухфакторная аутентификация
Если вы предъявляете повышенные требования к безопасности сайта, активируйте двухфакторную аутентификацию. Не забывайте, что для такой авторизации понадобится рабочий телефон или действующий email. Не забывайте, что двухфакторная аутентификация распространится на всех ваших пользователей.
Ключи безопасности
Современный способ установки WordPress, позволяет устанавливать систему без непосредственного редактирования файла конфигурации. То есть, уже давно можно обходить ручную правку файла wp-config.php, в текстовом редакторе.
А именно в этом файле есть набор ключей безопасности, который нужно периодически менять. В этом файле есть ссылка на смену ключей, вот она: https://api.wordpress.org/secret-key/1.1/salt/. Перейдите по ссылке, возьмите набор ключей и в текстовом редакторе замените их в файле wp-config.php.
Примечание: если вы давно не меняли ключи, лучше это сделать сейчас.
Актуальность активных и пассивных плагинов сайта
Напомню, что обновления CMS WordPress делаются не только для изменения функционала сайта, но и для исправления безопасности системы. Как следствие, обновление плагинов тоже часть исправления безопасности. Если вы используете плагины, которые не обновляются, то есть вероятность взлома сайта через эти плагины.
Именно поэтому, все не обновляемые плагины помечаются, как потенциально опасные.
Неактивные пользователи
Система WordPress изначально создавалась очень интерактивной. Возможность комментирования, регистрация, отправка сообщений, всё это элементы интерактивного общения с пользователями входящие в коробочную версию.
Давно замечено, что на одного «живого» пользователя, регистрируется десяток «пустышек» или «ботов». При атаках спам ботов, эти показатели увеличиваются значительно.
Обычно, при организации безопасности сайта, ставится защита от спам регистрации. Однако, даже «живых» пользователей, нужно периодически просеивать. Удаляйте, зарегистрированных пользователей, не проявляющих активность на сайте. Замечено, что они могут использоваться для попыток взлома.
Резервное копирование
Если у вас нет решений по постоянному резервному копированию сайта, нужно его сделать. Решить проблему периодического резервного копирования сайта можно:
- Настройкой резервного копирования на вашем хостинге;
- Установкой плагина автоматического резервного копирования;
- Периодическим ручным резервным копированием.
Важно, чтобы у вас пол рукой, всегда была свежая резервная копия сайта.
Удалите лишние файлы
После установки и настройки сайта удалите из каталога сайта, следующие файлы:
/wp-admin/install.php
wp-config-sample.php
readme.html
Если вам нужно оставить файл конфигурации для исходного образца, просто его переименуйте. Файл readme содержит описание вашей версии WP, что также может стать элементом уязвимости.
Плагин безопасности
Завершите аудит безопасности WordPress сайта установкой профильного плагина.
После полдюжины взломов сайта, я могу утверждать, на сайте WordPress, обязательно нужно использовать один из плагинов безопасности.
Плагин Wordfence
Я использую плагин Wordfence ( https://ru.wordpress.org/plugins/wordfence/). Отличный плагин с бесплатным и платным функционалом.
Как альтернативу, рекомендую рассмотреть плагины:
iThemes Security
https://ru.wordpress.org/plugins/better-wp-security/
Плагин iThemes Security имеет более 30 функций безопасности, которые вы можете использовать, и вы можете включить больше тонн, если будете обновлены.
Defender Security
https://wordpress.org/plugins/defender-security/
Defender Security является бесплатным и невероятно простым в использовании с интуитивно понятным интерфейсом и подойдет чтобы сделать, аудит безопасности WordPress сайта. За несколько кликов вы можете закрепить безопасность своего сайта. Также доступна версия премиум-класса, если вам нравятся другие методы безопасности, которые вы также можете установить и забыть за пару кликов.
Sucuri Security
https://wordpress.org/plugins/sucuri-scanner/
Sucuri Security – популярный вариант защиты WordPress. В нем есть много функций, которые вставляются в один плагин, а также в премиум-версию, если вы хотите включить дополнительные функции.
BulletProof Security
https://wordpress.org/plugins/bulletproof-security/
Это плагин для безопасности и базы данных, все в одном, что помогает сократить количество плагинов, которые вы используете, чтобы ускорить ваш сайт. Доступна версия премиум-класса, которая включает в себя резервные копии всего сайта и многие другие функции безопасности.
SecuPress Free — WordPress Security
https://wordpress.org/plugins/secupress/
С помощью SecuPress вы можете сканировать свой сайт на наличие вредоносных программ, блокировать боты и подозрительные IP-адреса. Существует также версия премиум-класса с более широкими возможностями.
SiteLock Security
https://wordpress.org/plugins/sitelock/
Бесплатный плагин SiteLock имеет множество ценных функций безопасности и может сканировать ваш сайт на предмет уязвимостей безопасности с обновлениями в реальном времени.
Выводы
Можно еще долго перечислять все возможные шаги по повышению безопасности. Они в следующей статье по безопасности, так как требуют расширенных пояснений. Однако, будем считать, что априори, более серьезные защиты включены в функционал плагинов, которые я перечислил. В этой статье, будем считать, что аудит безопасности WordPress сайта, а точнее проверка необходимых базовых защит сайта от взлома проведена.
©www.wordpress-abc.ru
Еще статьи
- Зачем нужна защита от хотлинка WordPress сайта
- Плагин WangGuard — терминатор спам пользователей WordPress
- Чужой код в теме WordPress
- Как получить бесплатный сертификат SSL: центр сертификации StartSSL (StartCom)
- Взлом аккаунта сайта и хостинга