Новости >Взломали сайт, что делать и как вернуть его в поиск

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

Автор новости:
Листай дальше

Взломали сайт, что делать первым? Не удаляйте файлы подряд и не восстанавливайте первый попавшийся бэкап. Сначала смените пароли от почты, хостинга, FTP, SSH, базы данных и админки, ограничьте доступ к сайту и сохраните копию его текущего состояния. Потом найдите вредоносный код и закройте уязвимость, через которую зашёл взломщик. В конце запросите перепроверку в Яндекс Вебмастере и Google Search Console, если поисковики успели пометить сайт как опасный.

Порядок здесь важнее скорости. Владелец в спешке стирает подозрительные файлы, сайт вроде бы оживает, а через неделю редирект на чужой ресурс возвращается. Злоумышленник оставил себе запасной вход, а причину взлома никто так и не нашёл.

Как понять, что сайт взломали?

Взлом редко выглядит как чёрный экран с надписью от хакера. Чаще сайт внешне работает, но часть посетителей с телефонов перебрасывает на чужие сайты, в поиске появляются страницы с казино и таблетками, а браузер или Яндекс предупреждает, что сайт может угрожать безопасности. Иногда первым о проблеме сообщает хостинг, когда присылает письмо о вредоносных файлах или спам-рассылке с вашего аккаунта.

Проверьте сайт, если заметили хотя бы один признак из списка ниже.

  • Посетителей перенаправляет на чужие сайты, причём часто только с мобильных или только при переходе из поиска.
  • По запросу site:ваш-домен в поиске видны страницы, которых вы не создавали, с чужими товарами, ставками или иероглифами в заголовках.
  • В выдаче Яндекса рядом с сайтом появилась пометка об угрозе, а Chrome или Яндекс Браузер показывают красный экран с предупреждением.
  • Хостинг прислал письмо о вредоносном коде или рассылке спама либо заблокировал аккаунт.
  • В админке появились пользователи с правами администратора, которых никто не заводил.
  • Трафик из поиска резко упал, а в Вебмастере растёт число незнакомых страниц в индексе.

Редирект только для части посетителей делают намеренно. Владелец открывает сайт из закладки и ничего странного не видит, поэтому заражение может жить месяцами. Проверять лучше с телефона через мобильный интернет, заходя на сайт из поисковой выдачи.

Взломали сайт, что делать в первый час?

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

  1. Смените пароль от почты, к которой привязаны хостинг и домен, а потом от панели хостинга, FTP и SSH, базы данных и админки сайта. Новый пароль базы данных сразу впишите в конфигурацию сайта (в WordPress это wp-config.php, в 1С-Битрикс .settings.php и dbconn.php), иначе сайт перестанет открываться. Если есть подозрение, что заражён ваш компьютер, меняйте пароли с другого устройства.
  2. Удалите лишних администраторов в CMS и проверьте, у кого ещё есть доступ к хостингу. Бывшие подрядчики и фрилансеры нередко годами остаются в списках.
  3. Ограничьте доступ к сайту. Можно закрыть его заглушкой на время работ, пустить в админку только со своего IP или хотя бы отключить формы и оплату, чтобы не пострадали посетители.
  4. Напишите в поддержку хостинга. Там могут подсказать, какие файлы нашёл их антивирус, выдать журналы доступа и резервные копии за прошлые дни.
  5. Скачайте полную копию файлов и базы данных в текущем состоянии и подпишите её как заражённую. Она нужна для разбора, восстанавливать сайт из неё нельзя.

Почта стоит в списке первой по понятной причине. Если злоумышленник читает ящик, на который зарегистрирован хостинг, он сбросит любой ваш новый пароль через форму восстановления. Для WordPress после смены паролей обновляют ещё и секретные ключи в wp-config.php. Тогда все, кто сейчас залогинен в админке, включая взломщика, потеряют свои сессии.

Как найти вредоносный код на сайте?

Вредоносный код ищут сравнением. Файлы сайта сверяют с чистым дистрибутивом той же версии CMS и плагинов, смотрят, какие файлы менялись в последние дни, и отдельно проверяют базу данных. Антивирус хостинга находит очевидные вещи, но хитро спрятанный код сканеры пропускают. Поэтому без ручного просмотра подозрительных мест обычно не обходится, особенно если сайт заражён давно и слоями.

Файлы, которые менялись без вас

По SSH удобно вывести список PHP-файлов, изменённых за последнюю неделю, командой вроде find . -name "*.php" -mtime -7. Дата изменения подсказывает, где искать, хотя опытный взломщик умеет её подделывать. Отдельно смотрят папку загрузок. В WordPress это wp-content/uploads, и PHP-файлов там в норме быть не должно.

