Как стать автором
Обновить

Сколько стоит Wordpress?

How much did you pay for Wordpress?

Бесплатный и бесценный


«Wordpress — это программное обеспечение для веб, которое вы можете использовать для создания прекрасного вебсайта, блога или приложения. Нам нравится говорить, что Wordpress — одновременно бесплатный и бесценный.» — таким слоганом нас встречает официальная страница wordpress.org. Надпись справа, сразу под кнопочкой «скачать»…

Вы не задумывались, сколько вы платите за Wordpress? Мне тут намедни пришлось… Вынужден констатировать, платят все! Даже те, кто никогда Wordpress не пользовался. Напрашивается аналогия с бесплатным сыром в мышеловке? Не тот случай. На мой взгляд, конечно…


С чего все началось?


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

Как правило в такой ситуации заказчика охватывают разные вариации извечного вопроса: от непосредственно «Что делать?» до «Что же нам теперь делать-то?!!». В этот раз вариация ограничилась стоическим «Сделайте срочно что-нибудь...». Меня же больше интересовал вопрос «Кто виноват?». Ответ удивил и заставил поделиться.

Брутфорс. Сила есть — ума не надо.


Найти «сторонние» файлы, содержащие вредоносный код, не составляет особого труда. Сложнее определить, какую уязвимость использовали, чтобы их разместить. Определив, становится понятно, кто виноват. Меня, конечно, интересовало я это или нет. И вот, что выяснилось.

Взломали 3 сайта в разное время. Все они были сделаны на базе Wordpress, к одному из них я в свое время писал плагин. Отследив обращения к «сторонним» файлам по логам доступа, я выяснил, что во всех трех случаях код был размещен через админку. Авторизовались, установили плагин или тему, содержащие «вредоносный» файл, затем запустили этот файл и он уже развернул web-shell. Затем удалили плагин и тему. Т.е. взлома через уязвимость, как такового, не было. Был подбор пароля. Один из сайтов вскрыли аж 5 раз разные «люди». Забавно. Было сначала, учитывая, что я тут не причем…

А вот потом, когда мне захотелось разобраться дальше, стало не смешно и меня захватила волна негодования. Тут все равно смайл, но серьезный, даже суровый. Я стал анализировать логи, чтобы понять, а если подбирали пароль, то как это выглядит на практике? Оказалось, что жутковато выглядит. Бот с разных ip обращается к файлу \wp-login.php в лучшем случае каждую, а в худшем пару-тройку раз за секунду сериями по 200-500 запросов в час или сутки, если он добрый, а если злой (или их несколько), то меняет ip и продолжает без перерывов. Так выглядит брутфорс. В итоге, один сайт по-злому таким образом брутфорсили беспрерывно весь март 2015 года. В этот момент администраторы хостинга обратились к заказчику с ультиматумом, указав, что сайт оказывает повышенную нагрузку на сервер, и если не будут предприняты меры по оптимизации кода, то они «вынуждены будут» заблокировать весь аккаунт. В качестве решения проблемы предложили перейти на более мощный сервер с более высокой (чувствительно на самом деле) абонентской платой, что и было, как выяснилось, сделано. Тут можно было бы отвлечься и остановиться поподробнее на хостерах, которые по сути предложили бороться с DoS-атакой путем увеличения мощности сервера (просто душки), но это побочный эффект, поэтому, как говорил Марк Твен, опустим завесу милосердия над этой сценой.

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

Ботнет. Ничего личного.


«А зачем это нужно?» — таким был следующий вопрос пострадавшей стороны. Логичный вопрос. Зачем нужно взламывать сайт? Рассылка спама, вставка на ваш сайт обратных ссылок для поднятия в поисковиках стороннего сайта, реклама запрещенного контента, воровство рекламного трафика, да мало ли… По сути, имея на вашем сайте backdoor shell, его можно использовать для чего угодно. Но самое неприятное, что в большинстве случаев, помимо прочего, с него брутфорсят другие сайты. Таким образом, вы становитесь частью ботнета — сети, которая не только вредит, но восстанавливает и расширяет саму себя.

