21 августа сего года блог Ай Пи Мани был временно не доступен. Точнее он был заблокирован почти на сутки. Приношу всем свои извинения. Одновременно хочу поблагодарить суппорт своего хостера за оперативную помощь.
Причина блокировки сервера для меня очень необычная - DDos-атака. Раньше я с такой напастью еще не сталкивался.
Что это такое? Как я сам понял от добрых людей DDoS-атака - распределенная атака типа отказ в обслуживании (DDoS - Distributed Denial of Service). Смысл такой атаки в том, что хакеры одновременно (и довольно продолжительное время) обращаются к серверу с огромного количества разных ip-адресов. Сервер не справляется с такой нагрузкой и блокируется.
В общем, как мне сказали, защититься от DDos-атаки практически не возможно, потому что сервер не может определить какие ip-запросы нужно отсеять.
Атака производилась на файл WordPress wp-cron.php, который лежит в корне блога.
Этот файл нужен для публикации постов с отсрочкой. Например: вы написали пару статей, поставили дату публикации на будущее число и отправились в отпуск, а посты будут автоматически публиковаться по расписанию. Очень удобно.
Так вот. Оказывается, если не пользоваться отсроченной публикацией, то специальное обращение к этому файлу (типа http://ваш_блог/wp-cron.php?check=46cbe1674da1d2888104482d6ed4f87f) активирует на сервере неиспользуемые скрипты, которые сами не завершаются и только накапливаются в памяти потребляя все больше системных ресурсов сервера.
Однако, чтобы скрипт запустился нужно знать значение хэша после параметра check. Оно зависит от числа, которое стоит в строке
if ( $_GET['check'] != wp_hash('187425') )
файла wp-cron.php
Вот тут и скрывается жестокий подвох.
По-умолчанию, во всех вордпрессах это число 187425! Таким образом, организовать атаку любой блог с движком WordPress не так уж и сложно.
Защититься легко - измените число по-умолчанию на любое другое свое.
На мой сервер было произведено более 25 запросов в секунду. Как долго продолжалась атака не знаю, т.к. сервер “встал” и статистику не записывал. После перезагрузки сервера атака повторялась снова и снова…
Честно говоря, я и не догадался бы, что сервер перегружался спланировано, если бы не получил письмо на почту с обоснованием этой операции (после восстановления работоспособности сервера естесственно). О чем просили писать не стану. Скажу только, что обещали повторить атаку, если не соглашусь с их условиями. Чем именно заинтересовал их мой блог мне мало понятно. В любом случае - посмотрим.
На сколько мне известно, DDos-атака довольно дорогостоящее удовольствие. Поэтому, вряд ли стоит ждать повтора. Да и приняты уже некоторые меры по защите (не только описанные в этой статье).
Рекомендую всем блоггерам позаботиться о защите своих проектов.
- Очистка базы данных WordPress
- Пинг WordPress - снижаем нагрузку на сервер
- Несовместимость wp-pda и hyper-cache
- Отключить проверку обновлений WordPress и плагинов
- Защита WordPress от DDos атаки
- Скрываем версию WordPress
- Сервисы обновления Wordpress
- Комплексная защита блога WordPress
Читайте также:
| Опубликовано: Суббота, 22 августа 2009 в 19:10 |
| Рубрика: Оптимизация WordPress |
| Комментариев: 11 |
Читать на:
![]() |
Комментариев: 11
Есть что сказать? Не молчи!
Пожалуйста, пишите по теме.Комментарии о том, какой хороший сайт или его автор расцениваются как СПАМ и беспощадно удаляются.
Спасибо за понимание.


После прочтения Вашей статьи сразу в поисковики.
У многих встречается проблема с кроном. У меня были случаи, когда он отказывал и статья не публиковалась в отведенное время. Будем принимать меры с хешем.
У меня были проблемы с кроном, до тех пор пока в саппорт хостинга не накатал претензию, сейчас работает как часы.
Хм… А в какой версии WP присутствует эта строка в коде? Что-то я у себя её не нашел.
Вот в чем оказывается проблема-то… А я уже все переделал и в хостинг писал и у друзей спросил… У меня три дня подряд все место на хостинге съедали какие-то cron файлы в папке WWW, потом вобще Ip заблокировали… В общем, если интересно, то прочитайте.
Странно, у меня в этом файле нет такой строки, возможно у вас стояла не слишком свежая версия Wordpress, а вообще, это не защитит вас от DDos, можно найти много способов положить сервер, можно тупо забить канал большим ботнетом.
Во, разжевали, а то никак понять не мог, что же это за штука такая.
Особенно фриланс часто атаковали таким методом.
А если вообще убрать эту строку? За что она отвечает?!
Закройте у себя в файле .htaccess доступ к файлу cron.php через web и всё тут.
А если нужно, то запускайте скрипт подобным образом через крон:
/usr/bin/php /var/www/sait.ru/cron.php
Дос атаки производятся с помощью “зомбосетей”. ЗОМБОСЕТЬ - у вас стоит антивирус? Он обнаруживал у вас на ПК троянов? Так вот если у вас хотя бы некоторое время на ПК находился троян 99% что вы были участником зомбосетки. И по определенному сигналу все ПК состоящие в зомбосети начинают посылать запросы на “сайт-жертву”. Все просто. Самое частое распространение троянов - кейгены. Думаете ребятки бесплатно создают кряки? Давайте, расскажите мне сказку про “сетевого альтруиста”.
Дорого стоят базы зомбосетей на 1000+ ПК, простейшая атака возможна и со 100 компов, на самом деле 25 запросов в секунду это очень мало.
На самом деле защита от дос атак - хороший хостер. Например всеми нелюбимый Ucoz не позволяет издеваться над подопечными ему сайтами.
Честно говоря 25 запросов в секунду это мало.
Сейчас на моем сервере находится сайт который работает в обычном режиме и запросов у него 48 в секунду и таких сайтов несколько. Вообще Apache очень медленный веб-сервер, лучше использовать другие.
Ddos атаки относят к кибертерроризму и я не думаю, что если кто-то заразит 1000 компов, то они обязательно будут атаковать вас. Если у вас не коммерческий проект, то не будут КОМУ ЭТО НАДО? Еще в тюрьму можно сесть.
А UCOZ-ХАВНО, поскольку не дает работать с Mysql & PHP, да еще и конструктор? Нубов только плодит…
Из двигов лучше всех JOOMLA! Предпочитаю выделенку, это дает больше возможностей и 100% на выделенке стоит защита. 1000 деревянных в месяц и 50000 гБ плюс можешь сам создавать выделенный сервер.
Число 187425 нужно поменять только в wp-cron.php? Оно больше нигде не используется?
Оно должно быть только 6-значным целым?