Проверка целостности файлов Битрикс: как найти изменённые и лишние файлы
Проверка целостности файлов Битрикс помогает понять, какие файлы ядра и шаблона изменены, а какие появились лишними. Практический результат — таблица сверки с путями, эталоном, статусом, датой и решением, собранная на копии сайта. Действовать на продакшене без резервной копии и плана возврата нельзя.
Прямой ответ и границы задачи
Проверка целостности файлов Битрикс — это сравнение текущего состояния файлов с эталоном. Эталоном может быть дистрибутив той же версии, ранее снятая копия или верификационный файл, собранный штатным инструментом контроля целостности. Сравнение показывает три категории: файлы без изменений, изменённые файлы и лишние файлы, которых в эталоне не было.
Задача владельца или руководителя проекта — получить доказательства и решения, а не «починить всё сразу». Границы диагностики: работать на копии, не править ядро на работающем сайте, не отключать защиту ради удобства проверки. Если сайт заражён или под подозрением на вмешательство, сначала изолируют копию, затем исследуют.
Штатный инструмент контроля целостности недоступен в редакциях «Старт» и «Начало». Если инструмент недоступен, эталон собирают вручную: копия дистрибутива, архив файлов из резервной копии, снимок из системы контроля версий, если проект вёлся в репозитории. Способ проверки выбирают по доступным данным и критичности сайта.
Результат проверки — не приговор, а карта. Изменённый файл может быть штатной доработкой, а лишний — забытым тестовым скриптом. Решение по каждому пункту принимает ответственный: разработчик, администратор или подрядчик, а утверждает владелец проекта. Устранение найденного — отдельный объём работ, который планируют после диагностики.
Исходные данные и ответственные
До начала проверки фиксируют входные данные. Без них сверка превращается в спор о том, что считать нормой.
- Версия продукта и редакция: от них зависит доступность штатного инструмента контроля целостности.
- Список доработок: какие файлы ядра и шаблона правились штатно, кем и когда.
- Резервная копия файлов и базы, снятая до начала работ.
- Доступ к копии сайта, а не к продакшену, для всех операций сравнения.
- Перечень сторонних модулей и решений, установленных из Marketplace.
- Журнал работ подрядчиков: даты, задачи, зоны изменений.
Ответственные распределяются так. Владелец проекта утверждает границы и приоритеты. Администратор или DevOps готовит копию и доступы. Разработчик собирает эталон, выполняет сверку и готовит таблицу. Специалист по безопасности подключается, если есть признаки вмешательства. Юридические и персональные данные в ходе проверки не анализируют — это отдельная задача с профильным специалистом.
Если журнал доработок отсутствует, это само по себе риск. В таком случае эталон собирают из дистрибутива, а все расхождения помечают как требующие подтверждения у разработчиков. Нельзя считать изменённый файл безопасным только потому, что сайт работает.
Варианты и критерии выбора
Способ проверки выбирают по ситуации. Ниже — сравнение вариантов, которое помогает принять решение до начала работ.
| Вариант | Когда подходит | Что нужно | Ограничения | Риск для продакшена |
|---|---|---|---|---|
| Штатный контроль целостности | Есть доступ к нужной редакции и ранее собранный верификационный файл | Пароль, ключевое слово, файл с верификационными данными | Недоступен в некоторых редакциях; требует аккуратной настройки шага | Низкий при работе на копии |
| Сверка с дистрибутивом | Нет верификационного файла, но известна версия продукта | Дистрибутив той же версии, копия сайта | Сторонние модули и доработки дают много расхождений, требуется фильтрация | Низкий на копии |
| Сверка с резервной копией | Есть архив до подозрительного периода | Архив файлов, копия текущего состояния | Копия может быть старой и не отражать штатные обновления или доработки | Низкий на копии |
| Сверка с репозиторием | Проект вёлся в системе контроля версий | Репозиторий, ветка, коммиты | Не все файлы могли попадать в репозиторий | Низкий на копии |
| Ручной обход по датам | Точечная проверка после работ подрядчика | Список зон, доступ к файловой системе копии | Не даёт полной картины, легко пропустить файл | Высокий, если делать на проде |
Критерии выбора: наличие эталона, доступность штатного инструмента, критичность сайта, объём доработок. Если сайт небольшой и доработок мало, хватает сверки с дистрибутивом. Если проект крупный и с историей, надёжнее репозиторий или верификационный файл. Комбинировать способы допустимо: один даёт базу, другой уточняет спорные зоны.
Предметная последовательность действий
Порядок работ строится так, чтобы не потерять данные и не создать новую проблему.
Сначала снимают резервную копию файлов и базы. Копию разворачивают в изолированном окружении, отдельно от продакшена. Все дальнейшие действия выполняют только на ней. Если копию развернуть нельзя, проверку откладывают до появления подходящего окружения.
Затем собирают эталон. Для штатного инструмента это означает сбор информации по файлам: указывают области, расширения и пароль для шифрования, а по завершении скачивают верификационный файл на локальный компьютер. Для ручной сверки эталон — это распакованный дистрибутив или архив, соответствующий версии сайта.
Далее выполняют сравнение. Фиксируют путь, эталонное состояние, текущее состояние, дату изменения и предполагаемое решение. Спорные файлы не удаляют и не правят сразу — их помечают и передают на подтверждение.
После сверки готовят отчёт: таблица, краткое резюме, приоритеты. Решения по каждому пункту согласуют с владельцем. Устранение планируют отдельно, с тестом и планом возврата. Если в ходе проверки обнаружены признаки вмешательства, дальнейшие шаги согласуют со специалистом по безопасности.
Матрица проверок
Матрица помогает не пропустить зоны и заранее определить, что считать нормой.
| Зона | Что проверяем | Признак нормы | Признак отклонения | Кто подтверждает |
|---|---|---|---|---|
| Ядро продукта | Файлы системных модулей | Совпадают с дистрибутивом или верификационным файлом | Изменения без записи в журнале доработок | Разработчик |
| Шаблон сайта | Файлы шаблона и компонентов | Соответствуют согласованным доработкам | Лишние файлы, неизвестные скрипты | Разработчик |
| Публичная часть | Страницы и разделы | Соответствуют структуре сайта | Файлы вне структуры, скрытые каталоги | Администратор |
| Загрузки и обмен | Каталоги загрузки, обмена, логов | Только ожидаемые типы файлов | Исполняемые файлы там, где их быть не должно | Администратор |
| Сторонние модули | Установленные решения | Совпадают с поставкой вендора | Правки без документации | Разработчик |
Матрица не заменяет полную сверку, но задаёт рамки. По каждой зоне заранее договариваются, какие изменения считаются штатными. Если по зоне нет ответственного, её проверяют в последнюю очередь и помечают как зону риска.
Учебный пример
Учебный пример. Компания с условным сайтом на Битрикс после обновления и работ подрядчика замечает нестабильность. Данные о компании и количестве объектов условны.
Входные условия: есть резервная копия недельной давности, журнал доработок велся неполно, штатный инструмент контроля целостности недоступен в используемой редакции. Продакшен трогать нельзя. Ответственный — администратор, утверждает решения владелец проекта.
Действия. Администратор разворачивает копию сайта в отдельном окружении. Разработчик распаковывает дистрибутив той же версии и сравнивает файлы ядра. Отдельно сверяет шаблон с архивом резервной копии. Результаты сводит в таблицу: путь, эталон, статус, дата, решение.
Наблюдаемый результат: несколько файлов ядра изменены, часть совпадает с записями в журнале доработок, часть — нет. В каталоге загрузок найдены файлы, которых не было в резервной копии. По каждому пункту проставлен статус: подтверждено, требует уточнения, лишнее. Спорные файлы не удалены, а изолированы на копии.
Проверка результата: таблица сверки передана владельцу, по каждому пункту есть ответственный и решение. Устранение запланировано отдельным этапом с тестом на копии и планом возврата. Продакшен не изменялся. Если бы обнаружились признаки вмешательства, работу продолжил бы специалист по безопасности.
Чек-лист приёмки
- Резервная копия файлов и базы снята и проверена на восстановление.
- Все операции сравнения выполнены на копии, а не на продакшене.
- Эталон зафиксирован: дистрибутив, архив или верификационный файл.
- Таблица сверки содержит путь, эталон, статус, дату и решение.
- Изменённые файлы ядра сопоставлены с журналом доработок.
- Лишние файлы описаны и изолированы, а не удалены без подтверждения.
- По каждому пункту назначен ответственный и решение.
- Устранение вынесено в отдельный этап с тестом и планом возврата.
- Отчёт с доказательствами передан владельцу проекта.
- Признаки вмешательства переданы специалисту по безопасности.
Ограничения и типичные ошибки
Первая ошибка — проверять продакшен напрямую. Любое сравнение и удаление на работающем сайте создаёт риск. Правильный порядок: копия, резервная копия, тест, план возврата.
Вторая ошибка — считать любое изменение вредоносным. Штатные доработки тоже меняют файлы. Без журнала работ и подтверждения разработчика нельзя отличить норму от отклонения.
Третья ошибка — удалять лишние файлы сразу. Сначала их описывают, изолируют и согласуют решение. Иначе можно сломать обмен, интеграцию или отложенную задачу.
Четвёртая ошибка — игнорировать ограничения редакции. Штатный инструмент контроля целостности доступен не везде, и это указано в документации. Если инструмента нет, выбирают другой способ сверки, а не отключают защиту.
Пятая ошибка — смешивать диагностику и устранение. Проверка целостности файлов Битрикс даёт картину, а исправление — отдельный объём с приоритетами и тестами. Если нужен более широкий взгляд на проект, полезен технический аудит сайта на 1С-Битрикс, а для приёмки работ подрядчика — Аудит кода Битрикс: как проверить проект и принять работу.
Как оформить таблицу сверки
Таблица сверки — главный артефакт проверки. Она должна читаться без пояснений и позволять принять решение по каждому пункту.
Колонки: путь к файлу, эталон, статус, дата изменения, решение, ответственный. Статусы: без изменений, изменён, лишний, требует уточнения. Решения: оставить, вернуть к эталону, изолировать, передать на анализ.
| Путь | Эталон | Статус | Дата | Решение | Ответственный |
|---|---|---|---|---|---|
| Ядро, системный модуль | Дистрибутив | Изменён | Дата правки | Вернуть к эталону после подтверждения | Разработчик |
| Шаблон, файл компонента | Резервная копия | Изменён | Дата правки | Оставить как штатную доработку | Разработчик |
| Каталог загрузок | Резервная копия | Лишний | Дата появления | Изолировать на копии | Администратор |
| Публичная часть, скрытый каталог | Эталон отсутствует | Требует уточнения | Дата появления | Передать на анализ | Специалист по безопасности |
| Сторонний модуль | Поставка вендора | Изменён | Дата правки | Уточнить у вендора | Разработчик |
Таблицу ведут в одном файле, чтобы не расползались версии. Даты фиксируют по факту, а не по памяти. Если данных нет, ставят пометку и возвращаются к пункту после уточнения. Такой формат удобен и для внутреннего контроля, и для передачи подрядчику.
Что делать после проверки
После проверки формируют план действий. Сначала закрывают пункты с высоким приоритетом: изменения в ядре без подтверждения, исполняемые файлы в неожиданных местах, скрытые каталоги. Затем — штатные доработки, которые нужно задокументировать. В конце — лишние файлы, которые можно изолировать.
Каждое действие выполняют на копии, проверяют и только потом переносят на продакшен по согласованному плану. План возврата готовят заранее: если после изменения сайт работает неверно, возвращаются к резервной копии.
Документирование доработок снижает риск повторения ситуации. Если изменения фиксируют в журнале, следующая проверка целостности файлов Битрикс проходит быстрее и спокойнее. Для регулярного контроля полезно заранее определить периодичность и ответственного.
Если проект сложный и затрагивает несколько зон, разумно опираться на Аудит сайта на Битрикс: как проходит и что вы получите как на общую рамку, а проверку целостности проводить как отдельный этап. При подборе исполнителя помогает понимание, какие вопросы задавать: Собеседование Битрикс-разработчика: вопросы, практические задания и критерии оценки описывает практические критерии оценки.
Как выбрать периодичность и ответственного
Периодичность зависит от частоты изменений и критичности сайта. Если обновления и работы подрядчиков идут регулярно, проверку планируют после каждого значимого этапа. Если сайт стабилен, достаточно плановой проверки по согласованному графику.
Ответственный — не обязательно один человек. Администратор готовит копию и доступы, разработчик выполняет сверку, владелец утверждает решения. Важно, чтобы у каждого пункта таблицы был один ответственный за закрытие.
Критерий готовности: по каждому расхождению есть решение и подтверждение. Пока пункт не закрыт, он остаётся в таблице. Это дисциплинирует и не даёт потерять находки.
Можно ли провести проверку целостности файлов Битрикс на работающем сайте?
Сравнение лучше выполнять на копии. На продакшене допустимы только безопасные операции чтения, если они согласованы. Любые изменения, удаление или правка файлов на работающем сайте создают риск и требуют резервной копии и плана возврата.
Что делать, если штатный инструмент контроля целостности недоступен?
Выбрать другой эталон: дистрибутив той же версии, архив резервной копии или репозиторий. Сверку проводить на копии, фиксируя путь, эталон, статус, дату и решение в таблице.
Как отличить штатную доработку от подозрительного изменения?
Сопоставить файл с журналом работ и подтверждением разработчика. Если записи нет, файл помечают как требующий уточнения и не удаляют до выяснения. Признаки вмешательства передают специалисту по безопасности.
Можно ли удалять лишние файлы сразу после обнаружения?
Нет. Сначала файл описывают, изолируют на копии и согласуют решение. Удаление без подтверждения может сломать обмен, интеграцию или отложенную задачу.
Заменяет ли проверка целостности полноценный аудит проекта?
Нет. Проверка целостности отвечает на вопрос о состоянии файлов. Более широкие вопросы — производительность, безопасность, обмен, выпуск изменений — рассматриваются отдельно, например в рамках технического аудита.
Кто утверждает решения по найденным расхождениям?
Владелец проекта или уполномоченный руководитель. Разработчик и администратор готовят данные и варианты, но приоритеты и решения по рискам утверждает ответственный за проект.
Учебный разбор: сверка файлов ядра и шаблона с эталоном
Учебный разбор. Условный сайт на «1С-Битрикс: Управление сайтом», редакция с доступным штатным контролем целостности. Есть копия сайта, снятая до работ, и список штатных доработок: правки в шаблоне компонента и один добавленный служебный файл. Требуется получить таблицу сверки по трём категориям файлов, не затрагивая боевой контур.
| Действие | Что проверить |
|---|---|
| На копии собрать верификационный файл по выбранным областям (ядро, системные области, публичная часть) с заданными расширениями и сохранить его как эталон текущего состояния. | Получен зашифрованный верификационный файл; в отчёте сбора видно, какие папки и расширения обработаны. |
| Сверить собранный эталон с ранее снятой копией дистрибутива той же версии и с перечнем штатных доработок: отметить файлы без изменений, изменённые и лишние. | Сформирован черновой список из трёх категорий; у каждого изменённого файла указано, входит ли он в список штатных доработок. |
| По каждому спорному пункту открыть файл на копии и сопоставить его содержимое с ожидаемым: подтвердить штатную доработку, тестовый скрипт или неизвестное изменение. | Для каждой строки проставлен статус и предварительное решение: оставить, вернуть к эталону, удалить или передать на разбор ответственному. |
Для приёмки. Таблица сверки с путями, эталоном, категорией (без изменений, изменён, лишний), датой, статусом и решением по каждому пункту; отдельно зафиксированы пароль и ключевое слово скрипта контроля и место хранения эталонного файла.
Ограничение. Разбор применим только к редакциям, где доступен штатный контроль целостности; он не заменяет антивирусную проверку и не подтверждает отсутствие вредоносного кода. Устранение найденного — отдельный объём работ после диагностики.