Заказчик, конечно, вкладывал в вопрос более интимный смысл. Не ломали ли его аккаунт целенаправленно? Да нет. Ничего личного, успокоил я его.

Цифры


Более того, ничего личного, кроме чистой любви, боты не испытывают и к Wordpress. Им с ним проще. Настолько, что они предпочитают подобрать пароль, вместо того, чтобы утруждать себя поиском уязвимостей.
Кого я хотел удивить, спросите вы? То, что Wordpress ломают путем перебора паролей — это известный факт. Как с этим бороться, в общем-то, тоже известно. Но поразили цифры.

Судя по логам, на одном из вскрытых сайтов к странице входа в админку (авторизации) /wp-login.php на протяжении года обращались 248074 раз, т.е. в среднем 680 раз в сутки. Эта цифра меня повергла в шок. Конечно, это достаточно раскрученный в своей сфере сайт, он на первых местах в поисковиках и эти запросы составили 1% от общего трафика запросов к нему. И был период, когда его атаковали активно и беспрерывно, т.е. 680 в сутки — это не всегда. Но вот ведь в чем дело. Это не один бот, который сделал дело и успокоился. На смену одному приходит другой и работают они независимо каждый на свою сеть. И процесс этот нескончаемый.

Из интереса я сравнил цифры с другим сайтом с того же аккаунта, который, по сути, является визитной карточкой, т.е. сайт простой и в поисковиках особо не продвигался. И что же? За год 69015 запросов из 224000 (круглая цифра оказалась) — это запросы к странице авторизации. Точно знаю, что сайт практически не меняли, т.е. добропорядочных заходов в админку там, может, 200-300 от силы. 30% — брутфорс! Хочется обратиться к Карлу

И уж, чтобы совсем понятно стало, к чему я веду, приведу цифру по сайту с того же аккаунта, который сделан не на Wordpress. 572 раза за год на нем искали файл /wp-login.php… Т.е. больше, чем раз в сутки.

Цена вопроса


На Марсе случайно забыли астронавта. Чтобы срочно доставить ему еду, обратились к китайцам, потому что у них была готова ракета. Узнаёте? А чтобы быстро просчитать траекторию полета спасательного корабля, не хватало вычислительных ресурсов, поэтому обратились… ко всем хакерам мира, потому что у них была готова распределенная вычислительная сеть на базе Wordpress. Чем не сюжет?

Если кратко и упрощенно описать технологию работы такой сети ботнет, то выглядит это примерно так:
  • Составляется база данных доменных имен.
  • Эти имена проверяются на наличие Wordpress.
  • Там, где обнаружен Wordpress, производится подбор пароля.
  • Там, где пароль подобран, размещаются shell-файлы.
  • С помощью этих shell-файлов выполняются определенные задачи (рассылка спама и т.п.).
  • С помощью этих shell-файлов подбирается пароль к другим сайтам.
  • И, в случае удачи, на этих сайтах размещаются аналогичные shell-файлы.
  • И так далее.

Успешности этой незамысловатой технологии способствуют с одной стороны разработчики Wordpress, а с другой — его пользователи, которые используют систему авторизации как есть, т.е. используют логин «admin» и страницу wp-login.php, которые устанавливаются по умолчанию. В общем и целом простота и удобство в установке оборачиваются печальными последствиями не только для пользователей cms, но и для всей сети в целом. Пользователи cms так или иначе теряют деньги, либо упуская посетителей, которые уходят из-за невозможности загрузить страницу при атаках на сайт, либо испытывая проблемы с нерадивыми администраторами хостинга, которые предлагают перейти на более производительный сервер, либо привлекая специалистов для очистки сайта от вредоносного кода. Все остальные вынуждены перелопачивать мусорный трафик — следствия работы ботнета, а также мириться со случаями, когда сервер забирает ваши ресурсы, чтобы справится с нагрузкой на чужой аккаунт.