Веб-шелл, то есть небольшой скрипт для управления сервером через браузер, обычно прячут под именем, похожим на системный файл. Выдают его функции eval, base64_decode, gzinflate и длинные строки из случайных символов. Эти функции встречаются и в честных плагинах, так что каждую находку сравнивают с оригиналом. Ещё проверяют .htaccess в корне и во вложенных папках, туда любят вписывать правила перенаправления на чужие домены.

База данных

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

Ядро и плагины WordPress и 1С-Битрикс

В WordPress файлы ядра проверяет команда wp core verify-checksums из WP-CLI, она сверяет их с официальными контрольными суммами. Для плагинов из официального каталога есть похожая команда wp plugin verify-checksums. Ядро и плагины надёжнее всего переустановить начисто той же версии. Из старых файлов оставляют wp-config.php, проверенную папку загрузок и тему, но каждый из них сначала просматривают: в wp-config.php тоже часто дописывают чужой код.

Плагины и темы, скачанные с «бесплатных» сайтов вместо официального магазина, часто приходят с закладкой внутри. Их удаляют без сожаления и ставят официальные версии. В 1С-Битрикс для проверки есть модуль «Проактивная защита» со сканером безопасности и контролем целостности. Контроль целостности сравнивает файлы со снимком, который сделали заранее, поэтому без снимка до заражения он мало помогает. Собственный код сайта, шаблоны и доработки просматривают вручную.

Где искать заражение Что его выдаёт Как проверить
Файлы ядра CMS Системные файлы отличаются от оригинала wp core verify-checksums; в Битрикс контроль целостности, если есть снимок до взлома
Папка загрузок Среди картинок лежат PHP-файлы Поиск файлов по расширению .php
Файлы .htaccess Правила перенаправляют посетителей на чужие домены Ручной просмотр в корне и во вложенных папках
База данных Чужие скрипты в записях и незнакомые администраторы Просмотр таблиц в phpMyAdmin
Планировщик задач Задания cron заново скачивают вирус Список заданий cron в панели хостинга
Плагины и темы Взломанные «бесплатные» версии и заброшенные расширения Сравнение с официальным каталогом

Можно ли просто восстановить сайт из бэкапа?

Восстановить сайт из резервной копии можно, и часто так получается быстрее всего. Копия при этом должна быть сделана до заражения, а уязвимость, через которую зашёл взломщик, всё равно придётся закрыть. Иначе сайт взломают тем же способом, ведь в копии остался тот же старый плагин или та же уязвимая версия CMS. Восстановление убирает последствия взлома, причина никуда не девается.

Главная ловушка в том, что дата заражения почти никогда не совпадает с датой, когда его заметили. Вредоносный код мог спокойно лежать на сайте несколько недель, а хостинг хранит копии ограниченное время. Бывает, что все доступные бэкапы к моменту обнаружения уже заражены.

Поэтому восстановленную копию проверяют теми же способами, что и живой сайт, и только потом пускают на неё посетителей. Заказы, заявки и материалы, которые появились после даты копии, переносят вручную. Сразу после восстановления обновляют CMS, плагины и тему и ещё раз меняют пароли.

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

Как снять пометку в Яндекс Вебмастере и Google Search Console?

Пометку об угрозе снимают только после полной чистки. В Яндекс Вебмастере откройте раздел «Диагностика», затем «Безопасность и нарушения», и посмотрите, что именно нашёл робот и на каких страницах. Когда код удалён, там же запрашивают перепроверку. В Google Search Console похожий отчёт называется «Проблемы безопасности», и после исправления из него отправляют запрос на проверку.

Сроков перепроверки поисковики не обещают. Если робот снова найдёт заражение, пометка останется и всё придётся повторить. Поэтому запрос отправляют, когда уверены в чистоте всего сайта, включая мобильную версию и страницы, которые показывались только посетителям из поиска.

Спам-страницы после чистки должны отдавать ответ 404 или 410, тогда они постепенно уйдут из индекса. Ускорить это помогут инструмент удаления страниц из поиска в Вебмастере и раздел «Удаления» в Search Console. Заодно проверьте список владельцев сайта в обоих сервисах. Взломщики иногда подтверждают права на чужой сайт, чтобы отправлять в индекс свои страницы.

Как защитить сайт от повторного взлома?

