Как безопасно настроить сервер для демонстрации конфигураций 1С на обычных формах

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

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

Выбор технологии доступа: RDP против RemoteApp

Разберем, какой способ организации подключения будет наиболее предпочтительным. Обычный полноценный рабочий стол по протоколу RDP дает пользователю слишком много свободы. Даже с ограниченными правами в Windows клиент видит панель задач, кнопку «Пуск» и может пытаться запустить проводник.

Проанализируем преимущества технологии RemoteApp. В этом режиме пользователь видит только окно программы 1С, которое ведет себя как локальное приложение. У него нет доступа к рабочему столу сервера. Это значительно снижает риск того, что клиент сможет «вылезти» из программы в файловую систему сервера. Однако стоит помнить, что RemoteApp — это не панацея, а лишь первый эшелон защиты. Программные ошибки или стандартные диалоговые окна 1С все равно могут предоставить доступ к файловой системе, поэтому перейдем к более глубоким настройкам.

Настройка групповых политик (GPO) и ограничение среды

Выясним, какие настройки операционной системы помогут нам «зацементировать» окружение. Для учетной записи, под которой будет заходить клиент, необходимо создать отдельную организационную единицу (OU) в Active Directory или настроить локальные политики безопасности.

  1. Запрет маппинга ресурсов. В настройках RDP-сессии на стороне сервера принудительно отключим проброс локальных дисков клиента, буфера обмена, COM-портов и LPT-портов. Это блокирует самый простой путь: «Скопировать файл 1CD — Вставить на свой диск».
  2. Использование AppLocker или Software Restriction Policies (SRP). Это критически важный шаг. Настроим белый список разрешенных приложений. В этом списке должен быть только один исполняемый файл — 1cv8.exe. Даже если клиент найдет способ вызвать командную строку или PowerShell, система заблокирует их запуск.
  3. Скрытие дисков. Через групповые политики включим опцию «Скрыть выбранные диски в окне Мой компьютер». Это усложнит навигацию, если пользователь все же доберется до диалога открытия файла.

Уязвимости внутри 1С: блокируем утечки данных

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

Ограничение прав доступа (Роли). Создадим специальную роль «ДемоПользователь». В этой роли для всех объектов метаданных нужно крайне аккуратно настроить права. Самое важное — обратить внимание на право Вывод (Output). Если это право активно, клиент сможет сохранить любой отчет, список справочника или документа в формате Excel, PDF или MXL на сервер, а оттуда попытаться передать их вовне. Обязательно отключим это право для всех объектов в демо-базе.

Рассмотрим пример того, как программно можно дополнительно ограничить действия пользователя при начале работы системы. В модуле обычного приложения можно добавить проверку:


Процедура ПриНачалеРаботыСистемы()
    // Блокируем возможность интерактивного открытия внешних обработок
    УстановитьБезопасныйРежим(Истина);
    
    // Дополнительные проверки прав или окружения
    Если РольДоступна("ДемоРоль") Тогда
        // Можно принудительно скрыть пункты меню, если они не заблокированы ролями
    КонецЕсли;
КонецПроцедуры

Защита программного кода и интеллектуальной собственности

Проанализируем ситуацию: что если клиент — технический специалист, который хочет получить именно ваш код? В обычных формах код часто выполняется на стороне клиента, что делает его уязвимым.

  1. Поставка без исходных текстов. Для демо-версии подготовим специальную сборку. В настройках конфигурации можно выгрузить файлы с удалением исходных текстов модулей. Однако помните, что для обычных форм это может привести к ошибкам, если модули объектов или форм содержат критичную логику, которая должна выполняться. Тщательно протестируйте такую базу.
  2. Обфускация кода. Используем сторонние утилиты-обфускаторы для запутатывания модулей. Даже если клиент сможет выгрузить текст модуля, он увидит набор бессмысленных символов и функций типа а1_(), а2_(), разобраться в которых практически невозможно.
  3. Вынос логики в защищенные компоненты. Если у вас есть уникальные алгоритмы расчета, их можно вынести в скомпилированные DLL-библиотеки или запрашивать результат через веб-сервис, расположенный на другом вашем сервере. Демо-база будет лишь визуализировать результат, не имея внутри самого алгоритма.

Дополнительные меры предосторожности

Выясним, какие еще способы защиты могут остановить злоумышленника.

Shadowing (Теневое копирование сессии). Настроим возможность подключения администратора к активной сессии пользователя в режиме просмотра. Это позволит в реальном времени наблюдать за действиями клиента. Если вы видите подозрительную активность (постоянные попытки зайти в меню «Файл», открытие структуры конфигурации через справку и т.д.), сессию можно прервать мгновенно.

Водяные знаки (Watermarking). Существуют специализированные программные решения для терминальных серверов, которые накладывают на экран пользователя полупрозрачный текст с его логином, IP-адресом и датой. Это не защитит от технического копирования, но станет мощным психологическим барьером против фотографирования экрана на телефон или захвата видео.

Очистка данных. Никогда не используйте реальную базу данных клиента для демонстрации. Подготовьте «рыбу» — заполните базу вымышленными контрагентами, товарами и операциями. Это обезопасит вас от претензий по поводу утечки персональных данных или коммерческой тайны существующих клиентов.

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

← На главную