Имя: Пароль:
1C
1С v8
Согласование прав доступа к базе 1С со службой безопасности
,
0 es3000
 
14.09.17
12:17
Здравствуйте!

Имеется организация, работает на УПП.
Накопилось достаточно вопросов по безопасности: кто-то кому-то включил доступ просто так, кто-то ушел в отпуск и передал свой пароль соседу, человек уволился и под ним работает новый сотрудник и т. д.

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

Но тут встал вопрос в каком виде составлять заявку на доступ?
Сотрудник службы безопасности - не  технарь.
Если в заявке указать просто ФИО сотрудника и перечислить названия нужных ему профилей (которые есть в 1С) - этого будет недостаточно.
Для безопасника это будет непонятно.
А перечислять все роли - это очень много и не реально.

Посоветуйте, как вы у себя решаете эту проблему?
Как согласовываете предоставление доступа?
Что указываете в заявке?
1 Heckfy
 
14.09.17
12:21
Начните с матрицы прав.
2 Господин ПЖ
 
14.09.17
12:22
90% новых сотров вписываются в некий общий "профиль" в зависимости от отдела.
3 Heckfy
 
14.09.17
12:25
" кто-то ушел в отпуск и передал свой пароль соседу, человек уволился и под ним работает новый сотрудник " - подружите УПП с ЗУПом, что бы учетка в УПП автоматически лочилась, если статус сотрудника в ЗУПе <> работает.
4 Господин ПЖ
 
14.09.17
12:26
>человек уволился и под ним работает новый сотрудник

в конторе нет AD?
5 VladZ
 
14.09.17
12:30
Должны быть профили доступа. Подтягивать для контроля службу безопасности - это слишком. ИМХО, для банков еще можно такой вариант рассмотреть. Для производственного предприятия - не вижу смысла.
6 VladZ
 
14.09.17
12:34
Должна быть определенная политика безопасности. Отвечают за нее как админы (доменные учетки), так и те товарищи, которые занимаются учетными записями пользователей в 1с (это могут быть как программисты-1с, так и админы). Судя по сабжу, в этой конторе нет политики безопасности. И сотрудники ИТ-отдела хотят свалить это на безопасников.  Не получится. Безопасностью в сфере ИТ должны заниматься айтишники.
7 Bigbro
 
14.09.17
12:34
как правило для ограничения доступа хватает десятка профилей плюс минус.
возможно с доп указанием подразделения/филиала.
сам набор этих профилей и процедура выдачи прав доступа а также лишения доступа должна быть прописана в документе компании за подписью руководителя.
8 catena
 
14.09.17
12:45
У нас схема следующая:
1. Доступы поделены на профили, у каждого профиля есть бизнес-владелец. Заявка на предоставление прав автоматически уходит на подпись непосредственному начальнику + бизнес-владельцу.
2. Аутентификация АД. Профиль АД автоматически лочится при увольнении/отсутствии на работе по данным кадровой системы. Соответственно, обязательная смена пароля тоже на совести АД.
9 Dmitrii
 
гуру
14.09.17
12:48
>> как вы у себя решаете эту проблему?

Электронная заявка на предоставление доступа.

>> Как согласовываете предоставление доступа?

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

>> Что указываете в заявке?

Иницаитор заявки обязан указать:
1. Словами кратко описать перечень действий пользователя в 1С - для чего ему нужен доступ. Требуется приложить файл - скан с должностной инструкцией.
2. Расставить флажки - какие профили предоставить пользователю.
3. Расставить флажки - в какие группы включить пользователя.

>> Если в заявке указать просто ФИО сотрудника и перечислить названия нужных ему профилей (которые есть в 1С) - этого будет недостаточно.

Почему? Этого достаточно более чем за глаза и за уши.
У нас в дополнение к этому инициатор заявки кратко описывает для чего нужен доступ.Например: "Для отражения операций бухучета на участке таком-то согласно должностным обязанностям" или "Для проведения внутреннего аудита согласно приказа гендиректора нужен доступ с правами <Только просмотр> на период с ... по ...".

>> Для безопасника это будет непонятно.

То что безопасник не технарь, не означает, что он полный дятел.
Придётся ему один разок разобраться.
В конце концов в типовой конфигурации не так уж и много профилей. А для большинства сотрудников они будут одинаковыми.
В крайнем случае включите в схему согласования админа 1С ещё и на этапе "перед безопасником". Чтобы он мог проверить соответствие выбранных профилей/ролей заявленным должностным обязанностям. Но согласование безопасника всё равно должна быть.

>> А перечислять все роли - это очень много и не реально.

Это не нужно. Для этого есть профили групп доступа.
10 Dmitrii
 
гуру
14.09.17
12:51
+ к (9) забыл в схеме согласования указать владельца базы (главбух - для бухгалтерских баз, директора департаментов - для производственных и т.п.)
11 Трик
 
14.09.17
12:56
(0)достаточно должности и еще какого-то разделителя прав (типа организации или подразделения)

заявка от руководителя.
12 Трик
 
14.09.17
12:57
(11) ну а права по должностям разруливаются и согласовываются заранее
13 KSN
 
