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

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

На крупных и производственных предприятиях (например, работающих в конфигурации «1С:Управление производственным предприятием») часто возникает хаос в управлении правами: сотрудники передают пароли коллегам при уходе в отпуск, уволенные пользователи остаются активными, а администраторы выдают избыточный доступ без контроля. Попытка привлечь к контролю службу безопасности (СБ) нередко заходит в тупик: безопасники не знают названий технических ролей платформы 1С, а программисты не могут описывать права простым языком.

Разберем комплексный подход к решению этой проблемы: от создания понятной для СБ матрицы доступа до автоматизации контроля учетных записей программными средствами 1С.

1. Формирование каталога бизнес-ролей и матрицы доступа

Главная ошибка при подаче заявки безопаснику — перечисление пообъектных прав или сотен метаданных. Служба безопасности мыслит должностными обязанностями и рисками, а не техническими ролями конфигуратора.

Проанализируем шаги для стандартизации прав:

  1. Введение понятия «Бизнес-роль» (или Профиль должности): объединим типовые роли 1С в готовые пакеты, привязанные к штатному расписанию. Например, бизнес-роль Бухгалтер по банку, Менеджер по оптовым продажам, Кладовщик готовой продукции. В 90% случаев новому сотруднику выдается стандартный профиль его подразделения.
  2. Составление матрицы ограничений (SoD — Segregation of Duties): зафиксируем несовместимые действия, которые один человек не должен выполнять одновременно. Например, объединение функций «Создание контрагента/заказа» и «Проведение банковской выписки» или «Оприходование» и «Списание ТМЦ». Безопасник согласует доступ именно на предмет отсутствия конфликта интересов.
  3. Упрощенная матрица объектов: если требуется индивидуальный доступ, для СБ составляется таблица по ключевым разделам учета (Товары, Деньги, Зарплата, Контрагенты) с двумя флагами: Чтение или Изменение. Служебные регистры и вспомогательные справочники из рассмотрения исключаются.

2. Регламент и маршрут согласования заявки

Чтобы заявка была прозрачной и понятной для всех участников, выстроим электронный маршрут согласования со следующими обязательными полями в форме запроса:

  1. Инициатор: непосредственный руководитель сотрудника.
  2. Обоснование: краткое текстовое описание производственной необходимости (например: «Для выполнения обязанностей по участку расчетов с подотчетными лицами согласно должностной инструкции»).
  3. Запрашиваемый профиль: выбор конкретной бизнес-роли и разделителей доступа (организация, подразделение, склад).
  4. Срок действия: постоянный или временный (актуально при замещении на время отпуска).

Посмотрим на типовую цепочку согласования заявки:

  1. Непосредственный руководитель: подтверждает производственную необходимость.
  2. Владелец бизнес-процесса / базы: например, главный бухгалтер для финансовых контуров или директор по логистике для складских баз.
  3. Служба безопасности: проверяет отсутствие конфликта полномочий (SoD) и соответствие регламентам коммерческой тайны.
  4. Администратор 1С / Системный администратор: производит техническое включение пользователя в группы и профили, проверяет настройки доменной аутентификации.

3. Техническое исключение передачи паролей и контроль увольнений

Организационные запреты не работают без жестких технических ограничений. Для устранения передачи паролей и работы под чужими учетными записями применим следующие меры:

  1. Отказ от паролей 1С в пользу доменной аутентификации (Active Directory): для всех пользователей базы отключаем стандартную аутентификацию 1С и видимость в списке выбора. Вход должен осуществляться исключительно через ПользовательОС.
  2. Интеграция с кадровой базой (1С:ЗУП): настраиваем регламентное задание, которое автоматически блокирует учетную запись в Active Directory и профиль в 1С, если в кадровой системе проведен приказ об увольнении или зафиксирован статус невыхода/отпуска.
  3. Механизм штатного замещения: на период отпуска сотрудника замещающему коллеге временно назначается дополнительный профиль прав через официальную заявку. Это исключает необходимость передавать свой логин и пароль.

4. Автоматизированный скрипт аудита безопасности учетных записей

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

Рассмотрим пример кода внешней обработки или регламентного задания, сканирующего пользователей информационной базы:


// Процедура выполняет аудит безопасности пользователей информационной базы
МассивАдминов = Новый Массив;
МассивАдминов.Добавить(ВРЕГ("ДОМЕН\АДМИНИСТРАТОР"));
МассивАдминов.Добавить(ВРЕГ("ДОМЕН\1CADMIN"));

