Взломали сайт на WordPress: как понять и что делать | White Eagles & Co.

Взломали сайт на WordPress: как понять, что вас взломали, и что делать сразу

Обычно всё начинается со звонка клиента: «Зашёл на ваш сайт и оказался на казино». Вы открываете сайт на компьютере, и всё в порядке. Не в порядке. Вредоносный код на взломанных сайтах WordPress часто настроен так, чтобы не показываться вошедшему администратору и тому, кто набрал адрес напрямую, и перекидывать только людей из поиска и с телефона.

Ниже порядок действий на первый час, последовательность чистки, которая действительно работает, и честный ответ на вопрос, когда латать сайт уже бессмысленно.

Сайт не работает или тормозит?

WordPress и самописные сайты. Большинство поломок решаю в день обращения.

Признаки: как понять, что сайт взломан

Достаточно одного, чтобы действовать сразу:

  • Переадресация на чужой сайт, особенно с телефона или после клика в результатах Google. Проверьте с телефона через мобильный интернет, а не с компьютера, где вы вошли в админку.
  • Предупреждение от Google. Под результатом поиска появляется пометка, что сайт может быть взломан, или Chrome показывает красный экран с предупреждением.
  • Страницы, которых вы не создавали. Наберите в поиске site:вашдомен.sk. Если видите сотни страниц на японском, с лекарствами или казино, это так называемый японский спам, один из самых распространённых взломов.
  • Незнакомый администратор в списке пользователей WordPress.
  • Хостинг заблокировал аккаунт или пишет, что с вашего сервера уходит спам.
  • Search Console, раздел «Безопасность и меры, принятые вручную»: если там есть сообщение о проблеме безопасности, Google взлом уже подтвердил.

Первый час: что делать и чего не делать

Делайте:

  1. Копию текущего состояния файлов и базы данных, до любых изменений. Это улика, по которой ищут, откуда пришёл взломщик. Удалив всё, вы уничтожите след.
  2. Смените все пароли: хостинг, FTP или SFTP, база данных, все администраторы WordPress и почта, на которую приходит восстановление пароля.
  3. Удалите незнакомых администраторов и проверьте права остальных учётных записей.
  4. Если сайт отправляет посетителей на мошеннические страницы, закройте его страницей техобслуживания. Вы защищаете клиентов и имя фирмы. День без сайта дешевле недели, когда вы отправляете людей к мошенникам.
  5. Напишите хостингу. У них обычно есть журналы доступа, по которым видно, когда и откуда был взлом.
  6. Если на сайте формы или магазин, выясните, мог ли взломщик добраться до персональных данных. При риске для людей действует обязанность сообщить в течение 72 часов, подробнее в статье GDPR для маленькой фирмы.

Не делайте:

  • Не восстанавливайте вслепую последнюю резервную копию в надежде, что вопрос закрыт. В копии уже может сидеть лазейка, а дыра, через которую зашли, остаётся открытой.
  • Не ставьте три плагина безопасности сразу. Добавите чужой код и чувство защищённости, дыру не закроете.
  • Не ждите, что само пройдёт. Google за несколько дней уберёт взломанный сайт из выдачи и перестанет показывать на него рекламу.

Как взломщик попал внутрь

На WordPress это почти всегда одни и те же пути:

  • Необновлённый плагин или тема с известной уязвимостью. Автор выпускает исправление, уязвимость становится публичной, и автоматические скрипты в ту же неделю обходят интернет в поисках сайтов, которые не обновились.
  • Пиратская «nulled» тема или плагин. Платная тема бесплатно с файлообменника уже содержит лазейку внутри. Тут не поможет даже обновление.
  • Заброшенный плагин, который автор перестал развивать. Уязвимость в нём больше никто не исправит.
  • Слабый или повторяющийся пароль без двухфакторной проверки.
  • Другой сайт на том же хостинговом аккаунте, например забытая тестовая копия old.вашдомен.sk. Взломщик заходит через неё и получает доступ ко всему рядом.

Отсюда главное правило: чистка без поиска дыры бессмысленна. Сайт останется чистым до следующего прохода робота.

Чистка в правильном порядке