Две цитаты, чтобы подтвердить последнее утверждение:
Если же письма о нагрузке приходят регулярно, либо если высокая нагрузка длится несколько часов в течение дня, необходимо искать причину повышенной нагрузки. Это может быть либо неоптимизированный код скриптов, либо просто высокая посещаемость. Выходом из ситуации может быть либо оптимизация сайта, либо переход на другой тариф, рассчитанный на более высокую нагрузку.
В случае, если аккаунт многократно превышает допустимый уровень нагрузки или превышает его во много раз, затрудняя работу других сайтов, системные администраторы могут приостановить обслуживание аккаунта. Об этом высылается дополнительное уведомление.
Как уже отмечалось, сама идея виртуального хостинга заключается в том, что на одном сервере многие аккаунты делят общие ресурсы. В то же время остаётся замечательная возможность в каждый момент времени выдать неиспользуемые ресурсы любому процессу, который в них нуждается. Если бы ресурсы были ограничены, в момент пиковых нагрузок сайты работали бы значительно медленнее, потому что не имели бы прав использовать свободные в настоящий момент возможности сервера.
Более того, ограничивая ресурсы, необходимо было бы их гарантировать, что привело бы, одновременно с сокращением количества пользователей на сервере, к повышению стоимости одного аккаунта. И ещё более того, операционные системы не рассчитаны на ограничение свободных ресурсов подобным образом. Наоборот, они рассчитаны как раз на как можно более эффективное и честное распределение имеющихся ресурсов по потребностям выполняемых задач.
Это выдержки из статьи «Нагрузка на аккаунт виртуального хостинга» с сайта одной из компаний, предоставляющей соответствующие услуги. Не даю ссылку, потому что ситуация стандартная. И даже, несмотря на то, что на хостинге моего заказчика, а цитата не оттуда, в качестве одной из возможных причин нагрузки указаны DoS-атаки и действия ботов, все равно его склонили к переходу на более производительный сервер и более высокий тариф, вместо поиска и устранения настоящей причины нагрузки. Т.е. спасение утопающих все равно производится за деньги самих утопающих.

Мораль. Мы все сталкиваемся с последствиями популярности cms Wordpress, даже если ею не пользуемся. Каждый уважающий себя бот все равно придет к вам и убедится в том, что у вас нет Wordpress. А уж если есть… Тогда рост посещаемости вашего сайта обеспечен. И не тешьте себя иллюзией, что сайт никому не нужен. Он очень нужен ботнету. Ботнет может не оценить дизайн или текст. Он ценит сайт на Wordpress как таковой. Как ресурс для своей деятельности, как дом, как стартовую площадку для отправки следующих ботов-поселенцев.
И — да. Он очень вежливый. Этот ботнет… Он будет стучаться, пока не сломает дверь.

Что делать? Или тест на понимание.


Любая статья неполноценна без выводов. В качестве выводов я предлагаю небольшой тест. Какой вопрос возник у вас после прочтения?

Как мне избежать взлома моего Wordpress? 10%


Не использовать логин «admin» по умолчанию и использовать сложный пароль. Но если вы остановились на этом вопросе, значит мне удалось донести мысль не более, чем на 10%.

Как мне избавиться от попыток взлома моего Wordpress? 60%


Сделать так, чтобы на запрос к файлу wp-login.php ваш сервер отдавал ответ 404. Это хороший вопрос. Так вы снизите нагрузку. Но это порядка 60% от того, что я хотел сказать.

Что должны предпринять разработчики Wordpress? 100%


Не определять в системе файл wp-login.php, как страницу авторизации по-умолчанию. И вообще, убрать для этого случая всякие умолчания. Предлагать выбрать адрес страницы входа в административную панель при установке системы. Для этого, как вариант, заменить в своей системе весь хардкод с обращениями к странице авторизации wp-login.php на переменную и устанавливать ее значение в конфигурационном файле. Если вы пришли к этому вопросу, то я смог донести свою мысль практически на 100%. Но я бы пошел дальше…

Закон разгрузки сети.


Я бы пошел дальше и предложил закон.

Закон разгрузки сети: Ни одна система не должна устанавливать точку входа к администрированию себя по умолчанию.

Если разработчики будут придерживаться этого закона, то всем прибудет счастье. Пользователям, сайтам, системам, роутерам, всей сети. От 1% до 30% по моим подсчетам. Финальный смайл.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.