Вопрос обеспечения безопасности при привлечении удаленного разработчика 1С является критически важным для любого бизнеса. Основная сложность заключается в поиске баланса: с одной стороны, необходимо защитить коммерческую тайну и персональные данные, с другой — предоставить программисту полноценный инструментарий для качественного выполнения задач. Работа через AnyDesk или аналоги часто оказывается неудобной из-за задержек и невозможности параллельной работы. Рассмотрим, как выстроить профессиональную и защищенную среду разработки.
Первым делом проанализируем сетевой уровень. Открывать стандартный порт RDP (3389) наружу крайне небезопасно — это создает риск брутфорс-атак (перебора паролей). Профессиональным стандартом является использование VPN-туннеля.
Разберем по шагам, как это реализовать:
Для того чтобы разработчик не имел доступа к рабочим базам, даже находясь на сервере, рекомендуется разделить сервер 1С на два независимых кластера. Выясним, как это помогает безопасности:
Мы можем запустить второй экземпляр службы Агент сервера 1С:Предприятия на других портах (например, вместо стандартного 1540 использовать 1640). Настроим это следующим образом:
rphost с отдельными параметрами запуска.Преимущество: Разработчик сможет управлять базами только в своем кластере. Он не будет видеть список рабочих баз и не сможет к ним подключиться, так как они работают под управлением другого процесса ragent.
Проанализируем ситуацию с доступом к файлам. Одной настройки 1С недостаточно. Программист, имея доступ по RDP, теоретически может просматривать папки на дисках. Чтобы этого избежать, используем штатные средства Windows (NTFS):
.dt, .bak) и рабочими каталогами баз.Exchange и каталогу, где развернута тестовая база.Часто для разработки не требуются актуальные данные за текущий день. Рассмотрим методы минимизации объема передаваемой информации:
Свертка базы: Используйте типовую обработку «Свертка информационной базы». Она позволяет удалить документы до определенной даты, оставив только остатки. Это уменьшит размер базы и скроет историю операций.
Обфускация (обезличивание): Если данные чувствительны, воспользуйтесь специализированными обработками для удаления персональных данных. Рассмотрим пример логики, которую можно реализовать для очистки контактов:
Процедура ОбезличитьКонтрагентов()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Справочник.Контрагенты";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Объект = Выборка.Ссылка.ПолучитьОбъект();
Объект.Наименование = "Клиент " + СокрЛП(Объект.Код);
Объект.НаименованиеПолное = "Обезличенное лицо №" + СокрЛП(Объект.Код);
Объект.ИНН = "0000000000";
Объект.Записать();
КонецЦикла;
КонецПроцедуры
Такой подход позволяет разработчику видеть структуру данных и связи, но не реальные фамилии или финансовые показатели.
Если вы хотите максимально обезопасить данные, рассмотрите работу через 1С:Enterprise Development Tools (EDT). Этот инструмент позволяет полностью разделить процесс написания кода и процесс работы с данными.
При такой схеме разработчик работает в среде EDT на своем личном компьютере. Код конфигурации хранится в репозитории Git. Посмотрим на алгоритм работы:
Git.Результат: Удаленный сотрудник вообще не имеет доступа к вашему серверу и вашим реальным данным.
Для предотвращения выполнения вредоносного кода в 1С (например, попыток выгрузки файлов через COM или HTTP) настроим Профили безопасности. Это механизм кластера 1С, который ограничивает возможности встроенного языка. В профиле можно запретить:
ЗапуститьПриложение).Подключив такой профиль к базе, в которой работает разработчик, вы создаете «песочницу», за пределы которой он не сможет выйти программным путем.
Подводя итог, наиболее надежная схема выглядит так: работа ведется на виртуальной машине, изолированной от основной сети. Доступ осуществляется через VPN. База данных предварительно обезличена и очищена от лишней информации. Все действия разработчика логируются системными средствами или специализированным ПО (PAM-системы), а в идеале — разработка ведется через Git без предоставления доступа к промышленным данным.