Безопасность

Безопасность сайта: базовый минимум

Сайты взламывают не адресно, а массово и автоматически. Разбираем базовый набор мер: HTTPS, обновления, доступы, копии, защита форм и порядок действий при взломе.

Разговор о безопасности сайта часто заканчивается фразой «нас некому взламывать». В ней есть скрытое допущение: что взлом — это адресное действие, которое кто-то решил предпринять именно против вас. На практике подавляющее большинство взломов устроено иначе, и это меняет всю логику защиты.

Почему «нас некому взламывать» — неверная посылка

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

Мотивация тоже не связана с вами напрямую. Взломанный сайт нужен, чтобы:

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

Ни одному из этих сценариев не требуется, чтобы вы были заметной компанией. Достаточно, чтобы сайт был доступен из интернета.

Взлом небольшого сайта — не событие, а фон. Вопрос не в том, попробуют ли, а в том, найдут ли что-то, что сработает.

Базовый минимум

HTTPS

Защищённое соединение сегодня — не опция. Без него данные форм идут по сети в открытом виде, браузеры показывают предупреждения, а часть функций просто не работает.

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

Обновления

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

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

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

Разграничение доступов

Типичная картина в компании: один логин администратора, который знают пятеро, включая уволившегося год назад сотрудника и стороннего подрядчика.

Что делать вместо этого:

  1. У каждого человека своя учётная запись — так видно, кто что сделал.
  2. Права по минимуму: редактору контента не нужен доступ к настройкам и коду.
  3. Двухфакторная аутентификация для всех, у кого есть админский доступ, и обязательно для домена, хостинга и почты.
  4. Уникальные длинные пароли, хранящиеся в менеджере паролей, а не в переписке и не в общем файле.
  5. Учётные записи уходящих сотрудников и завершивших работу подрядчиков отключаются в тот же день.
  6. Периодический пересмотр списка: кто вообще имеет доступ и зачем.

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

Резервные копии и проверка восстановления

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

Последнее важнее, чем кажется. Взлом обнаруживают не сразу, и единственная свежая копия может уже содержать закладку. Несколько поколений дают возможность откатиться на состояние до заражения.

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

Защита форм

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

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

Наблюдение

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

Эти задачи мы обычно решаем в связке с поддержкой; отдельное направление описано в разделе безопасности.

Что делать при взломе

Порядок важен: неправильная последовательность уничтожает следы и приводит к повторному заражению.

  1. Не удаляйте ничего сразу. Сначала сделайте копию текущего состояния — файлов, базы, логов. Она понадобится, чтобы понять, как попали внутрь.
  2. Ограничьте доступ. Закройте сайт или отключите его, если он вредит посетителям: раздаёт переадресации или файлы.
  3. Смените все пароли — админки, базы, хостинга, FTP, почты, домена. Завершите активные сессии.
  4. Найдите точку входа. По логам и датам изменения файлов. Без этого шага восстановление ничего не даёт: через день заражение вернётся тем же путём.
  5. Восстановите из заведомо чистой копии — не из самой свежей, а из той, что старше момента заражения.
  6. Закройте уязвимость: обновите платформу и компоненты, удалите лишнее, исправьте настройки.
  7. Проверьте, что не осталось закладок — лишних учётных записей администратора, посторонних задач по расписанию, подозрительных файлов, изменённых системных файлов.
  8. Снимите санкции. Если сайт помечен как заражённый, запросите перепроверку в панелях вебмастера.
  9. Оцените, что утекло. Если пострадали персональные данные клиентов, у вас есть обязанности, помимо технических.

Базовый чеклист

  • HTTPS работает, продлевается автоматически, незащищённый адрес перенаправляется.
  • Платформа, расширения и библиотеки обновлены; неиспользуемое удалено.
  • У каждого своя учётная запись с минимально нужными правами.
  • Двухфакторная аутентификация на домене, хостинге, почте и админке.
  • Пароли уникальные, в менеджере паролей.
  • Копии делаются автоматически, хранятся отдельно и в нескольких поколениях.
  • Восстановление из копии проверено на практике хотя бы раз.
  • Формы защищены от автоматических отправок, данные проверяются на сервере.
  • Настроено оповещение о недоступности сайта, подключены панели вебмастера.
  • Записано, кто отвечает за реакцию и что делает первым при инциденте.

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