Безопасность корпоративного сайта: чек-лист для IT-директора компании
Меня зовут Семёнов Евгений Сергеевич, я директор АйТи Фреш. Почти у каждого нашего клиента — компании с офисами от 10 до 50 рабочих мест в Москве — есть свой сайт. И именно сайты, а не серверы 1С, чаще всего становятся причиной звонков «у нас всё сломалось». В этой статье — практический чек-лист безопасности корпоративного сайта, написанный для IT-директора, которому нужно понимать, что его подрядчик или собственный сисадмин делает правильно, а что — пропускает.
Почему корпоративный сайт — самая частая точка взлома
За 15 лет работы я несколько раз с удивлением считал статистику инцидентов у клиентов: серверы 1С взламывают редко, NAS — почти никогда, а вот сайты — постоянно. Причины три:
- Сайт всегда смотрит в интернет. Его круглосуточно сканируют автоматические боты на наличие известных уязвимостей. Сервер 1С обычно за NAT, его не достать без VPN.
- Сайт сделан подрядчиками год-два-пять назад, на CMS, которая с тех пор не обновлялась. Каждый месяц в WordPress, Битрикс и Joomla находят новые уязвимости, и каждый месяц на необновлённых сайтах их эксплуатируют.
- Сайт никто не считает критичным сервисом. «Ну работает и работает» — пока не упадёт перед тендером, или пока на главной не появится баннер казино.
Когда сайт взламывают, последствия бывают разные: от подмены контента до использования сайта как прокладки для рассылки спама и фишинга от вашего имени. Самое неприятное — когда злоумышленники получают доступ к админке Битрикс с интегрированной 1С: оттуда уже можно дотянуться до базы заказов и контактов клиентов.
Случай из практики: сайт «забыли», и он попал в чёрные списки
Транспортная компания в Хамовниках, обслуживаем их инфраструктуру два года. Звонок от директора в декабре 2025: «Нам не дают отправлять коммерческие предложения с корпоративной почты, говорят, наш домен в чёрных списках!» Открыли — почта info@trans-pro.ru уходит, но 80% получателей помечают как спам, или отбивает ещё на входе их почтовый сервер.
Полезли разбираться. Мы у этой компании обслуживаем только инфраструктуру в офисе. Сайт trans-pro.ru сделала какая-то веб-студия в 2019 году, разместила на хостинге, и с тех пор никто туда не заходил. Открыл сайт — на главной появилось окошко «Установите расширение для просмотра», явно вредоносное. Зашёл по FTP в админку (пароль предоставил директор) — увидел в корне 30+ PHP-файлов с именами вроде wp-stat.php, backup.php, ssp.php. Все были веб-шеллами с разными авторами.
Дальше — в логи доступа хостинга. С июля 2025 года сайт ежедневно отправлял десятки тысяч HTTP-запросов на mail-серверы Mail.ru, Яндекс, Google. Это были автоматические рассылки фишинга «от имени» нашего клиента. К декабрю репутация домена была уничтожена, и письма с офисной почты автоматически фильтровались как спам.
Зачистили сайт за день, перенесли на защищённый хостинг с регулярными обновлениями, восстановили DKIM/SPF/DMARC, обратились к Mail.ru и Яндекс с заявкой на пересмотр репутации. Через 3 недели почта снова доходила нормально. Стоило компании — 2 месяца просадки в продажах и 65 000 руб. на восстановительные работы. А база клиентов не пострадала только чудом.
Чек-лист №1: HTTPS и сертификат
Это самое базовое, но на удивление до сих пор не у всех. Проверить можно за 30 секунд: вбейте адрес сайта в ssllabs.com/ssltest и посмотрите оценку.
| Что проверять | Как должно быть |
|---|---|
| Сертификат | Действующий, выдан Let's Encrypt или Sectigo, имя совпадает |
| Срок действия | Авто-обновление через certbot или плагин CMS |
| Версия TLS | Только 1.2 и 1.3, никаких 1.0 и 1.1 |
| Шифры | ECDHE с AES-GCM, без RC4 и 3DES |
| Принудительный HTTPS | Редирект с http:// на https:// для всех URL |
| HSTS | Заголовок Strict-Transport-Security включен |
| Оценка SSL Labs | Минимум A, целевая A+ |
На корпоративных сайтах раз в полгода-год вижу истёкшие сертификаты — это всегда внезапно, всегда в самое неудачное время и всегда сопровождается криком директора. Решается раз и навсегда настройкой автообновления через certbot:
# На сервере с nginx
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d trans-pro.ru -d www.trans-pro.ru
# Автообновление уже встроено в systemd-таймер,
# проверим что работает:
sudo systemctl status certbot.timer
Чек-лист №2: заголовки безопасности
Это вторая линия защиты, которая работает на стороне браузера посетителя. Даже если ваш сайт уже взломан и в код внедрён вредоносный JavaScript, правильные заголовки не дадут ему сработать. Проверить можно на securityheaders.com.
# Минимально необходимые заголовки в nginx
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
add_header Content-Security-Policy "default-src 'self'; img-src 'self' data: https:; \
script-src 'self' 'unsafe-inline' https://mc.yandex.ru; \
style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; \
font-src 'self' https://fonts.gstatic.com" always;
Что именно делает каждый заголовок:
- HSTS — браузер запоминает, что на этот сайт можно ходить только по HTTPS, и не даст случайно открыть HTTP-версию.
- X-Frame-Options — запрещает встраивать сайт в iframe на чужих ресурсах. Защита от clickjacking, когда мошенники накладывают невидимый сайт поверх своего и ваши клики уходят им.
- X-Content-Type-Options — браузер не будет «угадывать» тип файла, что мешает атакам через подмену типа.
- Content Security Policy (CSP) — самый мощный заголовок, перечисляет источники, с которых разрешено грузить скрипты и стили. Чужой скрипт, внедрённый через уязвимость, браузер просто проигнорирует.
Чек-лист №3: обновления CMS и плагинов
Если сайт сделан на WordPress, Битриксе или Joomla — это самое больное место. По данным Sucuri за 2025 год, 96% взломов сайтов на WordPress происходят из-за устаревших плагинов с известными уязвимостями. Не из-за сложных целевых атак, а просто потому, что злоумышленник просканировал интернет на наличие конкретной уязвимости и пошёл по списку найденных сайтов.
Что должно быть настроено:
- WordPress: автообновление core (по умолчанию включено), автообновление плагинов и тем (включается в админке или через wp-cli);
- Битрикс: подписка на обновления, регулярное применение патчей (раз в 2-4 недели), запуск проактивной защиты в максимальном режиме;
- Удаление неиспользуемых плагинов: каждый отключённый, но установленный плагин — потенциальная дыра. Не отключайте — удаляйте.
- Регулярный аудит уязвимостей: для WordPress есть бесплатный WPScan (
wpscan --url ваш-сайт), он показывает список устаревших компонентов с известными CVE.
У нас в АйТи Фреш для каждого клиентского сайта прописан еженедельный регламент: понедельник утром инженер заходит в админку, проверяет наличие обновлений, применяет, тестирует ключевые сценарии (главная, форма обратной связи, корзина если есть e-commerce). Занимает 15-20 минут на сайт, экономит десятки тысяч рублей на восстановлении.
Чек-лист №4: разделение сайта и внутренней инфраструктуры
Категорически нельзя размещать корпоративный сайт на одном сервере с боевой 1С, файловым хранилищем или почтой. Ровно один взлом — и злоумышленник внутри вашей инфраструктуры. У нас одобренные конфигурации:
| Размер компании | Где размещать сайт | Стоимость в месяц |
|---|---|---|
| До 20 РМ, простой сайт-визитка | Хостинг (Beget, Reg.ru, Timeweb) | 500-1500 руб. |
| 20-50 РМ, сайт + лендинги + блог | VPS у Selectel/RUVDS | 2500-5000 руб. |
| 20-50 РМ, интернет-магазин | Выделенный VPS + защита от DDoS | 6000-12000 руб. |
| Любой размер, требования 152-ФЗ | Хостинг с локализацией данных в РФ | +30% к базе |
Если сайт уже размещён на одном сервере с 1С — это не катастрофа, но это нужно срочно разносить. Мы у клиентов делаем это так: арендуем отдельный VPS, переносим сайт туда, обновляем DNS, тестируем, через неделю удаляем сайт со старого места. Стоит 6-12 часов работы инженера и 3000 руб. в месяц за VPS — копейки на фоне рисков совмещённого размещения.
Чек-лист №5: бэкапы сайта (и тестирование восстановления)
Бэкапы должны быть, и они должны проверяться. У меня в практике несколько раз была ситуация: сайт взломан, клиент спокоен — «у нас же бэкап делается каждый день». Лезем в бэкап — а там либо нулевые файлы, либо последний рабочий бэкап от 2022 года, либо бэкапы делаются, но их никто не пробовал развернуть, и при восстановлении выясняется, что не хватает базы.
Минимальный регламент бэкапов корпоративного сайта:
- Файлы сайта: ежедневный полный бэкап, хранение 14 дней. Можно через rsync на отдельный сервер, можно встроенным инструментом хостинга.
- База данных: ежедневный дамп
mysqldumpилиpg_dump, тоже 14 дней хранения. - Хранение в двух местах: один бэкап на сервере или хостинге, второй — копией в облако (Yandex Object Storage, Cloud.ru) или в офис на NAS.
- Тестовое восстановление раз в квартал: разворачиваем сайт из бэкапа в тестовом окружении, проверяем работу. Это единственный способ убедиться, что бэкап реально рабочий.
# Простой bash-скрипт ежедневного бэкапа сайта на WordPress
#!/bin/bash
DATE=$(date +%Y-%m-%d)
BACKUP_DIR="/var/backups/site"
SITE_DIR="/var/www/trans-pro.ru"
DB_NAME="wp_transpro"
# Архив файлов
tar -czf "$BACKUP_DIR/files_$DATE.tar.gz" -C "$SITE_DIR" .
# Дамп базы
mysqldump --single-transaction "$DB_NAME" | gzip > "$BACKUP_DIR/db_$DATE.sql.gz"
# Копия в облако
rclone copy "$BACKUP_DIR/files_$DATE.tar.gz" yandex:itfresh-backups/transpro/
rclone copy "$BACKUP_DIR/db_$DATE.sql.gz" yandex:itfresh-backups/transpro/
# Удаление бэкапов старше 14 дней
find "$BACKUP_DIR" -name "*.gz" -mtime +14 -delete
Чек-лист №6: защита от ботов и DDoS
На любой корпоративный сайт идёт постоянный паразитный трафик: боты-парсеры собирают контент, боты-сканеры ищут уязвимости, боты-брутфорсеры пытаются подобрать пароль к админке. На сайт средней руки это 10-50 тысяч лишних запросов в день, которые жгут ресурсы сервера и засоряют статистику.
Базовая защита, которая работает в 95% случаев:
- Cloudflare в режиме «under attack» при инциденте — снимает 99% ботов. Бесплатный тариф полностью покрывает потребности корпоративного сайта.
- fail2ban на сервере с правилами для nginx и WordPress: после 5 неудачных входов в админку — блокировка на час;
- Rate limiting в nginx: ограничение количества запросов с одного IP в секунду;
- Закрытие админки по IP: вход в /wp-admin/ или /bitrix/admin/ только с IP офиса и VPN, всем остальным — 403.
# Закрытие админки по IP в nginx
location ~ ^/wp-admin/ {
allow 213.227.x.x; # IP офиса
allow 188.130.x.x; # IP VPN АйТи Фреш
deny all;
try_files $uri $uri/ /index.php?$args;
}
Что мы в АйТи Фреш делаем для безопасности сайтов клиентов
Каждому клиенту, у которого есть корпоративный сайт, мы предлагаем включить его в стандартное обслуживание. Это означает:
- Еженедельная проверка обновлений CMS, плагинов, тем — применение в течение 24 часов после выхода;
- Ежедневный бэкап файлов и БД с дублированием в облако;
- Тестовое восстановление раз в квартал в изолированной среде;
- Мониторинг доступности сайта (Uptime Robot или аналог) с алертом инженеру в Telegram при падении более 1 минуты;
- Ежемесячный аудит безопасности через WPScan, ручная проверка логов на аномалии;
- SSL-сертификаты с автообновлением, контроль сроков;
- Реакция на инциденты (взлом, дефейс, попадание в чёрные списки) — в первый рабочий день, как правило, в течение 2-4 часов.
В составе абонентки на офисную инфраструктуру всё это идёт без доплаты для одного-двух сайтов клиента. Если у компании 5+ сайтов или сложный e-commerce — отдельный тариф от 8 000 руб./мес за сайт.
Бесплатный аудит безопасности вашего сайта
Я лично или один из моих инженеров проведёт экспресс-аудит безопасности вашего корпоративного сайта: проверим SSL, заголовки, актуальность CMS, наличие бэкапов и поищем явные следы компрометации. По результатам — письменный отчёт со списком проблем и оценкой стоимости их устранения. Бесплатно, без обязательств. Срок — 1-2 рабочих дня.
Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш
FAQ — частые вопросы по безопасности корпоративных сайтов
- Нужен ли HTTPS на корпоративном сайте, если он не принимает оплату?
- Да, обязательно. Во-первых, Google и Яндекс с 2019 года понижают сайты без HTTPS в выдаче. Во-вторых, без HTTPS любой провайдер или Wi-Fi точка может вставлять рекламу в ваш контент. В-третьих, форма обратной связи без HTTPS — это утечка персональных данных, штраф по 152-ФЗ от 60 000 руб.
- Можно ли разместить корпоративный сайт на том же сервере, что и 1С?
- Технически — да. На практике — категорически не стоит. Сайт смотрит в интернет, его регулярно сканируют боты на уязвимости. Если сайт взломают, злоумышленник окажется внутри сервера, где живёт ваша 1С с базой клиентов. Сайт надо размещать отдельно — на хостинге или на отдельной виртуалке.
- Что такое CSP-заголовок и зачем он нужен?
- Content Security Policy — заголовок, в котором сайт говорит браузеру, с каких доменов разрешено грузить скрипты, стили, картинки. Если злоумышленник внедрит на ваш сайт чужой скрипт-перехватчик форм, браузер просто откажется его выполнять. Это вторая линия защиты, которая работает даже если сайт уже взломали.
- Как часто надо обновлять CMS и плагины?
- WordPress, его плагины и темы — минимум раз в месяц, желательно раз в неделю. Битрикс — по мере выхода обновлений безопасности (раз в 2-4 недели). 90% взломов через CMS происходят из-за необновлённых плагинов с известными уязвимостями. Это самая частая причина дефейса корпоративных сайтов.
- Сколько стоит обслуживание корпоративного сайта в АйТи Фреш?
- Базовое сопровождение сайта на WordPress или Битрикс — от 8 000 руб./мес: обновления, мониторинг доступности, бэкапы, реакция на инциденты. В рамках абонентки на офисную инфраструктуру — без доплат. Восстановление взломанного сайта — от 18 000 руб.