// Массивы активных и заблокированных учетных записей AD формируются предварительно через LDAP/ADSI
МассивАктивныхУчеток = глОбщиеДанные.МассивАктивныхУчеток;
МассивЗаблокированыхУчеток = глОбщиеДанные.МассивЗаблокированыхУчеток;

Попытка
    мПользователи = ПользователиИнформационнойБазы.ПолучитьПользователей();
    
    Для Каждого ПользовательИБ Из мПользователи Цикл 
        ОшибкаТекущегоПользователя = "";
        
        // Исключаем технологическую учетную запись администратора
        Если СокрЛП(ПользовательИБ.Имя) = "Админ" Тогда
            Продолжить;
        КонецЕсли;
        
        // Проверка 1: Запрет стандартной аутентификации по паролю 1С
        Если ПользовательИБ.АутентификацияСтандартная = Истина Тогда
            ОшибкаТекущегоПользователя = ОшибкаТекущегоПользователя + "; открыт вход по паролю 1С";
        КонецЕсли;
        
        // Проверка 2: Запрет показа в стартовом списке выбора
        Если ПользовательИБ.ПоказыватьВСпискеВыбора = Истина Тогда
            ОшибкаТекущегоПользователя = ОшибкаТекущегоПользователя + "; включен показ в списке выбора";
        КонецЕсли;
        
        // Проверка критических прав для рядовых пользователей
        Если МассивАдминов.Найти(ВРЕГ(СокрЛП(ПользовательИБ.ПользовательОС))) = Неопределено Тогда
            Если ПользовательИБ.АутентификацияСтандартная = Истина 
                ИЛИ ПользовательИБ.АутентификацияОС = Истина Тогда
            
                // Проверка 3: Наличие административных прав (ПолныеПрава / Администрирование)
                Если ПравоДоступа("Администрирование", Метаданные, ПользовательИБ) = Истина Тогда        
                    ОшибкаТекущегоПользователя = ОшибкаТекущегоПользователя + "; выданы полные права (Администрирование)";
                КонецЕсли;
                
                // Проверка 4: Несанкционированный доступ к внешним обработкам и отчетам
                Если ПравоДоступа("ИнтерактивноеОткрытиеВнешнихОбработок", Метаданные, ПользовательИБ) = Истина 
                    ИЛИ ПравоДоступа("ИнтерактивноеОткрытиеВнешнихОтчетов", Метаданные, ПользовательИБ) = Истина Тогда        
                    ОшибкаТекущегоПользователя = ОшибкаТекущегоПользователя + "; разрешен запуск внешних обработок/отчетов";
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
        
        // Проверка 5: Синхронизация с Active Directory
        Если ПользовательИБ.АутентификацияОС = Истина И СокрЛП(ПользовательИБ.ПользовательОС) <> "" Тогда
            мИмя = ВРЕГ(СокрЛП(ПользовательИБ.ПользовательОС));
            
            Если МассивЗаблокированыхУчеток.Найти(мИмя) <> Неопределено Тогда
                ОшибкаТекущегоПользователя = ОшибкаТекущегоПользователя + "; учетная запись заблокирована в AD (" + мИмя + ")";
            ИначеЕсли МассивАктивныхУчеток.Найти(мИмя) = Неопределено Тогда
                ОшибкаТекущегоПользователя = ОшибкаТекущегоПользователя + "; учетная запись не найдена в AD";
            КонецЕсли;
        КонецЕсли;
        
        // Вывод или отправка отчета службе безопасности
        Если СокрЛП(ОшибкаТекущегоПользователя) <> "" Тогда 
            Сообщить("Нарушение безопасности: " + ПользовательИБ.Имя + " (" + ПользовательИБ.ПолноеИмя + ")" + ОшибкаТекущегоПользователя);
        КонецЕсли;
    КонецЦикла;

Исключение
    Сообщить("Ошибка при проведении аудита прав: " + ОписаниеОшибки());
КонецПопытки;

5. Контроль утечек информации и мониторинг журнала регистрации

Для предотвращения несанкционированной выгрузки конфиденциальных данных и расследования инцидентов службе безопасности необходимо учитывать два ключевых фактора:

  1. Контроль платформенного права «Вывод»: если сотруднику требуется доступ только для просмотра данных на экране, отключите в его роли право Вывод. Это заблокирует сохранение отчетов и табличных документов в Excel/PDF, копирование через буфер обмена и печать на принтере.
  2. Мониторинг журнала регистрации: настройте автоматические оповещения СБ при возникновении событий изменения прав и пользователей (_$User$_.Create, _$User$_.Update). Если администратор выдает права напрямую в конфигураторе в обход утвержденной заявки, система безопасности должна немедленно зафиксировать нарушение.
← На главную