Loading...
X

Безопасность сайтов на WordPress


Нужно принимать меры по обеспечению безопасности веб-сайтов – это аксиома.

Начнём с того, что выкиньте из головы мысль что «мой сайт никому не нужен» или «о моём сайте ещё никто не знает» или «хакерам не интересен мой сайт».

Ещё до того, как на ваш сайт пришли первые посетители, ваш сайт попадает в поле зрение всевозможных автоматических сканеров, которые может быть и не искали специально ваш сайт, они наткнулись на него сканируя диапазоны IP, исследуя список сайтов на одном IP. Это как микробы – вы их не видите, но они вездесущи. Они есть в воздухе, на ручке двери, на одежде. Именно поэтому мы каждый раз моем руки перед едой – даже если они на вид не грязные.

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

Не надо впадать в панику и разбивать копилку чтобы заказать профессиональный аудит безопасности сайта. Я расскажу о сервисах, которые БЕСПЛАТНО проверят ваш сайт на уязвимости, а также о замечательном плагине, который также бесплатно поможет предотвратить многие угрозы безопасности.

Сканирование на уязвимости WordPress

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

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

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

Кроме WordPress, проблемы безопасности могут быть, например, на самом сервере, особенно если вы используете VPS.

Перечисленные ниже приёмы защиты сайта на WordPress очень просты, но при этом очень эффективны против большинства атак. Время от времени проверяйте ваш сайт, чтобы убедиться, что с ним всё в порядке. К тому же – это всё абсолютно бесплатно.

1. Безопасность паролей WordPress

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

Чтобы не дать злоумышленнику даже шанса на подбор пароля, следуйте следующим рекомендациям:

  • никогда, ещё раз, НИКОГДА не используйте одинаковые пароли на разных сайтах. Это очень чревато.
  • пароль не должен быть одним словом, которое можно найти в словаре. Также он не должен быть фразой, составленной из слов, которые можно найти в словаре. Делайте сложные, бессмысленные и длинные пароли.
  • используйте большие, маленькие буквы, цифры и специальные символы в пароле. При этом если пароль длинный и бессмысленный – злоумышленники никогда не смогут его подобрать.
  • следите за безопасностью вашего компьютера. Используйте и регулярно обновляйте антивирус, не используйте пиратский софт (он часто содержит бэкдоры). Если на вашем компьютере появился вирус, то он без труда сможет украсть и переслать все пароли с вашего компьютера, в том числе и от сайтов.
  • в случае угрозы компрометации пароля (если его могли узнать другие лица), например, если на компьютере обнаружен вирус, если вы стали жертвой фишинговой атаки (вы думали, что вводите пароль на своём сайте или от своей почты, а это оказался какой-то другой сайт) – то немедленно поменяйте пароли!

На самом деле, в этих правилах нет ничего особо сложного. Это должно стать привычкой, как, к примеру, мыть руки перед едой.

2. Онлайн проверка WordPress на уязвимости

Вы можете бесплатно проверить свой сайт WordPress на уязвимости онлайн, адрес сервиса WPScan: https://suip.biz/ru/?act=wpscan

Введите адрес своего сайта и ждите результатов (это может занять довольно много времени).

В самом начале выводиться информация о версии WordPress, а также об интересных заголовках и записях, например, в файле robots.txt. Это не означает что присутствует проблема! Это только позволяет увидеть то, что видят хакеры: скрытые для индексации папки (обычно они изучают их более тщательно), устаревшее программное обеспечение сервера (может содержать уязвимости).

Далее выводиться название темы:

Кстати, если вам понравилась на чужом сайте тема, но вы не знаете, как она называется – это один из способов узнать (хотя есть пути и попроще). Самое главное – если тема содержит уязвимости, то здесь будет об этом сказано.

Затем идёт перечень используемых плагинов:

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

Например, эта запись:

[!] We could not determine a version so all vulnerabilities are printed out

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

3. Плагин iThemes Security для отражения атак хакеров

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


При взгляде на страницу настроек плагина на ум приходит панель управления самолётом:

Это и понятно, ведь безопасность – это многогранный процесс.