Порядок важен, потому что вредоносный код восстанавливается из мест, о которых при быстрой чистке забывают:

  1. Ядро WordPress сверьте с официальной версией. Команда wp core verify-checksums через WP-CLI покажет каждый изменённый файл. Надёжнее всего переустановить ядро целиком.
  2. Плагины и темы замените чистыми копиями из официальных источников. Неиспользуемые удалите, пиратские без обсуждения.
  3. Папка wp-content/uploads: в ней не должно быть ни одного PHP-файла. Если он там есть, он чужой.
  4. Файлы wp-config.php, .htaccess и папка mu-plugins: сюда переадресации и лазейки кладут охотнее всего.
  5. База данных: таблица настроек (адрес сайта, список активных плагинов), пользователи, вставленные скрипты в тексте записей и запланированные задачи.
  6. Новые ключи безопасности в wp-config.php. Они разлогинят всех, в том числе взломщика с украденной сессией.
  7. Обновления, двухфакторная проверка и ограничение попыток входа.
  8. Search Console: в разделе «Безопасность и меры, принятые вручную» запросите повторную проверку. Страницы, созданные взломщиком, должны отдавать 404 или 410, и отправьте sitemap заново.

Как распознать другие поломки, не связанные со взломом, разбираю в статье ремонт сайта на WordPress.

Хотите узнать, что тормозит ваш сайт?

Пройду по нему так, как его видит Google, и пришлю конкретный список за 3 рабочих дня.

Во что обходится, если ничего не делать

Взлом не техническая мелочь, которая подождёт до следующего месяца:

  • Трафик из Google падает, пока под результатом висит предупреждение. А снимут его только после повторной проверки.
  • Реклама останавливается. Google Ads не показывает объявления, ведущие на взломанные сайты, и вы платите за кампанию, которая не крутится.
  • Письма уходят в спам. Если с сервера рассылался спам, домен попадает в чёрные списки, а вместе с ним ваши счета и предложения.
  • Доверие. Клиент, которого вы отправили на мошеннический сайт, не вернётся.

Когда уже не чистить, а строить сайт заново

Скажу прямо: WordPress с плагинами от двадцати разных авторов требует постоянного обслуживания, и взлом это счёт за пропущенное обслуживание. Разовый взлом сайта, за которым следят, чистить стоит. Латать перестаёт иметь смысл, когда:

  • это второй взлом за год;
  • сайт стоит на пиратской теме или на конструкторе страниц с тридцатью плагинами, половину из которых уже никто не развивает;
  • плагины требуют старую версию PHP, и при обновлении сайт разваливается;
  • никто не будет обновлять сайт каждый месяц, а значит, через год всё повторится.

Тогда дешевле построить сайт заново на современном стеке. Например, сайт, который заранее собирается через Next.js, не имеет страницы входа на публичном адресе, не имеет базы данных, в которую можно что-то записать, и не имеет плагинов от чужих авторов. Невзламываемых сайтов не бывает, но поверхность атаки в разы меньше, чем у обычного WordPress. Так работает и этот сайт: без базы данных и без админки на публичном адресе, сервер отвечает примерно за 0,09 секунды.

Сравнение подходов в статье WordPress или самописный сайт, реальные цены нового сайта в статье сколько стоит сайт в Словакии.

Как не допустить взлома, пока сайт работает

Если заменять сайт пока не хотите, минимум понятен: обновления раз в месяц, резервные копии вне сервера с проверенным восстановлением, двухфакторная проверка для всех администраторов и удаление всего неиспользуемого. Что именно входит в обслуживание и сколько оно стоит, разбираю в статье поддержка и доработка сайта на WordPress.

Если нужна помощь

Чищу взломанные сайты, включая поиск и закрытие дыры, через которую зашёл взломщик, и оформляю повторную проверку в Search Console. Часовая ставка 35€, диагностику обычно делаю в день обращения, а оценку называю до начала работы. Хостинг за вас не администрирую и юридических консультаций по GDPR не даю. Моя часть это сайт, его чистка и защита.

Новые сайты делаю на современном стеке, без плагинов и без публичной админки: создание сайтов в Братиславе. Живу в Словакии больше десяти лет, запустил 12+ сайтов для словацких компаний, работаю как словацкое s.r.o. и выставляю фактуру, которую можно провести в расходы. Общаемся по-русски.

Подробности смотрите на странице услуги «Исправление ошибок на сайте и в WordPress». Если сначала хотите понять, что с сайтом: бесплатный аудит, результат за 3 рабочих дня.

Нужен новый сайт?

Корпоративный сайт, интернет-магазин или система бронирования. Большинство проектов сдаю за 15 рабочих дней.