Сайт взломали: что делать владельцу
Порядок жёсткий, и менять его местами нельзя: убрать сайт из публичного доступа, сменить пароли, включить второй фактор. Потом понять, через что вошли, и только после этого восстанавливаться из резервной копии. Частая ошибка — начать с конца: удалить чужие файлы, увидеть, что сайт открывается, и успокоиться. Вход остаётся открытым, и через несколько дней всё повторяется.
Чем взлом отличается от обычной поломки
Поломка — это отсутствие сайта: страница не грузится, браузер называет ошибку. Взлом наоборот: сайт открывается, но ведёт себя не как ваш. Видно это со стороны, без доступа к серверу.
- В поиске по вашему адресу чужие страницы. Запрос
site:с адресом вашего сайта показывает всё, что поиск по нему знает, — и там находятся разделы, которых вы не создавали: чужие товары, казино, текст на другом языке. - Переадресация на посторонний сайт. Характерная деталь: при прямом наборе адреса всё нормально, а переход из поиска или с телефона уводит в сторону. Чужой код нарочно ставят срабатывать выборочно, чтобы владелец не замечал.
- Предупреждение браузера на весь экран о том, что сайт опасен. Это не истёкший сертификат: адрес попал в списки опасных ресурсов.
- Скачок посещаемости по незнакомым адресам. В Яндекс Метрике видно заходы на страницы, которых в структуре сайта нет.
- Письмо от поставщика хостинга о спаме с вашего аккаунта, жалобе или ограничении. Приходит оно на почту, указанную при регистрации, — ещё одна причина, чтобы аккаунт был оформлен на вас.
- Жалобы клиентов. Человек говорит, что с вашей ссылки его перебросило неизвестно куда, а вы у себя этого не видите.
Есть признак надёжнее прочих, и техники он не требует: на сайте что-то изменилось, а никто из допущенных к доступам этого не делал. Новый пользователь в админке, поменявшийся текст, появившаяся в подвале ссылка. Если же сайт просто не открывается и браузер показывает ошибку, причина обычно бытовая, а не взлом. Разбор — в статье «Сайт не открывается».
Что сделать в первый час
Первый час тратится не на лечение, а на то, чтобы перестать терять: открытый взломанный сайт рассылает спам с вашего домена, портит репутацию адреса в поиске и показывает клиентам чужое.
- Уберите сайт из публичного доступа. Поставьте заглушку с одной фразой и контактами либо отключите сайт в панели хостинга. Это единственное действие, которое останавливает ущерб немедленно.
- Смените пароль на почте, куда приходят сбросы паролей. Именно с неё, а не с админки: пока чужой человек читает эту почту, он вернёт себе доступ ко всему остальному через кнопку «забыли пароль».
- Смените остальные пароли: панель хостинга, доступы по FTP и SSH, админка, база данных, кабинет регистратора домена. Длинные и разные, не вариации прежнего.
- Включите второй фактор там, где он есть. Это мера, которая делает украденный пароль бесполезным.
- Запишите время и что увидели. Снимки экрана с адресной строкой, письмо от хостера, адреса чужих страниц. Через сутки это не вспомнить, а специалисту сокращает поиск.
- Остановите рекламу, ведущую на сайт. Объявление сейчас отправляет человека на чужую страницу за ваши деньги.
Почему нельзя «почистить и забыть»
Потому что чистка убирает следствие. Чужие файлы, вставки в страницы, лишний пользователь в админке — это то, что оставили после себя, а не то, через что вошли. Удалив всё это, вы получаете рабочий сайт с той же открытой дверью. Через неё входят снова — иногда в тот же день, потому что прежнюю уязвимость автоматика проверяет по расписанию. Второй раз обходится дороже: добавляется разбирательство с поиском, который уже отметил адрес как опасный. Поэтому порядок обратный привычному: сначала понять, как вошли, потом закрыть эту возможность, и только затем возвращать сайт в работу.
Как найти точку входа
Полный разбор — работа специалиста, но сузить круг владелец может сам, и это экономит оплаченные часы. Смотреть надо в четырёх местах.
- Журналы хостинга. В панели лежат записи обращений к сайту и входов: видно, с какого адреса и когда кто-то вошёл под вашим логином или перебирал пароли. Хранятся они ограниченное время, поэтому выгружать их нужно в первый же день.
- Даты изменения файлов. В файловом менеджере хостинга файлы сортируются по дате правки. Группа файлов, изменённых в один момент без вашего участия, и есть время события — от него считается всё остальное.
- Список дополнений и их версии. Если сайт на системе управления, перечислите тему и плагины с номерами версий и датой обновления. Устаревшее дополнение — частая причина: уязвимость в популярном плагине становится известна публично, и дальше её проверяют на всех сайтах подряд.
- Компьютер, с которого вы входите. Пароль могли не подобрать, а забрать: из браузера на заражённой машине, из программы для загрузки файлов, из переписки, где его прислали текстом. Тогда вход случился вообще без уязвимости на сайте.
Отдельно проверьте, нет ли в админке новых администраторов и не менялся ли адрес почты у вашей учётной записи: это оставляют, чтобы вернуться после чистки.
Из какой копии восстанавливаться
Главное правило: копия, снятая после взлома, бесполезна. Чужой код попал в неё вместе с остальными файлами, и восстановление возвращает сайт ровно в то состояние, из которого вы его вытаскиваете. То же с ежедневной копией, перезаписывающей предыдущую. Взлом заметили через неделю — в свежей копии уже лежит чужой код, а другой нет. Восстанавливаться нужно из копии, снятой до даты изменения файлов — той, которую вы нашли по журналам. В этом и состоит практический смысл глубины хранения, разобранной в статье «Резервные копии сайта».
Порядок такой: развернуть копию, сразу обновить систему управления и дополнения до текущих версий, ещё раз сменить пароли и только потом снимать заглушку. Пароли меняются и после восстановления: старая копия вернёт и старые. Содержимое, появившееся между копией и взломом, придётся вводить заново руками.
Что делать с данными клиентов
Если форма складывала обращения в базу сайта, исходите из того, что их могли прочитать. Имя и телефон — персональные данные, и обязанности при утечке закон возлагает на владельца сайта, а не на разработчика: оператором считается тот, кто определил цели обработки. Что требуется от сайта с формой, разобрано в «152-ФЗ простыми словами».
Сразу делается вот что: записать, какие поля собирала форма и за какой период в базе лежали заявки, куда уходили копии писем, не было ли среди данных чего-то чувствительнее имени и телефона. С такой записью можно говорить с юристом предметно, а не по памяти. И это повод дублировать заявки на внешнюю почту, чтобы база на сайте перестала быть единственным местом, где живут обращения людей.
Как вернуть сайт в поиск после чистки
Сайт вылечен и открыт, но поиск об этом ещё не знает: в базе остаются чужие страницы, а у адреса может стоять пометка о проблеме безопасности.
В Яндекс Вебмастере есть раздел «Безопасность и нарушения»: там видно, что именно нашли. После устранения вы ставите отметку «Нарушение исправлено» и нажимаете кнопку «Отправить на проверку». Инструмент «Переобход страниц» в том же кабинете заставляет робота зайти на указанные адреса заново — по справке Яндекса это занимает примерно две недели, и на другие работы срок не распространяется. В кабинете Google есть похожий раздел и запрос индексирования отдельных адресов.
Чужие страницы, которых больше нет, должны отдавать ошибку 404 или 410, а не переадресовывать на главную: так поиск быстрее выкидывает их из базы. Срок, за который выдача придёт в порядок, обещать не станем: он зависит от того, сколько мусора успело попасть в индекс.
Что делает владелец, а что специалист
Честно о границе. Весь первый час владелец проходит сам, и список дополнений с датой изменения файлов собирает тоже сам — это несколько нажатий в панели хостинга. Специалист нужен для другого: найти по журналам, через что вошли, вычистить чужой код из базы и системных файлов, проверить сервер на закладки — скрытые входы на будущее. При самостоятельном поиске часть закладок остаётся незамеченной, потому что их прячут в файлах, которые выглядят штатными.
У нас резервные копии и отслеживание доступности входят в обслуживание: «База» — 4 900 ₽ в месяц, «Актив» — 9 900 ₽ в месяц, состав обоих на странице цен. То есть о недоступности сайта мы узнаём раньше вашего клиента, и копия нужной давности есть. Но скажем прямо: обслуживание — это копии и присмотр, а не защита от взлома, и гарантия 30 дней относится к нашей работе по сайту, а не к действиям посторонних. Защита держится на другом: свежие версии, свои доступы, второй фактор и чистый компьютер у того, кто входит в админку.
И последнее, что стоит решить заранее, пока ничего не случилось. В день взлома выбор будет между сайтом, который неделю показывает людям чужое, и заглушкой на сутки с контактами для связи. Второе выглядит хуже и стоит дешевле: закрытый на день сайт прощают легче, чем сайт, с которого человека увело неизвестно куда.