Security Check – Включить рекомендованные настройки безопасности одной кнопкой (разработчики понимают, что пользователям WordPress не до управления самолётом).

Основные настройки – Многие пункты там уже переведены, в принципе, можно ничего не трогать, так как настройки сбалансированы.

Notification Center – О чём и кому сообщать, в случае если плагин предпринял меры (например, заблокировал пользователя по IP из-за слишком большого числа попыток запросить файлы, которые не существуют – это верный признак применения сканеров)

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

Режим "Нет на месте" – Отключение доступа к админке WordPress по расписанию

Заблокированные пользователи – здесь вы можете посмотреть уже заблокированные IP, а также внести туда новые. Загляните в этот пункт и там где Запретить доступ клиентским приложениям (User agent) впишите:

HTTrack
sqlmap
wpscan
text
Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-PT;
-
CyotekWebCopy
Wget
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.3) Gecko/20010801
WebCruiser
yacybot
Opera/9.27
MauiBot

  • HTTrack – делает клон веб-сайта на локальном компьютере. Блокирую по причине чрезмерной нагрузки на веб-сервер. Да и локальное зеркало сайта большинству нормальных людей в наши дни не нужно.
  • sqlmap – ищет SQL-инъекции. Для WordPress не представляет угрозы, но может нагружать сервер.
  • wpscan – основной сканер WordPress. Если вы сканируете свой сайт – это хорошо. Если ваш сайт сканируют посторонние – это плохо.
  • text – этот бот сильно нагружает сервер.

Резеврные копии базы данных – Создание резервной копии базы данных вручную или по расписанию. Я использую другой плагин, поэтому у меня эта опция отключена.

Обнаружение изменений файлов – Следит, чтобы никакие файлы неожиданно не менялись. Это важно, т.к. изменение файла может свидетельствовать о взломе или о неавторизованном доступе.

File Permissions – Проверяет разрешения доступа к файлам.

Local Brute Force Protection (защита от подбора пароля методом перебора) – Защищает от брут-форса учётных данных, рекомендуется включить.

Network Brute Force Protection – Используя базу данных IP адресов тех, кто пытался брут-форсить другие сайты, запрещает им доступ.

Password Requirements – Если включить, то от всех пользователей будут требоваться только надёжные пароли.

SSL – Использовать только надёжные HTTPS соединения. На самом деле, у вас уже должен быть настроен SSL сертификат, чтобы вы могли воспользоваться этой опцией. Эта опция только делает принудительный редирект с HTTP на HTTPS.

Тонкая подстройка системы – Разные настройки, вы можете почитать их описание, они почти все переведены на русский язык.

WordPress Соли – Делает хранимый хеш пароля ещё более надёжным.

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

4. Проверка безопасности сервера

Система управления контентом работает на сервере. Если сервер имеет проблемы с безопасностью, то эти же проблемы автоматически имеет и сайт.

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

Чтобы найти подобные проблемы, используйте этот сканер Nikto: https://suip.biz/ru/?act=nikto

Если вы самостоятельно настраивали сервер, то проверьте, нет ли лишних открытых портов. Узнать, какие порты видны хакеру можно с помощью Nmap здесь: https://suip.biz/ru/?act=nmap

5. Проверка правильности установки и настройки SSL сертификата

Эта проверка нужна тем, кто использует HTTPS протокол и самостоятельно настраивал сервер, либо разместил свой сертификат на хостинге.

Выполняется много разных проверок:

Если у вас есть серьёзные проблемы (уязвимости или неправильная настройка), то они будут указаны красными записями.

Адрес сервиса: https://suip.biz/ru/?act=testssl

Заключение

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

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

Рекомендуется вам:


