Вопросы обеспечения информационной безопасности в платформе 1С:Предприятие 7.7 всегда стояли достаточно остро. В отличие от современных версий платформы (8.3 и новее), где права доступа и разделение ролей глубоко интегрированы на уровне ядра базы данных и сервера приложений, в "семерке" многие механизмы защиты приходится реализовывать административными методами операционной системы. Рассмотрим подробно, как решить три важнейшие задачи безопасности: ограничить доступ к инструментам разработки, скрыть физический путь к каталогу базы данных и защитить файловую базу (DBF) от несанкционированного копирования пользователями в терминальном режиме.
В процессе обсуждения часто предлагается простой, но радикальный способ: физически удалить или переименовать файлы библиотек в каталоге установки платформы (папка BIN). К таким файлам относятся:
Config.dll — отвечает за работу Конфигуратора;Tracer.dll — обеспечивает функционирование Отладчика;Monitor.dll — отвечает за запуск Монитора пользователей.Однако этот подход имеет существенный недостаток: сам администратор или программист лишается возможности оперативно зайти в конфигуратор на данном сервере. Рассмотри более гибкие и профессиональные методы разграничения доступа.
Метод А: Настройка прав безопасности на уровне файловой системы NTFS
Вместо удаления файлов мы можем ограничить права на их чтение и выполнение для конкретных пользователей или групп. Разберем этот процесс по шагам:
1C-Admins (администраторы и разработчики) и 1C-Users (рядовые бухгалтеры и операторы).C:\Program Files (x86)\1Cv77\BIN\.Config.dll, кликнем по нему правой кнопкой мыши и выберем "Свойства", затем перейдем на вкладку "Безопасность".1C-Users и установим для нее явный запрет (флажок Deny / Запретить) на пункты "Чтение и выполнение" (Read & Execute) и "Чтение" (Read).Tracer.dll и Monitor.dll.Теперь при попытке обычного пользователя запустить 1С 7.7 в режиме конфигуратора операционная система просто заблокирует загрузку соответствующей библиотеки, и запуск будет прерван с ошибкой доступа, в то время как администраторы из группы 1C-Admins смогут беспрепятственно работать с базой.
Метод Б: Использование политик ограничения программного обеспечения (SRP) или AppLocker
Если нам необходимо запретить запуск конфигуратора через командную строку с определенными ключами (например, /M для монопольного режима, CONFIG для конфигуратора), мы можем применить групповые политики Windows (GPO). Проанализируем, как это сделать с помощью AppLocker:
1cv7.exe, если в параметрах запуска содержатся аргументы командной строки, отличные от стандартного режима предприятия (enterprise).---
По умолчанию любой пользователь 1С 7.7 может легко узнать, где физически расположены файлы таблиц базы данных. Для этого достаточно открыть меню Справка — О программе... (или нажать кнопку "?" на панели инструментов). Если база файловая, там будет указан прямой сетевой или локальный путь (например, D:\1C_Bases\Trade\). Зная этот путь, недобросовестный сотрудник может попытаться скопировать файлы напрямую. Выясним, как скрыть эту информацию.
Способ А: Редактирование ресурсов исполняемого файла платформы
Интерфейс главного меню и диалоговые окна платформы зашиты в исполняемый файл 1cv7.exe (или 1cv7s.exe для сетевой версии). Мы можем отредактировать ресурсы этого файла с помощью утилит типа Resource Hacker или PE Explorer. Разберем алгоритм действий:
1cv7.exe в безопасное место.1cv7.exe в программе Resource Hacker.104 (или диалоговое окно About / О программе).BIN.После этой процедуры при нажатии "О программе" окно либо вообще не будет содержать строку с путем к базе, либо сам пункт меню станет недоступен для клика.
Способ Б: Перехват окон через внешние компоненты (FormEx)
Если мы не хотим модифицировать исполняемые файлы платформы, воспользуемся возможностями популярной библиотеки расширения интерфейса FormEx.dll. Проанализируем, как перехватить открытие системного окна программно. Для этого в Глобальном модуле конфигурации в процедуре ПриНачалеРаботыСистемы пропишем код инициализации внешней компоненты и перехвата событий клавиатуры или открытия окон:
Процедура ПриНачалеРаботыСистемы()
Если ЗагрузитьВнешнююКомпоненту("FormEx.dll") = 1 Тогда
Сервис = СоздатьОбъект("Сервис");
// Блокируем стандартное сочетание клавиш вызова справки
Сервис.ОбрабатыватьГорячиеКлавиши(1);
КонецЕсли;
КонецПроцедуры
В процедуре обработки горячих клавиш или предопределенных событий мы можем отслеживать нажатие клавиши F1 или обращение к системным пунктам меню и вместо штатного окна выводить собственную кастомную форму, где будет отображаться только логотип компании и версия конфигурации без технических путей.
Способ В: Защита путей в системном реестре
Список информационных баз 1С 7.7 хранится в ветке реестра текущего пользователя: HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles. Чтобы пользователь не мог запустить редактор реестра regedit и посмотреть пути там, необходимо настроить доменную или локальную групповую политику "Запретить доступ к инструментам редактирования реестра".
---
Существует распространенное заблуждение, что файловую базу 1С 7.7 защитить от кражи и копирования невозможно. Действительно, если пользователь имеет прямой доступ к сетевой папке с базой через Проводник, он может легко скопировать файлы .dbf. Но если работа организована в терминальном режиме (RDP/Hyper-V/Citrix), мы можем создать абсолютно изолированную среду, в которой кража данных станет технически невозможной.
Рассмотрим по шагам комплекс мер для настройки терминального сервера:
Ни в коем случае нельзя разрешать пользователям загружать полноценный рабочий стол терминального сервера. Пользователь должен видеть только окно самой программы 1С.
C:\Program Files (x86)\1Cv77\BIN\1cv7s.exe enterprise /d"C:\Bases\Trade\". При таком сценарии после закрытия программы 1С терминальная сессия пользователя автоматически завершается, не давая ему доступа к рабочему столу сервера.Для терминальных пользователей необходимо настроить жесткие ограничения через локальные групповые политики (команда gpedit.msc на сервере) или доменные политики (GPO):
Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Перенаправление устройств и ресурсов -> Запретить перенаправление дисков. Установим значение "Включено". Теперь пользователь физически не сможет перетащить файл базы на свой домашний жесткий диск.Запретить перенаправление буфера обмена. Это заблокирует копирование файлов и больших объемов текста через буфер между сервером и клиентом.C: или D: сервера, применим политику Скрыть выбранные диски из окна "Мой компьютер" (в разделе конфигурации пользователя).Даже в интерфейсе 1С 7.7 через меню "Файл - Открыть" пользователь может вызвать системный диалог проводника. Оттуда, кликнув правой кнопкой мыши по любому файлу, теоретически можно запустить диспетчер задач, архиватор или командную строку. Чтобы пресечь это:
.exe, .bat, .cmd, .vbs) из пользовательских каталогов. Разрешим запуск только для файлов из доверенных папок (например, Program Files), доступ к которым у обычного пользователя настроен только на чтение.cmd.exe, powershell.exe и regedit.exe для группы рядовых пользователей.Если требуется максимальный уровень безопасности без перехода на полноценную MS SQL Server (что для 1С 7.7 требует покупки дорогих лицензий и проведения сложных процедур интеграции), можно использовать так называемые DBF-серверы (например, драйверы сторонних разработчиков, перехватывающие обращения к файловой системе).
Такие решения работают по принципу клиент-сервер: сами файлы базы данных лежат в закрытом каталоге, к которому у учетной записи пользователя терминала вообще нет прав доступа NTFS (даже на чтение). Чтение и запись данных осуществляет специальная системная служба (серверный процесс), запущенная от имени администратора. 1С обращается к этой службе через локальный сокет или специальную библиотеку-прокси. В результате пользователь работает в программе, но физически скопировать файлы базы с диска не может, так как операционная система откажет ему в доступе при любой попытке открыть папку базы напрямую.