Контроль целостности файлов позволяет вовремя обнаружить несанкционированные изменения в файлах сайта — внедрённые веб-шеллы, изменённое ядро или подмену шаблонов. Инструмент фиксирует эталонное состояние и сравнивает его с текущим.
Что такое контроль целостности и зачем он нужен
Контроль целостности файлов — это механизм, который вычисляет контрольные суммы (хеши) файлов сайта и сохраняет их в эталонный слепок. При последующих проверках система заново считает суммы и сравнивает их с эталоном.
Любое расхождение означает одно из трёх событий:
- Файл изменён — например, в него внедрён вредоносный код или бэкдор.
- Файл добавлен — появился новый файл, которого не было в слепке (частый признак загруженного веб-шелла).
- Файл удалён — исчез файл, присутствовавший в эталоне.
Механизм особенно полезен после инцидентов, при подозрении на взлом, а также как регулярная профилактическая проверка. Он не защищает от проникновения, но позволяет быстро обнаружить факт компрометации и локализовать заражённые файлы.
Где находится инструмент в админке
Инструмент контроля целостности входит в модуль проактивной защиты. Чтобы открыть его:
- Войдите в административную часть сайта.
- Перейдите в Настройки → Проактивная защита → Контроль целостности (
/bitrix/admin/security_filter.phpотносится к WAF, а контроль целостности открывается по адресуsecurity_check_files.php). - На странице отображаются кнопки создания слепка и запуска проверки, а также сведения о последнем эталоне.
Для доступа у пользователя должны быть права на управление модулем security. Обычно эти права есть у администраторов сайта.
Создание эталонного слепка
Эталонный слепок нужно создавать в момент, когда вы уверены в чистоте файловой системы — сразу после установки, обновления или проверки антивирусом.
- Откройте страницу контроля целостности.
- Задайте область проверки — по умолчанию сканируется весь каталог сайта. Можно исключить временные каталоги (
/upload/, кеш) через параметры. - Укажите алгоритм подписи. Рекомендуется использовать подпись слепка ключом, чтобы файл контрольных сумм нельзя было подменить.
- Нажмите Собрать данные о файлах (создать слепок). Система обойдёт файловую систему и посчитает хеши.
- По завершении сохраните полученный файл контрольных сумм. Его можно хранить как на сервере, так и выгрузить локально.
Слепок содержит путь к каждому файлу, его размер и контрольную сумму. Чем полнее область охвата, тем надёжнее контроль, но тем дольше выполняется проверка.
Проведение проверки целостности
Проверка сравнивает текущее состояние файлов с ранее созданным слепком.
- Откройте раздел Контроль целостности.
- Выберите ранее сохранённый файл эталона (слепок) или загрузите его с локального компьютера.
- Нажмите Проверить. Система пересчитает суммы и сформирует отчёт.
- Изучите отчёт: изменённые, добавленные и удалённые файлы выводятся отдельными списками.
Результаты удобно трактовать по таблице:
| Статус | Что означает | Действие |
|---|---|---|
| Изменён | Содержимое файла отличается от эталона | Сверить с оригиналом, проверить на веб-шелл |
| Добавлен | Файла не было в слепке | Убедиться, что файл легитимен |
| Удалён | Файл присутствовал в слепке, но исчез | Проверить, не удалён ли важный компонент |
После планового обновления сайта многие изменения будут ожидаемыми — в этом случае слепок пересоздают заново.
Как разбирать результаты и отличать легитимные изменения
Не каждое расхождение — признак взлома. Чтобы отличить безопасные изменения от опасных, придерживайтесь порядка:
- Файлы кеша, логов, загрузок. Каталоги
/bitrix/cache/,/bitrix/managed_cache/,/upload/меняются постоянно. Их изменения ожидаемы, поэтому такие пути обычно исключают из области проверки. - Ядро системы. Изменения в
/bitrix/modules/вне обновлений крайне подозрительны — ядро не должно правиться вручную. - PHP-файлы в каталогах загрузок. Появление
.phpв/upload/почти всегда указывает на загруженный шелл. - Точечные вставки в начале или конце файла. Обфусцированный код,
eval,base64_decode, длинные строки — типичные признаки внедрения.
Подозрительные файлы дополнительно проверьте Сканером безопасности и веб-антивирусом, а события зафиксируйте в журнале вторжений.
Регулярность проверок и автоматизация
Единичная проверка малополезна — ценность контроля целостности в регулярности.
- Пересоздавайте слепок после каждого планового обновления платформы, модулей и шаблонов.
- Запускайте проверку по расписанию — вручную не реже раза в неделю, а при высоких требованиях к безопасности — ежедневно.
- Храните копию слепка вне сайта, чтобы злоумышленник не смог подменить эталон вместе с файлами.
- Совмещайте контроль целостности с резервным копированием — так вы сможете не только обнаружить, но и восстановить чистую версию файлов.
Автоматизацию удобно строить на агенте или задании планировщика cron, который инициирует проверку и уведомляет администратора о расхождениях.
Частые ошибки
Ниже — типичные проблемы, из-за которых контроль целостности работает не так, как ожидается.
- Слепок создан на уже взломанном сайте. Тогда вредоносные файлы попадут в эталон как «легитимные». Создавайте слепок только на заведомо чистой системе.
- В область проверки включены изменяемые каталоги. Кеш и загрузки дают тысячи ложных срабатываний. Исключайте их заранее.
- Слепок хранится рядом с сайтом и не подписан. Злоумышленник подменит и файлы, и эталон. Используйте подпись ключом и внешнее хранение.
- Слепок не обновляют после апдейтов. Каждое обновление порождает лавину изменений, отчёт становится нечитаемым, и реальные угрозы теряются в шуме.
- Проверку запускают только после инцидента. Без регулярности момент компрометации остаётся незамеченным неделями.
- Расхождения игнорируются. Отчёт бесполезен, если по нему не разбирают каждое изменение до понятной причины.
Итог
Контроль целостности файлов — простой и надёжный способ вовремя заметить компрометацию сайта на 1С-Битрикс. Он не предотвращает атаку, но позволяет обнаружить её следы и локализовать заражённые файлы.
Чтобы инструмент приносил пользу:
- Создавайте слепок только на чистой системе и подписывайте его.
- Исключайте изменяемые каталоги из области проверки.
- Пересоздавайте эталон после каждого обновления.
- Проверяйте регулярно и разбирайте каждое расхождение.
В связке с проактивной защитой, сканером безопасности и резервным копированием контроль целостности становится частью полноценной системы защиты сайта.