Почему именно WordPress атакуют чаще всего
WordPress работает на значительной части всех сайтов в интернете — это не секрет, и атакующие им активно пользуются: выгоднее один раз написать автоматический сканер под массовую CMS с известной структурой файлов и путей, чем разбираться с каждым самописным сайтом вручную. Боты круглосуточно и без участия человека перебирают известные версии плагинов и ядра в поисках уязвимостей, которые давно закрыты в новых релизах, но остались открытыми на тысячах заброшенных или редко обновляемых сайтов.
Именно поэтому небольшой корпоративный сайт или лендинг компании атакуют не реже, а иногда и чаще, чем крупный ресурс: у атакующего нет цели именно вас — есть цель найти любой сайт с открытой дырой, а дальше использовать его как площадку для рассылки спама, майнинга, фишинговых страниц или как звено в цепочке атак на другие ресурсы.
Четыре главные дыры
| Дыра | Как закрыть |
|---|---|
| Устаревшие плагины и ядро | обновлять регулярно, не откладывая; удалять неиспользуемые плагины совсем, а не просто деактивировать |
| Слабые или переиспользуемые пароли | сложный уникальный пароль + двухфакторная аутентификация на вход в админку |
| Нулёные (пиратские) темы и плагины | ставить только из официального каталога или у проверенного продавца с лицензией |
| Заброшенный сайт без присмотра | регулярная проверка хотя бы раз в один-два месяца, даже если сайт «не трогают» |
Эти четыре пункта закрывают подавляющее большинство типовых взломов сайтов на WordPress. Они не требуют глубоких технических знаний — по сути, это дисциплина, а не разовое техническое решение. Как обычно выглядит атака через устаревший движок изнутри — в статье взлом через устаревший CMS: там разобран типичный сценарий от обнаружения дыры сканером до закрепления доступа атакующего на сервере.
Нулёные плагины и темы — отдельная категория риска
Скачанная «бесплатно» платная тема или плагин на пиратских ресурсах часто содержит встроенный бэкдор — скрытый доступ, который работает независимо от того, обновляете вы сайт или нет, и насколько сложный у вас пароль. Это принципиально другая угроза, чем просто устаревшая версия: код с самого начала написан так, чтобы дать доступ постороннему. Экономия на лицензии в пару тысяч рублей оборачивается взломом и восстановлением, которое стоит дороже — не говоря уже о потере доверия клиентов, если через сайт начали рассылать спам или показывать вредоносную рекламу. Подробнее о механике такой угрозы — в статье чем опасны нулёные плагины.
Что проверить прямо сейчас
- •Версия ядра WordPress и всех установленных плагинов — обновлены ли до актуальных, есть ли доступные обновления,
- •Список плагинов и тем — удалить те, что реально не используются, а не просто отключить,
- •Источник тем и плагинов — только официальный каталог WordPress.org или проверенный продавец с лицензией,
- •Пароль администратора — уникальный, сложный, желательно с двухфакторной аутентификацией,
- •Список пользователей с доступом к админке — нет ли лишних или забытых аккаунтов,
- •Дата последнего бэкапа — и, что важнее, работает ли реальное восстановление из него.
Этот список стоит проходить не разово, а периодически — версии плагинов устаревают снова через несколько месяцев, и без регулярной проверки дыра открывается заново тем же способом, каким закрывалась.
Как понять, что сайт уже скомпрометирован
Иногда взлом уже произошёл, а внешне сайт выглядит нормально: он открывается, работает как обычно, формы отправляются — а в фоне он рассылает спам, ворует данные из форм или отдаёт вредоносный код только поисковым ботам, а не обычным посетителям. Такая избирательность делает взлом особенно незаметным для владельца. Список типичных косвенных признаков собран в статье признаки взлома сайта — там же описано, что делать по шагам, если хотя бы часть признаков совпала. Если сомневаетесь — лучше проверить, чем ждать, пока проблему заметят клиенты или поисковик и понизят сайт в выдаче.
Регулярная проверка вместо разовой чистки
Разовая чистка сайта после взлома снимает симптом, но не защищает от повтора, если точка входа осталась прежней — тот же устаревший плагин, тот же слабый пароль, та же нулёная тема. Атакующие нередко возвращаются на уже скомпрометированные сайты именно потому, что знают: путь внутрь никуда не делся. Правильный подход — регулярный внешний аудит сервера и CMS, который ловит устаревшие компоненты и подозрительные изменения файлов до того, как ими воспользовались, а не после. Такой аудит по SSH, без доступа к содержимому сайта и без остановки его работы, делает ServerShield: отчёт с находками приходит в Pulse, и по нему видно, что закрывать в первую очередь.
Частые вопросы
Нужен ли платный плагин безопасности для WordPress?
Сам по себе — нет. Плагин безопасности полезен как дополнительный слой: файрвол на уровне приложения, мониторинг изменений файлов, блокировка перебора паролей. Но он не заменяет обновления и бэкапы. Заброшенный сайт с самым дорогим плагином всё равно уязвим, если ядро и плагины не обновляются, а пароль от админки простой.
Насколько опасны нулёные (пиратские) темы и плагины?
Опасны почти всегда, и опаснее, чем кажется на первый взгляд. В нулёную версию нередко вшивают бэкдор — скрытый вход для атакующего, который работает независимо от того, обновляете вы сайт или нет и насколько сложный у вас пароль. Экономия на лицензии в несколько тысяч рублей регулярно оборачивается взломом, восстановлением и репутационными потерями, которые стоят на порядок дороже.
Достаточно ли сложного пароля от админки?
Это база, но не всё. Сложный пароль защищает от простого перебора, но не от фишинга, не от утечки в чужом сервисе, если пароль где-то повторяется, и не от кейлоггера на заражённом устройстве администратора. Вместе со сложным уникальным паролем нужна двухфакторная аутентификация — тогда украденный или подобранный пароль сам по себе доступ не даёт.
Что делать с сайтом, который давно не трогали?
Заброшенный сайт — частая цель именно потому, что за ним никто не следит: ни разработчик, ни владелец. Сначала стоит обновить ядро, тему и все плагины по одному, с проверкой работоспособности после каждого шага, удалить неиспользуемые расширения и темы целиком, сменить все пароли доступа, а затем поставить сайт на регулярный контроль, чтобы ситуация не повторилась.