Сайт заполнился чужими страницами и вылетел из поиска

Клиент позвонил с формулировкой, которую мы слышим нечасто: «У нас на сайте появились страницы, которых мы не делали. Много. Очень много».
Компания продаёт и монтирует климатическое оборудование, сайт работал восемь лет и приносил около шестидесяти обращений в месяц. К моменту звонка обращения упали до девяти. При этом сайт открывался, каталог работал, формы отправлялись — внешне всё выглядело нормально.
Ненормальным было то, что при поиске по названию компании поисковая система показывала ссылки на страницы с адресами вроде «скидки на азартные развлечения» и «займы без проверок» — и все они находились на домене компании.
Разберём эту историю подробно: как такое происходит, почему это долго не замечают, чем заканчивается и как не попасть.
Как выглядела картина при первом осмотре
Первое, что мы сделали, — посмотрели, сколько страниц сайта известно поисковым системам. У компании было около четырёхсот собственных страниц: каталог, услуги, статьи, контакты.
В панели вебмастера значилось больше девятнадцати тысяч.
Дальше стало понятнее. На сервере, в глубине структуры папок, лежала директория с невнятным названием, а в ней — почти двадцать тысяч сгенерированных страниц с текстами про азартные игры, быстрые займы и сомнительные медицинские препараты. Каждая страница была оформлена под простенький шаблон, набита ссылками на сторонние ресурсы и перелинкована с остальными.
Плюс в нескольких файлах самого сайта обнаружились вставки постороннего кода. Они делали интересную вещь: обычному посетителю показывали нормальную страницу, а поисковому роботу — подменённое содержимое со ссылками. Именно поэтому в компании ничего не замечали: открываешь сайт — всё в порядке.
И третий элемент: небольшой управляющий файл, замаскированный под системный, через который злоумышленник мог загружать и запускать что угодно.
Как туда попали
Восстановить точную картину удалось по логам сервера — они, к счастью, хранились три месяца.
Всё началось с устаревшего дополнительного модуля. На сайте был подключён компонент для галереи фотографий, поставленный ещё при разработке, шесть лет назад. Он давно не обновлялся — просто потому, что работал и о нём не вспоминали. В какой-то из версий этого компонента была известная уязвимость, позволяющая загрузить на сервер произвольный файл.
Дальше всё произошло автоматически. Сканеры уязвимостей ходят по всем сайтам подряд круглосуточно — это не целевая атака, а массовый перебор. Один из них нашёл уязвимый компонент, загрузил управляющий файл, и через него на сервер попал генератор страниц.
По логам первое обращение к управляющему файлу датировалось примерно семью месяцами ранее. Ещё через две недели началась массовая генерация. То есть паразитные страницы жили на сайте больше полугода.
Отдельно выяснилось, что у сайта был ещё один вход: пароль администратора представлял собой название компании и год. Такие пароли подбираются за минуты, и попытки подбора в логах тоже присутствовали в изобилии.
Почему это заметили так поздно
Это самая поучительная часть истории. Признаки были — их просто некому было увидеть.
Сайт выглядел нормально. Подменённое содержимое показывалось только роботам. Заходя на сайт, сотрудники видели свой обычный каталог.
Никто не смотрел панель вебмастера. А там количество известных страниц выросло с четырёхсот до девятнадцати тысяч — это невозможно не заметить, если хоть раз в месяц туда заглядывать.
Никто не искал компанию в поиске. Достаточно было раз набрать название и посмотреть, что показывается.
Нагрузка выросла, но не критично. Хостинг присылал предупреждения о повышенном расходе ресурсов. Их читали и не понимали, что с ними делать, — сайт же работает.
Падение обращений объясняли рынком. Снижение шло постепенно, месяц за месяцем. Каждое отдельное падение выглядело как колебание, а в сумме за полгода получилось падение в шесть раз.
Не было регулярной проверки. Ни разу за восемь лет никто не проверял целостность файлов, не смотрел логи, не сверял список страниц.
Что происходило с видимостью сайта
Здесь всё довольно быстро.
Поисковые системы обнаружили массовое появление страниц низкого качества с ссылками на сомнительные ресурсы. Реакция стандартная: сайт получил санкции. Сначала стал реже показываться, потом почти полностью выпал из результатов по своим основным темам.
В панели вебмастера была соответствующая пометка о нарушении — её тоже никто не видел, потому что в панель не заходили.
Дополнительно часть посетителей начала получать предупреждения браузера о небезопасном сайте: ссылки на вредоносные ресурсы приводят к попаданию домена в списки опасных. Люди, которые видели такое предупреждение, разумеется, не заходили.
Итог: канал, дававший больше половины обращений, перестал работать почти полностью.
Как чистили
Работа заняла три недели. Порядок был такой.
Шаг 1. Закрыли доступ. Сменили все пароли: административная часть, доступ к файлам, база данных, панель хостинга. Ограничили вход в панель управления по сетевым адресам офиса.
Шаг 2. Сделали полную копию заражённого состояния. Не для восстановления, а для разбора: чтобы понять, что и когда изменялось.
Шаг 3. Нашли все посторонние файлы. Сравнили файлы системы управления с эталонными версиями — так вылавливаются изменённые. Отдельно искали файлы, созданные и изменённые в подозрительные даты. Обнаружили генератор, управляющий файл и ещё четыре закладки в разных местах, включая одну в папке с загруженными изображениями.
Шаг 4. Проверили базу данных. Там тоже нашлись вставки: посторонний код был добавлен в шаблоны вывода.
Шаг 5. Удалили паразитные страницы. Двадцать тысяч адресов. Важный момент: их нельзя просто стереть — нужно, чтобы поисковые системы поняли, что страницы удалены намеренно. Настроили корректные ответы сервера и отправили адреса на удаление через панель вебмастера.
Шаг 6. Обновили всё, что можно обновить. Систему управления, все дополнительные модули, версию языка на сервере. Уязвимый компонент галереи заменили на актуальное решение.
Шаг 7. Закрыли уязвимости. Отключили выполнение кода в папках с загруженными файлами, ограничили права на запись, убрали доступ к служебным директориям.
Шаг 8. Настроили защиту. Ограничение попыток входа, двухфакторная проверка для администраторов, мониторинг изменений файлов с уведомлением, регулярное сканирование.
Шаг 9. Написали в поддержку поисковых систем. Сообщили, что нарушение устранено, и запросили пересмотр. Ответ пришёл примерно через три недели.
Шаг 10. Настроили резервное копирование с хранением копий вне сервера и с достаточной глубиной — чтобы можно было откатиться на месяц назад, а не на три дня.
Сколько времени заняло восстановление
Чистка — три недели. Снятие санкций — ещё около месяца после подачи запроса.
Возврат видимости к прежнему уровню — примерно пять месяцев. Это типичный срок: доверие поисковых систем восстанавливается постепенно, и часть позиций за это время занимают конкуренты.
Количество обращений вернулось к прежним значениям через семь месяцев после начала работ. Суммарно от момента заражения до полного восстановления прошло почти полтора года, из которых больше половины компания даже не знала о проблеме.
Что это стоило
Потерянные обращения. Около десяти месяцев работы основного канала на существенно сниженной мощности. Если считать по средней сумме сделки, потери оказались сопоставимы с годовой зарплатой двух менеджеров.
Стоимость чистки и восстановления. Три недели специализированной работы плюс последующее сопровождение.
Потерянные позиции в нише. Пока сайт отсутствовал в выдаче, часть клиентов ушла к конкурентам и осталась там.
Репутация. Клиенты, увидевшие предупреждение браузера, запомнили это. Несколько человек прямо спросили при следующем контакте, всё ли в порядке с компанией.
Нервы. Директор описал этот период выразительно, но повторять не будем.
Почему это может случиться с любым сайтом
Главное заблуждение, которое мешает воспринимать угрозу серьёзно: «кому мы нужны, у нас маленькая компания».
Никому конкретно вы не нужны. Никто не выбирал ваш сайт. Сканеры перебирают миллионы адресов автоматически, ищут известные уязвимости и, найдя, используют. Ваш сайт — просто один из результатов перебора. Размер компании не имеет значения; имеет значение только наличие дыры.
Зачем это делают: ваш сайт с историей и доверием поисковых систем используют как площадку для размещения ссылок. Пока его не заметили, он приносит доход тем, кто разместил. Когда заметили — переходят к следующему.
Признаки, по которым можно поймать рано
Если бы в компании проверяли хоть что-то из этого списка, проблему нашли бы в первый месяц.
Резкий рост количества страниц в панели вебмастера. Самый явный признак. Проверяется за минуту.
Уведомления о нарушениях в той же панели.
Странные страницы в поиске. Наберите в поисковой строке запрос с указанием только вашего сайта и посмотрите, что там есть. Регулярная привычка.
Рост нагрузки на сервер без роста посещаемости.
Предупреждения хостинга о превышении лимитов или о найденных подозрительных файлах.
Появление файлов с непонятными именами и свежими датами изменения.
Изменение файлов, которые вы не трогали.
Странные записи в логах: обращения к файлам, которых у вас быть не должно, и получение по ним успешного ответа.
Необъяснимое падение обращений при неизменной работе отдела продаж.
Жалобы клиентов на предупреждения браузера или на переадресацию.
Появление новых учётных записей администратора, которых вы не создавали.
Как защититься: разумный минимум
Обновляйте систему управления и модули. Это скучно, но это главная мера. Большинство взломов происходит через известные уязвимости, для которых обновление давно вышло.
Уберите то, чем не пользуетесь. Каждый лишний модуль — потенциальная дверь. Тот компонент галереи не использовался уже несколько лет.
Сложные пароли и двухфакторная проверка. Пароль вида «название компании плюс год» подбирается мгновенно.
Ограничьте попытки входа. После пяти неудачных — временная блокировка.
Смените стандартный адрес входа в панель, если система позволяет.
Запретите выполнение кода в папках с загруженными файлами. Типовая и очень эффективная мера.
Настройте регулярное сканирование файлов на посторонние изменения.
Настройте мониторинг целостности: уведомление, когда изменился файл, который никто не должен был менять.
Держите резервные копии вне сервера и с глубиной хранения хотя бы месяц. Если копии только за три дня, а заражение произошло полгода назад, копии бесполезны.
Раз в месяц заглядывайте в панель вебмастера. Количество страниц, уведомления, ошибки. Пять минут.
Раз в месяц ищите свой сайт в поиске и смотрите, что показывается.
Ведите учёт обращений по источникам, чтобы падение по одному каналу было видно сразу.
Что делать, если обнаружили у себя
Не паникуйте и не удаляйте всё подряд. Сначала копия текущего состояния — она понадобится для разбора.
Смените все пароли. Все, включая почту, на которую можно восстановить доступ.
Не откатывайтесь на резервную копию вслепую. Если заражение произошло раньше, чем сделана копия, вы восстановите то же самое. И вместе с этим потеряете свежие данные.
Найдите точку входа. Без этого чистка бессмысленна: вычистите — заразят снова через ту же дыру.
Проверьте базу данных, а не только файлы.
Обратитесь к специалистам, если нет опыта. Самостоятельная чистка часто оставляет закладки, и через неделю всё возвращается.
После чистки обязательно запросите пересмотр в панели вебмастера, иначе санкции останутся.
Настройте защиту прежде, чем расслабиться. Один раз найденный сайт обычно пробуют повторно.
Итог
Массовая генерация чужих страниц на сайте — не экзотика, а один из самых распространённых сценариев. Он не требует, чтобы вы были кому-то интересны: достаточно одного необновлённого модуля и простого пароля.
Самое опасное в нём — незаметность. Сайт работает, посетители видят нормальные страницы, а тем временем домен превращается в площадку для чужой рекламы и теряет доверие поисковых систем. К моменту, когда падение обращений становится очевидным, проблема живёт уже полгода.
Защита при этом стоит несопоставимо меньше восстановления: обновления, нормальные пароли, ограничение прав, мониторинг изменений, резервные копии вне сервера и пятиминутный взгляд в панель вебмастера раз в месяц.
Если вы давно не обновляли сайт, не знаете, какие модули на нём стоят, и не помните, когда последний раз проверяли количество известных поисковикам страниц, — специалисты компании «Сайты Профессионально» проведут бесплатную проверку: посмотрят версии системы и модулей, поищут посторонние файлы и подозрительные изменения, проверят состояние сайта в панели вебмастера. Лучше убедиться, что всё чисто, чем узнать об обратном через полгода.
Хотите получить бесплатную диагностику сайта?
Получите бесплатную экспресс-диагностику за 24 часа. Проверим ошибки, сбои, скорость, безопасность и скрытые ошибки — пришлём отчёт с рекомендациями.
- Скорость загрузки и мобильная версия
- Уязвимости, вирусы, взломы
- Битые ссылки, дубли, SEO-ошибки
- Статус домена, SSL, хостинга
Популярные решения наших клиентов:

До 10 часов работ в мес.
Ежедневная диагностика
Продление домена
Продление хостинга/сервера

До 40 часов работ в мес.

До 100 часов работ в мес.
