Главная/Блог/Технологии и CMS/Безопасность сайта: базовые меры, о которых забывают

Безопасность сайта: базовые меры, о которых забывают

Технологии и CMS18 сентября 20267 мин чтенияРедакция студии «Санмедиа»
Безопасность сайта: базовые меры, о которых забывают

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

Кому нужен ваш сайт

Самое распространённое заблуждение владельцев корпоративных сайтов: «Мы небольшая компания, кому мы нужны». На практике сайт атакуют не потому, что он интересен кому-то лично, а потому, что он есть в интернете. Автоматические сканеры круглосуточно перебирают миллионы адресов, ищут известные уязвимости в популярных CMS и плагинах, пробуют стандартные пароли к административным панелям. Им всё равно, кто владелец сайта.

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

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

Обновления: самая скучная и самая важная мера

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

Что нужно обновлять:

  • ядро CMS или фреймворка;
  • все модули, плагины и темы — включая отключённые, но не удалённые;
  • версию языка программирования на сервере;
  • веб-сервер, базу данных и операционную систему, если у вас VPS;
  • JavaScript-библиотеки, подключённые на страницах.

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

Доступы и пароли: где обычно тонко

Общие учётные записи

Один логин «admin» на весь отдел маркетинга — классика. Невозможно понять, кто что изменил, невозможно отозвать доступ у уволившегося сотрудника без смены пароля для всех. Каждому человеку — своя учётная запись.

Избыточные права

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

Забытые учётные записи

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

Двухфакторная аутентификация

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

Хранение паролей

Не в таблице на общем диске и не в переписке в мессенджере. Используйте корпоративный менеджер паролей с разграничением доступа.

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

Технические меры, которые часто упускают

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

МераОт чего защищаетСложность
Ограничение попыток входаПеребор паролейНизкая
Нестандартный адрес админ-панели или доступ по IPАвтоматическое сканированиеНизкая
Запрет выполнения скриптов в папке загрузокЗагрузка вредоносного файла через формуНизкая
Закрытие служебных файлов и каталоговУтечка конфигураций, резервных копий, репозиторияНизкая
Заголовки безопасности (CSP, X-Frame-Options и др.)Внедрение скриптов, встраивание сайта в чужие страницыСредняя
Проверка файлов в формах загрузкиИсполняемые файлы под видом документовСредняя
Защита форм от ботовСпам, перебор, нагрузкаНизкая
Web Application FirewallТиповые атаки: инъекции, XSSСредняя
Мониторинг изменений файловНезаметное внедрение кодаСредняя

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

Сторонние модули и скрипты

Каждый установленный плагин — это код, написанный другим человеком, качество которого вы не контролировали. Чем больше расширений, тем больше потенциальных точек входа.

  • Удаляйте неиспользуемое. Отключённый, но не удалённый плагин с уязвимостью так же опасен, как и включённый.
  • Проверяйте источник. Устанавливайте расширения только из официальных каталогов, от разработчиков с историей обновлений.
  • Смотрите на дату последнего обновления. Если модуль не обновлялся два года, ищите замену.
  • Контролируйте внешние скрипты. Счётчики, виджеты чатов, кнопки соцсетей, пиксели рекламы — каждый загружает код с чужого сервера. Если тот сервер скомпрометирован, вредоносный код окажется и на вашем сайте.
  • Никаких «обнулённых» версий платных модулей. Взломанные копии часто содержат встроенный бэкдор — это один из самых частых сценариев заражения, которые мы видим.

Персональные данные и формы

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

Что делать, если сайт всё-таки взломали

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

Пример из практики: производитель мебельной фурнитуры обнаружил, что поисковая система помечает сайт как опасный. Выяснилось, что через уязвимость в старом модуле слайдера на сайт загрузили скрипт, перенаправлявший мобильных посетителей на мошеннические страницы. Очистка заняла день, а вот восстановление репутации в поиске и снятие пометок — почти три недели, в течение которых органический трафик упал на 60%. Обновление модуля заняло бы 15 минут.

Базовый чек-лист безопасности

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

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

Расскажите о задаче —посчитаем проект

Опишите в двух словах, какой сайт нужен и к какому сроку. Мы изучим задачу, зададим уточняющие вопросы и в течение двух рабочих дней пришлём оценку сроков и бюджета. Можно написать и напрямую: [email protected].

Ответим в течение рабочего дня · Без навязчивых звонков · NDA по запросу

Нажимая кнопку, вы соглашаетесь с политикой конфиденциальности и использованием cookies.

Спасибо, заявка отправлена.
Менеджер ответит в течение рабочего дня на указанный контакт.