Как защитить сайт WordPress от DDos атаки

Защититься от DDos-атаки практически не возможно, потому что сервер не может определить какие ip-запросы нужно отсеять. Атака производилась на файл WordPress wp-cron.php

21 августа сего года блог Ай Пи Мани был временно не доступен. Точнее он был заблокирован почти на сутки.

Приношу всем свои извинения. Одновременно хочу поблагодарить суппорт своего хостера за оперативную помощь.

Причина блокировки сервера для меня очень необычная — DDos-атака. Раньше я с такой напастью еще не сталкивался.

Что это такое? Как я сам понял от добрых людей DDoS-атака — распределенная атака типа отказ в обслуживании (DDoS — Distributed Denial of Service). Смысл такой атаки в том, что хакеры одновременно (и довольно продолжительное время) обращаются к серверу с огромного количества разных ip-адресов. Сервер не справляется с такой нагрузкой и блокируется.

В общем, как мне сказали, защититься от DDos-атаки практически не возможно, потому что сервер не может определить какие ip-запросы нужно отсеять.

Атака производилась на файл WordPress wp-cron.php, который лежит в корне блога.

Этот файл нужен для публикации постов с отсрочкой. Например: вы написали пару статей, поставили дату публикации на будущее число и отправились в отпуск, а посты будут автоматически публиковаться по расписанию. Очень удобно.

Так вот. Оказывается, если не пользоваться отсроченной публикацией, то специальное обращение к этому файлу (типа //ваш_блог/wp-cron.php?check=46cbe1674da1d2888104482d6ed4f87f) активирует на сервере неиспользуемые скрипты, которые сами не завершаются и только накапливаются в памяти потребляя все больше системных ресурсов сервера.

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

if ( $_GET['check'] != wp_hash('187425') )

файла wp-cron.php

Вот тут и скрывается жестокий подвох. 🙁 По-умолчанию, во всех вордпрессах это число 187425! Таким образом, организовать атаку любой блог с движком WordPress не так уж и сложно.

Защититься легко — измените число по-умолчанию на любое другое свое.

На мой сервер было произведено более 25 запросов в секунду. Как долго продолжалась атака не знаю, т.к. сервер «встал» и статистику не записывал. После перезагрузки сервера атака повторялась снова и снова…

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

На сколько мне известно, DDos-атака довольно дорогостоящее удовольствие. Поэтому, вряд ли стоит ждать повтора. Да и приняты уже некоторые меры по защите (не только описанные в этой статье).

Рекомендую всем блоггерам позаботиться о защите своих проектов.