Повторный взлом предотвращает скучная регулярная работа. Нужны своевременные обновления CMS, плагинов и темы, минимум расширений, двухфакторная авторизация в админке и на хостинге, аккуратные права доступа к файлам, резервные копии во внешнем хранилище и мониторинг. Ни одна мера по отдельности не спасает, но вместе они закрывают большинство типичных путей, которыми заходят автоматические сканеры уязвимостей.

  • Обновлять ядро, плагины и тему, заранее проверяя обновления на копии сайта.
  • Удалить неиспользуемые плагины и темы, даже отключённые, ведь их файлы всё равно лежат на сервере.
  • Включить двухфакторную авторизацию в админке, панели хостинга и почте.
  • Выдавать каждому подрядчику отдельный доступ и закрывать его после окончания работ.
  • Настроить права на файлы так, чтобы веб-сервер не мог переписывать системные файлы, и запретить выполнение PHP в папке загрузок.
  • Хранить резервные копии вне хостинга и держать несколько копий за разные недели.
  • Подключить мониторинг доступности и изменений файлов, а в Вебмастере включить уведомления о проблемах безопасности.

Большая часть этого списка входит в регулярную техническую поддержку. Что в неё включают для WordPress и почему именно старые плагины чаще всего становятся входом для взлома, подробно разобрано в статье про техническую поддержку сайта на WordPress.

Когда чистку сайта лучше доверить специалисту?

Специалиста зовут, когда сайт приносит заказы и каждый день с пометкой в поиске стоит заявок. Звать его стоит и тогда, когда взлом повторился после чистки или нет доступа к SSH и журналам сервера. Интернет-магазин с базой клиентов тоже лучше не чистить самому. Самостоятельная чистка без поиска точки входа часто заканчивается тем, что через несколько дней сайт заражают снова.

У Webpro чистка от вирусов входит в услугу поддержки и доработки сайтов. В неё же входят техническая поддержка, обновление CMS, доработки и интеграции с amoCRM и платёжными системами, так что после чистки сайт можно оставить на регулярном обслуживании. Студия на рынке с 2010 года, реализовала более 500 проектов и заключает с клиентами договор. При нарушении его условий клиент получает деньги обратно.

Как обсудить чистку вашего сайта?

Если сайт взломали или вы подозреваете заражение, оставьте заявку через форму на сайте webpro.studio. Расчёт стоимости занимает около 15 минут. Написать можно в Telegram @alxltvn или в WhatsApp, позвонить по телефону +7 985 558-79-34 с понедельника по пятницу с 10:00 до 18:00.

В первом сообщении назовите CMS сайта, хостинг и признаки, которые заметили. Если вы уже сохранили копию сайта в заражённом виде, упомяните об этом. По ней проще понять, откуда пришёл взлом.

Частые вопросы

Что делать, если хостинг заблокировал сайт из-за вредоносного кода?

Напишите в поддержку хостинга и попросите список файлов, которые нашёл их антивирус, и журналы доступа. Обычно после блокировки остаётся доступ к панели и файлам, чтобы владелец мог почистить сайт. После чистки хостинг просят проверить сайт повторно и снять блокировку. Спорить с блокировкой бесполезно, пока вредоносный код на месте, а сам список найденных файлов сильно упрощает поиск остального.

Почему сайт снова заразился через несколько дней после чистки?

Чаще всего причина в том, что удалили последствия и не нашли вход. Уязвимый плагин остался, пароль от FTP не сменили или взломщик спрятал запасной веб-шелл, который сканер не заметил. Ещё вирус часто возвращает задание cron, которое по расписанию скачивает его заново. Повторное заражение означает, что разбор нужно начать заново и искать точку входа по журналам сервера.

Можно ли просто удалить заражённый плагин и на этом закончить?

Удалить уязвимый плагин нужно, но этого мало. Пока он был на сайте, через него могли загрузить веб-шеллы в другие папки, создать администратора или вписать код в базу данных. Эти следы остаются и после удаления самого плагина. Поэтому после удаления всё равно проверяют файлы ядра, папку загрузок, список пользователей и записи в базе, а пароли меняют заново.

Опасно ли заходить на свой сайт, пока он заражён?

Для владельца риск есть, особенно если на сайт внедрён код, который подгружает вредоносные скрипты в браузер посетителя. Смотреть на признаки лучше с устройства, где нет сохранённых паролей от хостинга и почты, и с обновлённым браузером. Пароль администратора лучше сбросить в обход админки, через phpMyAdmin или WP-CLI, а после чистки сменить ещё раз: вредоносный код на сайте может перехватить пароль, введённый в форму входа.

Что делать, если взломщик сменил пароль от админки и войти не получается?

Доступ возвращают через хостинг. Для WordPress пароль администратора можно сбросить через phpMyAdmin или командой WP-CLI, для 1С-Битрикс тоже есть способы восстановить доступ через базу или файлы. Если взломщик сменил и пароль от панели хостинга, восстанавливайте его через поддержку хостинга с документами владельца аккаунта. После этого сразу меняют все остальные пароли и проверяют список пользователей.

Оставьте заявку на чистку сайта от вирусов или техническую поддержку через форму на сайте или в Telegram.

0 0 голоса
Рейтинг статьи
guest
0 комментариев