5 observations on “Безопасность сайтов на WordPress
  1. Вика

    Здравствуйте.
    у меня на сайте в логах плагина очень много 404 ошибок с одним и тем же адресом, скрин прикрепила (очерь редко, но так же и попытки подбора логина-пароля). много ip уже в черном списке, но запросы на этот адрес whttp://s2symposium.org/wp-login.php так и не прекращаются. возможно ли что нибудь с этим сделать усилиями плагина? сканировала сайт различными он лайн сервисами - ничего подозрительного не нашлось.

     
    Reply
    1. MiAl MiAl

      Здравствуйте!

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

      В плагине iThemes Security есть функция противодействию подбора пароля пользователя, это пункт Local Brute Force Protection, он включён по умолчанию.

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

      Если у администратора сайта статичный (всегда одинаковый) IP адрес, то можно установит запрет доступа к форме входа всем, кроме данного IP адреса. Либо если вход в панель администрирования выполняется редко, то в файле .htaccess можно запретить доступ вообще всем IP к форме авторизации на сайте. А когда нужно будет зайти в админку WordPress, то на время убирать этот запрет доступа. После окончания администрирования вновь его включать.

      По поводу вопроса «почему подбирают пароль для моего сайта». На самом деле, автоматические сканеры и брут-форсеры действуют практически в отношении всех сайтов. Поэтому никогда не стоит думать, что «про мой сайт никто не знает» или «у меня маленький, не интересный хакерам сайт» - сканеры автоматически проверяют огромное количество сайтов и IP адресов и ищут те, в которых есть слабые места в безопасности. В дальнейшем такие хосты используются для фродинга (мошинничества), распространения вредоносного ПО (вирусов) и для других противоправных действий.

       
      Reply
  2. Вика

    …за пароль я не переживаю, там и за 2000 лет не подберут плюс делала двойную авторизацию входа в админку через модальное окно (считайте это паранойей))) вот нагрузки на сервер я то и побоялась, это сейчас уже порядка 60 хостов плагин занес в черный список, а так запросы велись более интенсивно. конечно же и брутфорсят, но как то вяло… вот на тестовом сайте злоумышленники как то определили имя администратора (хотя там имя то было из 3-х одинаковых букв (тестовый все же, не отнеслась сполной ответственностью) и получилось, что при подборе пароля плагин занес мой IP в черный список, пришлось сносить сайт. в обоих случаях - на основном и тестовом сайтах я что устанавливала один плагин скачанный с… так скажем просторов интернета.. теперь расплачиваюсь.. 

    после того как уже вам написала, на форуме вордпресс нашла как заблокировать сайт рефер. не знаю то ли это или нет, не подскажите? не совсем в этом понимаю.

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_REFERER} s2symposium\.org [NC]
    RewriteRule ^(.*)$ - [F]
    </IfModule>
    
    # END WordPress
    
     
    Reply
    1. MiAl MiAl

      Если накапливается много IP для блокировки, то это не так плохо, как если бы со всех этих IP приходили запросы, которые нужно было бы обрабатывать. То есть нагрузка от блокировки IP на много порядков ниже, чем если бы нужно было обрабатывать запросы от этих адресов (запускать PHP скрипты, делать запросы к базе данных).

      Если плагин заблокировал ваш IP адрес, то ничего страшного в этом нет, по крайней мере, не нужно переустанавливать WordPress — на хостинге перейдите к файлам сайта, найдите там файл .htaccess и в нём удалите свой IP — вот и всё! Этот плагин для блокировки использует файл .htaccess.

      Имя пользователей WordPress определяется элементарно той же самой программой WPScan, о которой говорится в статье.

      На некоторых сайтах имена пользователей можно узнать просто перебирая адреса вида:

      • САЙТ/?author=1
      • САЙТ/?author=2
      • САЙТ/?author=3
      • САЙТ/?author=4
      • САЙТ/?author=5
      • САЙТ/?author=6
      • и т.д.

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

      Реферер содержит информацию о сайте, откуда пришёл запрос. На вашем скриншоте информации о реферере нет — там просто нелепый адрес к странице, которая, само-собой, не существует. То есть блокировка реферера такая же бессмысленная в этом случае, как и действия «хакера». Значение реферера можно посмотреть в логах доступа веб-сервера и оно имеет значение к безопасности (можно отбрасывать запросы к админке, если на эту страницу пришли не с вашего сайта — но при этом атакующий очень легко может установить любое значение реферера), но (мне кажется), вы не совсем понимаете что это такое, поэтому это было бы долгой темой.

       
      Reply
  3. Вика

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

     
    Reply

Leave Your Observation

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

wp-puzzle.com logo

Scroll Up