Звонок был коротким: «У нас опять вирусы, посмотрите». Открываю сайт. Вместо главной страницы показывается статья из блога. Страницы услуг отвечают «не найдено». В каталоге вместо фотографий оборудования серые квадраты. Так сайт простоял пять дней, и узнали об этом только потому, что позвонил клиент и спросил, всё ли у компании в порядке. Ниже то, что случилось на самом деле, почему никто не заметил и что я теперь советую всем, у кого есть сайт и нет человека, который за ним смотрит.

Это был не вирус

Слово «вирус» в таких историях почти всегда значит что-то другое. Здесь никто не ломал хостинг и не искал дыру в движке. Внутрь зашли через обычную дверь: по логину и паролю от админки.

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

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

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

Почему пропали страницы и фотографии

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

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

Почему никто не заметил

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

Это самая частая картина, которую я вижу у небольших компаний. Сайт воспринимают как вывеску: повесили и забыли. А сайт больше похож на автомобиль. Он ездит, пока в него кто-то заглядывает.

Сайт не ломается громко. Он ломается тихо, и узнаёте вы об этом от клиента.

Что спасло

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

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

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

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

Вот что я делаю на сайтах, за которые отвечаю.

Каждый день, автоматически. Сайт открывается и отвечает быстро. Форма заявки отправляется, и письмо доходит. В списке администраторов только те, кто там должен быть. За сутки не появилось новых файлов и плагинов, которых никто не ставил.

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

Раз в месяц. Отчёт на одну страницу: что обновили, что поймали, что советую сделать.

И два правила про пароли, которые стоят дороже любого мониторинга. Первое: у каждого человека своя учётная запись, чтобы утечку было видно и можно было отключить одного, не трогая остальных. Второе: пароль от админки не живёт в браузере и в файле «пароли.txt» на рабочем столе.

Ритм присмотра за сайтом: ежедневные проверки, еженедельные обновления и копии, ежемесячный отчёт

Когда присмотр не нужен

Чтобы не выглядело так, будто я продаю страх. Есть сайты, которым это правда ни к чему.

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

Что сделать прямо сейчас

Три действия на десять минут, без специалиста.

  1. Зайдите в админку и откройте список пользователей. Все имена вам знакомы? Незнакомого администратора удаляйте, но сначала передайте его материалы себе, иначе повторите историю выше.
  2. Найдите, где лежит копия сайта. Именно конкретное место, откуда вы сами сможете её взять, «хостинг же делает» не считается. Если такого места нет, оно должно появиться на этой неделе.
  3. Поменяйте пароль от админки и не сохраняйте новый в браузере. Тот, кто входит в админку с другого компьютера, получает свою учётку.

Если после первого пункта в списке нашлось что-то лишнее, не откладывайте: дальше только дороже.

Услуга: поддержка сайта, чтобы он не ломался тихо

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

Обсудить задачу