Безопасность сайта: как не отдать его взломщикам

Веб-страница за крепостной стеной с воротами, ключ на крючке и уползающий жучок: иллюстрация к статье о безопасности сайта

Утром вторника директор мебельной мастерской открывает свой сайт и видит турецкий флаг во весь экран. Через час звонит клиент: «У вас там какие-то таблетки продают». К обеду Яндекс показывает рядом с сайтом в выдаче предупреждение, а телефон молчит второй день подряд.

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

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

Директор мебельной мастерской утром с ужасом смотрит на свой сайт в ноутбуке
Взломанный сайт обычно замечают случайно и слишком поздно

Зачем ломают сайт небольшой компании

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

Первая реакция владельца при взломе всегда одинаковая: «кому мы вообще нужны». Вопрос резонный, ответ неприятный. Ценность взломанного сайта для злоумышленника с вашей выручкой почти не связана.

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

ВзломанныйсайтСкрытые ссылки в кодеРассылка спама с доменаПереброс на чужие сайтыРаздача вредоносных файловМетка в выдачеи падение трафика

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

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

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

Через какие щели заходят чаще всего

Коротко. Три основных входа: устаревшие плагины и шаблоны, слабые пароли администратора и заражённый компьютер, с которого заходят в админку.

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

Как заходятНасколько частоЧто закрывает вход
Уязвимость в устаревшем плагинеСамый частый случайРегулярные обновления, отказ от заброшенных плагинов
Подбор пароля администратораЧасто, особенно при логине adminДлинный пароль, второй фактор, лимит попыток входа
Пиратский шаблон или плагинЧасто у сайтов, сделанных «подешевле»Только официальные источники
Заражённый компьютер владельцаРеже, но лечится тяжелееАнтивирус, отказ от хранения паролей в браузере
Утечка доступов у бывшего подрядчикаРеже, зато обиднее всегоСмена паролей при расставании

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

Нет времени разбираться самому? Разберём ваш сайт по 20+ SEO-параметрам и покажем точки роста — бесплатно и без обязательств.

Получить аудит

Отдельная категория — формы на сайте. Через незащищённую форму обратной связи можно не только слать спам от вашего имени, но и подсовывать в базу произвольные данные. Простейшая защита ставится при разработке и стоит ноль рублей, если про неё вспомнили вовремя.

Пароли и доступы: самое дешёвое звено

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

Логин admin — это половина подсказки, отданная роботу бесплатно. Второй половиной обычно оказывается пароль вида «название компании плюс год». Робот перебирает такие комбинации тысячами в минуту и никуда не торопится.

  • Логин admin, administrator или имя домена
  • Один и тот же пароль на хостинг, почту и админку сайта
  • Пароль, записанный в чате с подрядчиком в открытом виде
  • Учётные записи уволившихся сотрудников и бывших фрилансеров
  • Доступ уровня «администратор» у человека, который правит тексты
  • Хранение паролей в браузере на общем компьютере в офисе

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

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

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

Обновления: скучно, но именно они спасают

Коротко. Большинство взломов идёт через дыры, о которых уже известно и для которых давно вышло исправление. Защиты при этом хватало: просто обновление не поставили вовремя.

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

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

  1. Сделайте копию перед обновлениемФайлы и база данных. Без этого шага любое обновление превращается в лотерею.
  2. Обновляйте ядро системы отдельноСначала ядро, проверили сайт, потом плагины по одному. Пакетное обновление всего сразу прячет причину поломки.
  3. Проверьте ключевые страницыГлавная, услуга, карточка, форма заявки. Пять минут ручной проверки после каждого шага.
  4. Уберите то, что не используетеОтключённый плагин остаётся файлом на сервере и остаётся уязвимым. Удаляйте, а не выключайте.
  5. Заведите расписаниеРаз в месяц в спокойный день. Регулярность важнее скорости реакции.

Заброшенные плагины — отдельная головная боль. Если в каталоге написано, что расширение не обновлялось три года, оно уже не защищено, каким бы удобным ни было. Это же касается пиратских шаблонов: в них закладку находят чаще, чем в честно купленных. Про выбор движка и его сопровождение мы писали в материалах какую CMS выбрать и WordPress или Битрикс.

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

Резервные копии: единственная настоящая страховка

