Как защитить файловую базу 1С от копирования пользователями?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Проанализируем ситуацию, с которой часто сталкиваются системные администраторы и руководители небольших компаний. У нас есть файловая база данных 1С, и мы хотим предоставить сотрудникам доступ для работы, но при этом полностью исключить возможность хищения (копирования) файла базы данных на внешний носитель или отправки по сети. Рассмотрим подробнее несколько подходов к решению этой нетривиальной задачи, от самых надежных до дополнительных "параноидальных" мер безопасности.

Решение 1: Публикация файловой базы на веб-сервере (Оптимальный метод)

Разберем по шагам самый грамотный и технически правильный способ скрыть файл 1Cv8.1CD от глаз пользователей. Использование локального веб-сервера (IIS или Apache) решает проблему кардинально и бесплатно.

Механика защиты в этом случае выглядит так:

  1. Мы устанавливаем веб-сервер (например, IIS, который является встроенным компонентом Windows) на тот ПК, где физически лежит база данных.
  2. Служба веб-сервера работает от имени системной учетной записи. Именно ей мы даем полные права (NTFS) на чтение и запись в папку с файловой базой.
  3. Для обычных пользователей Windows мы полностью закрываем доступ к папке с базой данных (запрет на чтение, запись и просмотр содержимого).
  4. Публикуем базу 1С на веб-сервере.
  5. Пользователи запускают тонкий клиент 1С или используют обычный веб-браузер, подключаясь к базе по протоколу HTTP/HTTPS.

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

Решение 2: Запуск 1С от имени другого пользователя (Метод с RunAs)

Посмотрим на альтернативный подход, если по каким-то причинам развертывание веб-сервера невозможно. Мы можем использовать встроенную в Windows утилиту runas для подмены контекста безопасности.

Проанализируем этот алгоритм:

  1. Создаем в Windows нового скрытого пользователя, например, InfobaseUser. Задаем ему сложный пароль.
  2. Настраиваем права NTFS на папку с базой: даем полный доступ только пользователю InfobaseUser и локальному администратору. У пользователей, под которыми сотрудники заходят в Windows, права на папку отбираются полностью.
  3. Создаем специальный .bat файл, который будет запускать платформу 1С от имени этого скрытого пользователя. Код будет выглядеть примерно так: runas /user:InfobaseUser /savecred "C:\Program Files\1cv8\common\1cestart.exe"
  4. Параметр /savecred позволяет ввести пароль скрытого пользователя только один раз (при первом запуске батника от имени администратора), после чего учетные данные сохраняются в системе, и пользователи не будут знать этот пароль.
  5. Для защиты самого скрипта, этот bat-файл можно конвертировать в исполняемый .exe файл (используя утилиты вроде Bat-to-Exe Converter).

В итоге, при попытке открыть папку через Проводник, система выдаст ошибку доступа. Однако запущенная через наш ярлык 1С будет иметь доступ к базе и работать корректно.

Решение 3: Блокировка выгрузки данных внутри 1С

Выясним причину, почему одной изоляции файла недостаточно. Если пользователь запустил 1С, у него появляются возможности извлечь данные уже средствами самой платформы. Чтобы закрыть эти дыры, нам необходимо тщательно настроить конфигурацию и права.

Рассмотрим, что именно нужно отключить в режиме Конфигуратора:

  1. Меню "Файл" и диалоги: Снимите у пользователей права Интерактивное сохранение и Вывод. Это заблокирует возможность сохранять списки документов, отчеты или табличные части в Excel или текстовые файлы.
  2. Внешние обработки: Обязательно отключите право на использование внешних отчетов и обработок. Обладая этим правом, злоумышленник может скачать простую обработку из интернета и программно скопировать файл базы, используя функцию: ФС.КопироватьФайл(ИмяФайлаИсточника, ИмяФайлаПриемника, ФлагПерезаписи);
  3. Табло и вычисления: Запретите доступ к "Табло", чтобы пользователи не могли выполнять произвольный код 1С прямо в режиме Предприятия.

Риски "горячего" копирования базы

Проанализируем важный технический нюанс, о котором часто забывают. Сама платформа 1С накладывает транзакционные блокировки при работе пользователей. Блокировки таблиц сохраняются в служебном файле 1cv8.1CL. Если пользователь попытается "наживую" скопировать основной файл 1Cv8.1CD средствами операционной системы в тот момент, когда в базе работают другие люди или идут регламентные задания, он, скорее всего, получит поврежденную базу.

В такой "битой" копии часть данных будет относиться к моменту до транзакции, а часть — после. Восстановить такую базу даже с помощью утилиты `chdbfl.exe` бывает очень сложно. Это естественный сдерживающий фактор, но полагаться только на него нельзя.

Дополнительные меры безопасности

Если мы хотим выстроить по-настоящему надежную инфраструктуру, рассмотрим дополнительные методы защиты на уровне железа и ОС:

Используя комплексный подход, совмещающий веб-сервер (или изоляцию через `runas`) и тонкую настройку прав внутри 1С, мы можем практически гарантированно защитить файловую базу от несанкционированного копирования.

← На главную