Прошлая неделя была длинной. Если у вас сайт на WordPress и вы почувствовали лёгкий укол паники, когда пошли новости про безопасность — нет, вам не показалось. Наружу вылезла неприятная дыра в ядре WordPress, её тут же начали использовать, и куча сайтов малого бизнеса попала под раздачу.
У нас самих словили два сайта на обслуживании. Из примерно 80. Дойдём и до этого, потому что, честно говоря, это нас кое-чему научило.
Смотрите, вот вся история — что реально сломалось, почему вся эта отмазка «да оно само обновляется» спасла не всех, и что вам стоит сделать, чтобы ваш сайт не оказался следующим, который чистят в 11 вечера.
Что на самом деле произошло
Если коротко: баг в ядре WordPress позволял злоумышленнику делать то, что ему делать не полагалось. Без входа в систему. Вот это и есть та часть, которая пугает — пароль не нужен, админский аккаунт не нужен, вообще ничего. Уязвимый код принимал данные, которые должен был отклонить, и этой дыры хватило.
Простыми словами? Неавторизованный злоумышленник получал ногу в дверях. А дальше идёт обычный неприятный список — спам, скрытые редиректы на мутные аптечные и казиношные страницы, файлы-бэкдоры, спрятанные в вашей папке uploads, чтобы можно было вернуться даже после того, как вам кажется, что вы всё почистили.
Фикс вышел в следующей версии довольно быстро, надо отдать должное. Команда безопасности WordPress сработала шустро. Но «фикс существует» и «ваш сайт этот фикс получил» — это две очень разные вещи. И именно в этом зазоре и жил почти весь ущерб.
Как быстро это стали использовать
Быстро. Неприятно быстро.
Вот этого люди не понимают. Когда дыра в ядре становится публичной, технические детали публикуют, чтобы админы разобрались и защитились. Вполне разумно. Только вот плохие парни читают те же самые описания. И в наши дни они уже не делают это руками.
Автоматические сканеры ползают по всему интернету и ищут сайты на уязвимой версии. Они определяют ваш WordPress, проверяют номер версии, и если совпало — пробуют эксплойт. Ни одного человека в процессе. Мы видели попытки атаки в логах в течение нескольких часов после публикации деталей. Не дней. Часов.
Вот такая теперь реальность. Зазор между «уязвимость объявили» и «боты долбят ваш сайт» раньше был пару дней. Теперь это по сути один день.
Но WordPress же сам обновляется. Почему тогда кого-то взломали?
Хороший вопрос, и именно на нём все спотыкаются.
Да, WordPress умеет сам ставить обновления безопасности. Это реально полезная штука. Но это не та гарантия, которую люди себе представляют, и вот почему она тихо подводит чаще, чем кажется:
- Его выключили. Какой-то плагин, настройка хостинга, или разработчик, который отключил это три года назад во время проекта и забыл. Автообновления вырубают постоянно, и никто не замечает — потому что когда они выключены, ничего не происходит. В этом и вся проблема. Тишина выглядит нормально ровно до того момента, пока не перестаёт.
- Обновление попробовало и упало. Права на файлы кривые. Диск забит. Кэширование заблокировало запись. Апдейт запустился, подавился на середине и откатился — и если никто реально не следит, вы бы и не узнали, что сайт всё ещё сидит на уязвимой версии.
- Сайт слишком сильно отстал. WordPress не перепрыгнет вас автоматически через несколько крупных версий. Сайты, застрявшие на куда более старых релизах — на ветке 6.9.x, некоторые вообще на 6.8.x — просто не получают эти патчи. Они полностью вне зоны комфорта автообновлений. (Мы уже писали про то, что будет, если никогда не обновлять WordPress — если коротко, это ровно тот самый сценарий.)
Так что «оно само обновляется» — это правда, вроде как, в хороший день, если ничего не сломано. Многовато «если», чтобы ставить на это свой бизнес.
Как взломали нас (и да, мы про это рассказываем)
Два сайта. Из примерно 80 на нашем обслуживании. Оба словили до того, как патч до них дошёл.
Что пошло не так? На обоих сайтах автообновление тихо упало — на одном проблема с правами на файлы, оставшаяся с переезда на другой сервер несколько месяцев назад, на другом упрямый кэш, который отдавал старые файлы и не давал обновлению завершиться. Апдейт думал, что работает. Он не доводил дело до конца. Классика.
Но дело в том, что — раз это были сайты на обслуживании, мы за ними следили. Поймали оба в одном и том же окне, почистили, пропатчили как надо, и за пару часов подняли обратно. Не за дни. За часы. Клиент на одном из них вообще ничего не заметил, пока мы сами ему потом не сказали.
Вот эту разницу и делает мониторинг. Уязвимость всё равно их достала — идеальных систем не бывает, и кто вам говорит, что его setup на 100% пуленепробиваемый, тот вам что-то продаёт. Но словить взлом и вернуться в онлайн до обеда — это совсем другая история, чем словить взлом и обнаружить это через две недели, когда Google пометит ваш сайт как опасный.
А потом начал звонить телефон. За ту же неделю мы получили ещё семь обращений от бизнесов, которые не были ни на каком обслуживании. Некоторые сидели на реально старых версиях — пара где-то в районе 6.9.0-6.9.4, кто-то ещё дальше, на 6.8.0-6.8.5. Эти заняли больше времени. Когда сайт забросили, чистка — это не просто «удали плохой файл», это охота за каждым бэкдором, проверка базы, сброс паролей, уверенность в том, что ничего не прячется, чтобы заразить заново. Мы всё разрулили за несколько дней, но это была пахота. Куда больше нервов, чем нужно.
Что вас реально защищает
Не надежда. Не везение. Вот настоящий список:
- Знайте свою версию — реально знайте. Не думайте, что автообновления включены. Зайдите, проверьте, или пусть кто-то проверит за вас. «Ну оно вроде само обновляется» — это не стратегия безопасности.
- Настоящие бэкапы, которые лежат в другом месте. Бэкап на том же сервере, который взломали, — это не бэкап, это заложник. Вам нужны копии в другом месте, которые делаются регулярно и восстановление которых вы хотя бы раз реально протестировали.
- Кто-то следит. Мониторинг — это вся игра целиком. Те два сайта, которые мы поймали рано? Поймали, потому что кто-то смотрел. Те семь, что пришли позже? За ними не смотрел никто.
- Патчите быстро, не тяните. Когда выходит обновление безопасности, часы уже пошли. В тот же день, а не «займусь этим в следующем месяце».
- Не сидите на древних версиях. Если вы отстали на несколько крупных версий, вы теряете не только функции — вы теряете каждый фикс безопасности с тех пор. Это стопка открытых дверей.
Почти всё это несложно. Просто это легко игнорировать, потому что ничего плохого не происходит… пока вдруг резко не начинает. Вот это и есть ловушка.
Это будет повторяться?
Да. Почти наверняка. И скорее всего чаще.
Не потому, что WordPress плохой — на нём крутится огромный кусок интернета, и команда безопасности реально хорошая. Просто любой настолько распространённый софт — это гигантская мишень. Найди одну дыру — и у тебя миллионы сайтов, на которых можно её попробовать. Если ты преступник, математика тут неотразимая.
А ИИ подливает бензина в огонь. Злоумышленники теперь используют ИИ, чтобы читать описания уязвимостей, писать рабочий код эксплойта и сканировать весь интернет быстрее, чем когда-либо. Тот порог навыков, который раньше держал случайных атакующих на расстоянии? Пропал. Тот, кто пару лет назад не справился бы, теперь наводит инструмент на задачу и даёт ему работать. Тот однодневный зазор между публикацией и атакой становится только короче.
Так что нет, это был не разовый случай. Это новая норма. Вопрос не в том, придёт ли следующая. А в том, будут ли следить за вашим сайтом, когда она придёт.
Так что же делать?
Если у вас уже кто-то ведёт сайт — отлично, спросите прямо: автообновления точно работают, и следят ли за нами? Пусть покажут, не соглашайтесь просто на «да всё нормально».
Если за вашим сайтом сейчас никто не следит — вот тут и дыра. И эта дыра остаётся невидимой ровно до того дня, когда она вам обойдётся в копеечку. Наша услуга обслуживания WordPress существует ровно для этого — мы держим версии пропатченными, делаем настоящие бэкапы в другое место и реально следим за проблемами, чтобы такая плохая неделя, как эта, превратилась в двухчасовой фикс, а не в двухнедельный кошмар.
А если вы читаете это потому, что ваш сайт уже ведёт себя странно — случайные редиректы, предупреждения Google, штуки, которые вы туда не ставили — не ждите в надежде, что само пройдёт. Не пройдёт. Если не уверены, что искать, вот тут про признаки того, что ваш WordPress взломали. А если дело уже совсем плохо, мы делаем чистку и восстановление взломанных сайтов — чем раньше мы посмотрим, тем меньше придётся распутывать.
Смотрите, взлом — это не всегда знак того, что вы сделали какую-то глупость. Иногда атака просто движется быстрее, чем патч. Но словить взлом и дать ему две недели оставаться незамеченным? Вот это уже предотвратимо. Каждый раз.