При продаже тиражных решений или заказной разработки на платформе 1С часто возникает необходимость показать функционал потенциальному клиенту. Если конфигурация написана на обычных формах, мы не можем просто опубликовать её на веб-сервере, как это делается с управляемыми формами. В этой ситуации стандартным решением становится использование терминального доступа. Однако возникает критический вопрос безопасности: как показать программу, но при этом исключить любую возможность копирования базы или программного кода? Рассмотрим комплексный подход к настройке демонстрационного сервера, сочетающий системное администрирование и внутренние настройки платформы 1С.
Разберем, какой способ организации подключения будет наиболее предпочтительным. Обычный полноценный рабочий стол по протоколу RDP дает пользователю слишком много свободы. Даже с ограниченными правами в Windows клиент видит панель задач, кнопку «Пуск» и может пытаться запустить проводник.
Проанализируем преимущества технологии RemoteApp. В этом режиме пользователь видит только окно программы 1С, которое ведет себя как локальное приложение. У него нет доступа к рабочему столу сервера. Это значительно снижает риск того, что клиент сможет «вылезти» из программы в файловую систему сервера. Однако стоит помнить, что RemoteApp — это не панацея, а лишь первый эшелон защиты. Программные ошибки или стандартные диалоговые окна 1С все равно могут предоставить доступ к файловой системе, поэтому перейдем к более глубоким настройкам.
Выясним, какие настройки операционной системы помогут нам «зацементировать» окружение. Для учетной записи, под которой будет заходить клиент, необходимо создать отдельную организационную единицу (OU) в Active Directory или настроить локальные политики безопасности.
1cv8.exe. Даже если клиент найдет способ вызвать командную строку или PowerShell, система заблокирует их запуск.Посмотрим на ситуацию со стороны платформы 1С. Даже если сервер настроен идеально, сама программа может стать инструментом для кражи данных. В обычных формах механизмы взаимодействия с файлами очень развиты. Разберем шаги по минимизации рисков внутри конфигурации.
Ограничение прав доступа (Роли). Создадим специальную роль «ДемоПользователь». В этой роли для всех объектов метаданных нужно крайне аккуратно настроить права. Самое важное — обратить внимание на право Вывод (Output). Если это право активно, клиент сможет сохранить любой отчет, список справочника или документа в формате Excel, PDF или MXL на сервер, а оттуда попытаться передать их вовне. Обязательно отключим это право для всех объектов в демо-базе.
Рассмотрим пример того, как программно можно дополнительно ограничить действия пользователя при начале работы системы. В модуле обычного приложения можно добавить проверку:
Процедура ПриНачалеРаботыСистемы()
// Блокируем возможность интерактивного открытия внешних обработок
УстановитьБезопасныйРежим(Истина);
// Дополнительные проверки прав или окружения
Если РольДоступна("ДемоРоль") Тогда
// Можно принудительно скрыть пункты меню, если они не заблокированы ролями
КонецЕсли;
КонецПроцедуры
Проанализируем ситуацию: что если клиент — технический специалист, который хочет получить именно ваш код? В обычных формах код часто выполняется на стороне клиента, что делает его уязвимым.
а1_(), а2_(), разобраться в которых практически невозможно.Выясним, какие еще способы защиты могут остановить злоумышленника.
Shadowing (Теневое копирование сессии). Настроим возможность подключения администратора к активной сессии пользователя в режиме просмотра. Это позволит в реальном времени наблюдать за действиями клиента. Если вы видите подозрительную активность (постоянные попытки зайти в меню «Файл», открытие структуры конфигурации через справку и т.д.), сессию можно прервать мгновенно.
Водяные знаки (Watermarking). Существуют специализированные программные решения для терминальных серверов, которые накладывают на экран пользователя полупрозрачный текст с его логином, IP-адресом и датой. Это не защитит от технического копирования, но станет мощным психологическим барьером против фотографирования экрана на телефон или захвата видео.
Очистка данных. Никогда не используйте реальную базу данных клиента для демонстрации. Подготовьте «рыбу» — заполните базу вымышленными контрагентами, товарами и операциями. Это обезопасит вас от претензий по поводу утечки персональных данных или коммерческой тайны существующих клиентов.
Подводя итог, скажем: идеальной защиты не существует, но, комбинируя технологию RemoteApp, строгие групповые политики Windows, ограничение прав внутри 1С и обфускацию кода, мы создаем среду, в которой стоимость взлома для клиента значительно превышает стоимость покупки легальной копии вашей конфигурации.