Большинство взломов коммерческих сайтов происходит не из-за хитрых хакеров, а из-за забытых мелочей: старого плагина, общего пароля, открытой папки. Собрали базовые меры защиты, которые чаще всего упускают.
Кому нужен ваш сайт
Самое распространённое заблуждение владельцев корпоративных сайтов: «Мы небольшая компания, кому мы нужны». На практике сайт атакуют не потому, что он интересен кому-то лично, а потому, что он есть в интернете. Автоматические сканеры круглосуточно перебирают миллионы адресов, ищут известные уязвимости в популярных CMS и плагинах, пробуют стандартные пароли к административным панелям. Им всё равно, кто владелец сайта.
Что злоумышленники делают со взломанным сайтом? Встраивают скрытые ссылки на сомнительные ресурсы, размещают фишинговые страницы, рассылают спам с вашего домена, майнят криптовалюту на ресурсах сервера, крадут базы клиентов и заказов. Последствия для бизнеса — попадание в чёрные списки браузеров и почтовых сервисов, падение позиций в поиске, утечка персональных данных и связанные с ней претензии.
По нашим наблюдениям, из обращений по поводу взломанных сайтов около 70% связаны с тремя причинами: устаревшее программное обеспечение, слабые или утёкшие пароли и уязвимые сторонние расширения. Все три закрываются базовыми мерами, о которых и пойдёт речь.
Обновления: самая скучная и самая важная мера
Разработчики CMS, фреймворков и плагинов регулярно выпускают исправления найденных уязвимостей. С момента публикации исправления информация об уязвимости становится общедоступной, и через несколько дней сканеры уже ищут сайты, где обновление не установлено. Окно между выходом патча и массовыми атаками иногда составляет меньше недели.
Что нужно обновлять:
- ядро CMS или фреймворка;
- все модули, плагины и темы — включая отключённые, но не удалённые;
- версию языка программирования на сервере;
- веб-сервер, базу данных и операционную систему, если у вас VPS;
- JavaScript-библиотеки, подключённые на страницах.
Обновлять вслепую на рабочем сайте рискованно — новая версия плагина может конфликтовать с доработками. Правильный процесс: установка на тестовую копию, проверка ключевых сценариев, затем перенос на рабочий сайт. Для большинства корпоративных проектов достаточно плановых обновлений раз в месяц плюс внеплановых при выходе критических исправлений.
Доступы и пароли: где обычно тонко
Общие учётные записи
Один логин «admin» на весь отдел маркетинга — классика. Невозможно понять, кто что изменил, невозможно отозвать доступ у уволившегося сотрудника без смены пароля для всех. Каждому человеку — своя учётная запись.
Избыточные права
Контент-менеджеру, который публикует новости, не нужны права на установку модулей и изменение настроек. Разграничьте роли: редактор, модератор, администратор. Администраторов должно быть минимум — обычно один-два человека.
Забытые учётные записи
Разработчики прошлого подрядчика, фрилансер, который делал баннер три года назад, стажёр. При аудите одного корпоративного сайта мы нашли 23 активных учётных записи с правами администратора, из которых реально использовались две. Проводите ревизию доступов раз в квартал.
Двухфакторная аутентификация
Для административной панели, хостинга, регистратора домена и почты — обязательно. Даже если пароль утечёт, без второго фактора им не воспользоваться.
Хранение паролей
Не в таблице на общем диске и не в переписке в мессенджере. Используйте корпоративный менеджер паролей с разграничением доступа.
Совет студии: при смене подрядчика или увольнении сотрудника, имевшего доступ к сайту, в тот же день меняйте пароли от административной панели, хостинга, базы данных, FTP и регистратора домена. Составьте этот список заранее — в момент расставания о нём легко забыть.
Технические меры, которые часто упускают
Помимо обновлений и паролей есть набор настроек, которые не требуют больших затрат, но закрывают распространённые векторы атак.
| Мера | От чего защищает | Сложность |
|---|---|---|
| Ограничение попыток входа | Перебор паролей | Низкая |
| Нестандартный адрес админ-панели или доступ по IP | Автоматическое сканирование | Низкая |
| Запрет выполнения скриптов в папке загрузок | Загрузка вредоносного файла через форму | Низкая |
| Закрытие служебных файлов и каталогов | Утечка конфигураций, резервных копий, репозитория | Низкая |
| Заголовки безопасности (CSP, X-Frame-Options и др.) | Внедрение скриптов, встраивание сайта в чужие страницы | Средняя |
| Проверка файлов в формах загрузки | Исполняемые файлы под видом документов | Средняя |
| Защита форм от ботов | Спам, перебор, нагрузка | Низкая |
| Web Application Firewall | Типовые атаки: инъекции, XSS | Средняя |
| Мониторинг изменений файлов | Незаметное внедрение кода | Средняя |
Отдельно о служебных файлах. При проверке сайтов мы регулярно находим в открытом доступе архивы с резервными копиями, файлы с настройками подключения к базе данных и даже целые папки системы контроля версий. Злоумышленнику не нужно ничего взламывать — достаточно скачать то, что лежит на виду. Проверить это можно простым запросом к типовым адресам, и эту проверку стоит включить в чек-лист перед каждым запуском.
Сторонние модули и скрипты
Каждый установленный плагин — это код, написанный другим человеком, качество которого вы не контролировали. Чем больше расширений, тем больше потенциальных точек входа.
- Удаляйте неиспользуемое. Отключённый, но не удалённый плагин с уязвимостью так же опасен, как и включённый.
- Проверяйте источник. Устанавливайте расширения только из официальных каталогов, от разработчиков с историей обновлений.
- Смотрите на дату последнего обновления. Если модуль не обновлялся два года, ищите замену.
- Контролируйте внешние скрипты. Счётчики, виджеты чатов, кнопки соцсетей, пиксели рекламы — каждый загружает код с чужого сервера. Если тот сервер скомпрометирован, вредоносный код окажется и на вашем сайте.
- Никаких «обнулённых» версий платных модулей. Взломанные копии часто содержат встроенный бэкдор — это один из самых частых сценариев заражения, которые мы видим.
Персональные данные и формы
Корпоративный сайт почти всегда собирает персональные данные: имена и телефоны в формах обратной связи, почту в подписке, реквизиты в личном кабинете. Утечка таких данных — это уже не только технический инцидент. Базовые меры: передача данных только по защищённому соединению, хранение заявок в базе с ограниченным доступом, а не в открытой папке, регулярная очистка старых записей, которые больше не нужны для работы. Юридическую сторону — политику обработки данных, согласия, уведомления — стоит проработать с профильным специалистом; техническую реализацию мы закладываем при разработке сайта с самого начала.
Что делать, если сайт всё-таки взломали
- Не удаляйте ничего в панике — сначала сделайте полную копию текущего состояния для анализа.
- Смените все пароли: административная панель, хостинг, база данных, FTP, почта.
- Определите точку входа по логам сервера — иначе после очистки заражение повторится.
- Восстановите сайт из заведомо чистой резервной копии или очистите вредоносный код вручную.
- Закройте уязвимость: обновите компоненты, удалите лишние модули.
- Проверьте, не попал ли сайт в чёрные списки браузеров и поисковых систем, и подайте запрос на перепроверку.
- Если затронуты персональные данные — оцените последствия вместе с юристом.
Пример из практики: производитель мебельной фурнитуры обнаружил, что поисковая система помечает сайт как опасный. Выяснилось, что через уязвимость в старом модуле слайдера на сайт загрузили скрипт, перенаправлявший мобильных посетителей на мошеннические страницы. Очистка заняла день, а вот восстановление репутации в поиске и снятие пометок — почти три недели, в течение которых органический трафик упал на 60%. Обновление модуля заняло бы 15 минут.
Базовый чек-лист безопасности
- CMS, модули и серверное ПО обновляются минимум раз в месяц через тестовую копию.
- У каждого сотрудника своя учётная запись с минимально необходимыми правами.
- Включена двухфакторная аутентификация для админ-панели, хостинга, домена и почты.
- Раз в квартал проводится ревизия пользователей и доступов.
- Ограничено количество попыток входа, админ-панель защищена дополнительно.
- Служебные файлы, резервные копии и репозиторий закрыты от внешнего доступа.
- В папке загрузок запрещено выполнение скриптов.
- Удалены все неиспользуемые плагины и темы.
- Настроены резервное копирование и мониторинг изменений файлов.
- Есть план действий на случай взлома и понятно, кто за него отвечает.
Безопасность — это не разовая настройка, а регулярная гигиена. Если в компании нет человека, который будет следить за этим каждый месяц, эти задачи можно передать в рамках технической поддержки сайта. Абсолютной защиты не бывает, но базовые меры отсекают подавляющее большинство автоматических атак.