Коротко. Любая защита пробивается. Бэкап отличает неприятный вечер от потерянного месяца. Копия должна лежать не только на том же хостинге.

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

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

1
копия в неделю — минимум для сайта, который редко меняется
30
дней глубины хранения дают шанс откатиться к чистой версии
2
места хранения: площадка сайта и что-то независимое от неё
1
проверка восстановления в полгода: копия без проверки не считается

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

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

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

Как понять, что сайт уже взломан

Коротко. Самые надёжные сигналы приходят из кабинетов вебмастера и от хостинга. Внешне заражённый сайт часто выглядит нормально: чужие страницы видит только робот.

Красивая заставка с флагом — редкий и, по-своему, удобный случай: проблема очевидна сразу. Гораздо чаще заражение прячется, потому что взломщику выгодно оставаться незамеченным подольше.

  • В Яндекс Вебмастере появился раздел с нарушениями безопасности
  • В Google Search Console пришло уведомление о проблемах безопасности
  • Хостинг прислал письмо о вредоносных файлах или превышении нагрузки
  • В поиске по вашему домену находятся страницы, которых вы не делали
  • Резко выросло число страниц в индексе без вашего участия
  • Письма с корпоративной почты стали попадать в спам у получателей
  • В админке появился неизвестный пользователь с правами администратора

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

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

Что делать, если взломали

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

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

  1. Закройте сайт от посетителейТехнические работы на час-два лучше, чем страница, раздающая вредоносное содержимое.
  2. Снимите копию заражённого состоянияОна понадобится, чтобы понять способ проникновения и не потерять данные, добавленные после последнего бэкапа.
  3. Найдите точку входаЛоги сервера, дата изменения файлов, список установленных плагинов. Без этого шага чистка бессмысленна.
  4. Восстановите чистую версиюИз копии, снятой до заражения. Ручная вычистка заражённого сайта почти всегда оставляет хвосты.
  5. Смените все доступы разомХостинг, панель, база данных, админка, почта. Половинчатая смена паролей не работает.
  6. Обновите ядро и расширенияИначе через ту же дыру зайдут снова, обычно в течение недели.
  7. Сообщите поисковикамПосле чистки отправьте сайт на перепроверку в Вебмастере и Search Console.

Осторожно. Метка о небезопасном сайте снимается не мгновенно: поисковик должен зайти повторно и убедиться, что чисто. Пока метка висит, трафик остаётся низким. Поэтому чинить надо сразу, а не «на следующей неделе, когда будет время».

Сроки тут неприятные, и лучше знать о них заранее. Чистка занимает от нескольких часов до пары дней, снятие метки поисковиком — до нескольких недель, а полное восстановление позиций может растянуться на месяц и дольше. Именно поэтому профилактика стоит дешевле лечения на порядок.

Гигиена на один вечер

Коротко. Пять действий закрывают большую часть типового риска: пароли, роли, обновления, копии, сертификат. Всё вместе занимает вечер.

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

Как обычно выглядит сайт

через год после сдачи

  • Пароль admin с прошлой работы
  • Плагины не трогали с запуска
  • Копий нет или они на том же сервере
  • Доступы есть у трёх бывших подрядчиков
  • Никто не заходит в Вебмастер

Как должно выглядеть

после одного вечера работы

  • Уникальный логин и длинный пароль
  • Обновления раз в месяц по расписанию
  • Копии в двух местах, восстановление проверено
  • Лишние учётные записи удалены
  • Подписка на уведомления вебмастера включена

Если сайт делали на стороне, отдельно проверьте, что доступы у вас, а не только у исполнителя. Что именно принимать при сдаче работ, перечислено в материале про то, как принять сайт у подрядчика. И проверьте сертификат: без него браузер сам предупреждает посетителя, о чём мы писали в статье про HTTPS и SSL.

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

Если хотите проверить свой сайт со стороны, оставьте заявку на бесплатный экспресс-аудит: посмотрим версии, доступы, копии и сигналы в кабинетах вебмастера. Мы делаем сайты и ведём SEO-продвижение одной командой, поэтому чиним и техническую часть, и последствия для поиска. Телефоны и адрес — на странице контактов.

← Все статьи Получить бесплатный аудит
Бесплатный аудит