14.09.17
13:04
1. Вход на компьютер по токену (Хасп-ключ).
2. Только доменная авторизация в 1с.
3. Права выдаются по служебке с визой руководителя по направлению.

А за токенами у пользователей следит СБ.
14 vde69
 
14.09.17
13:05
я проблему решаю не столько разрешением, сколько автоматическим аудитом текущих прав...

есть автоматизация которая показывает все проблемы безопасности, начиная от "полные права у юзера" и заканчивая списком уже заблоченых в АД (и еще куча чего),

раз в месяц прогоняю для нашего зоопарка в пол сотни баз, результат выдаю в виде "надо исправить" админам и суппорту
15 es3000
 
14.09.17
15:15
(14) что за "автоматизация которая показывает все проблемы безопасности"?
16 es3000
 
14.09.17
15:18
(9)
>> То что безопасник не технарь, не означает, что он полный дятел.
>> Придётся ему один разок разобраться

В общем согласен.
А как ему разобраться?
Распечатать ему для каждого профиля список объектов и права на эти объекты?
17 Господин ПЖ
 
14.09.17
15:20
>Распечатать ему для каждого профиля список объектов и права на эти объекты?

нас как-то просили матрицу прав пообъектно для УПП. сформировали, выслали. больше не просят
18 es3000
 
14.09.17
15:22
(17) Ну может быть не всех объектов, а самых критичных и важных.
Иначе как поймет безопасник что например обозначает профиль "Менеджер продаж"?
19 es3000
 
14.09.17
15:25
(4) >> в конторе нет AD?
Есть
20 es3000
 
14.09.17
15:29
(6) >> ... сотрудники ИТ-отдела хотят свалить это на безопасников.  Не получится.
>> Безопасностью в сфере ИТ должны заниматься айтишники

Физически включать\отключать доступ конечно должны айтишники.
Но вот отслеживать кому и когда включить и отключить - это должны делать непосредственные руководители и служба безопасности
21 kiruha
 
14.09.17
15:34
(16)
Пишешь упрощенную матрицу прав
2 вида доступа к объектам - чтение(просмотр)
и изменение
По вертикали профили или пользователи
По горизонтали Документы и другие объекты только фактические без служебных

Пересечение - чтение / изменение / нет доступа

Отдельно табличка профили - пользователи

Если пользователей мало - то лучше пользователи права

Если есть разбивка контрагентов - то подстроки групп
22 kiruha
 
14.09.17
15:38
Когда безопасник согласует можно составлять
приложения доступа, например к контрагентам или к очень важным документам
24 vde69
 
14.09.17
16:14
типа того

//ВызватьИсключение "заблокировано"

Сообщить("=== " + ИнформационнаяБаза.Наименование + " ===");

МассивАдминов = Новый Массив;
МассивАдминов.Добавить(ВРЕГ("хххх"));
МассивАдминов.Добавить(ВРЕГ("\\ххх\ххх"));



МассивАктивныхУчеток = глОбщиеДанные.МассивАктивныхУчеток;
МассивЗаблокированыхУчеток = глОбщиеДанные.МассивЗаблокированыхУчеток;

// ----------------------------------------------
// проверим что-бы у всех пользователей кроме Админ была только WIN авторизация

Попытка

мПользователи = глБазаКонтекста.ПользователиИнформационнойБазы.ПолучитьПользователей();
Для Каждого ПользовательИБ из мПользователи Цикл
    ОшибкаТекущегоПользователя = "";
    
    Если СокрЛП(ПользовательИБ.Имя) = "Админ" Тогда
        Продолжить;
    КонецЕсли;
    
    Если ПользовательИБ.АутентификацияСтандартная = Истина тогда
        ОшибкаТекущегоПользователя = ОшибкаТекущегоПользователя + "; открыт вход по паролю";
    КонецЕсли;
    
    Если ПользовательИБ.ПоказыватьВСпискеВыбора = Истина тогда
        ОшибкаТекущегоПользователя = ОшибкаТекущегоПользователя + "; есть в списке выбора";
    КонецЕсли;
    
    Если МассивАдминов.Найти(ВРЕГ(СокрЛП(ПользовательИБ.ПользовательОС))) = Неопределено Тогда
        Если ПользовательИБ.АутентификацияСтандартная = Истина
            ИЛИ ПользовательИБ.АутентификацияОС = Истина Тогда
        
            Если  глБазаКонтекста.ПравоДоступа("Администрирование" , глБазаКонтекста.Метаданные, ПользовательИБ) = истина Тогда         
                ОшибкаТекущегоПользователя = ОшибкаТекущегоПользователя + "; полный доступ";
            КонецЕсли;

            Если (    глБазаКонтекста.ПравоДоступа("ИнтерактивноеОткрытиеВнешнихОбработок" , глБазаКонтекста.Метаданные, ПользовательИБ) = истина
                  или глБазаКонтекста.ПравоДоступа("ИнтерактивноеОткрытиеВнешнихОтчетов" , глБазаКонтекста.Метаданные, ПользовательИБ) = истина) Тогда         
                ОшибкаТекущегоПользователя = ОшибкаТекущегоПользователя + "; доступ к внешним обработкам";
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;

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

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