Моделирование системы полномочий

Как Вы смоделировали бы систему, которая обрабатывает полномочия для выполнения определенных действий в приложении?

78
задан Gangnus 15 February 2014 в 21:08
поделиться

3 ответа

Модели безопасности - это обширная (и открытая) область исследований. На выбор доступен огромный массив моделей, начиная от простых:

  • Матрица контроля доступа Лэмпсона перечисляет каждый объект домена и каждого принципала в системе с действиями, которые принципалу разрешено выполнять с этим объектом. Он очень подробный и, если он действительно реализован таким образом, требует очень много памяти.

  • Списки управления доступом являются упрощением матрицы Лэмпсона: считайте ее чем-то вроде реализации с разреженной матрицей, которая перечисляет объекты, принципы и разрешенные действия и не кодирует все «нулевые» записи из таблицы Лэмпсона. матрица. Списки управления доступом для удобства могут включать в себя «группы», и списки могут храниться через объект или через принципала (иногда через программу, как в AppArmor или TOMOYO или LIDS ).

  • Системы возможностей основаны на идее наличия ссылки или указателя на объекты; процесс имеет доступ к начальному набору возможностей и может получить больше возможностей, только получив их от других объектов в системе. Это звучит довольно странно, но подумайте о файловых дескрипторах Unix: они являются неотъемлемой ссылкой на конкретный открытый файл, и файловый дескриптор может быть передан другим процессам или нет. Если вы передадите дескриптор другому процессу, он получит доступ к этому файлу. На этой идее были написаны целые операционные системы. (Самыми известными, вероятно, являются KeyKOS и EROS, но я уверен, что это спорный вопрос. точка. :)

...к более сложным, которые имеют метки безопасности, назначенные объектам и принципалам:

  • Кольца безопасности , такие как реализованные в процессорах Multics и x86, среди прочего, и обеспечивают ловушки безопасности или шлюзы, позволяющие процессам переходить между кольцами ; каждое кольцо имеет свой набор привилегий и объектов.

  • Решетка Деннинга - это модель, в которой принципалам разрешено взаимодействовать с какими метками защиты в очень иерархической манере.

  • Bell-LaPadula похожа на Решетку Деннинга и предоставляет правила для предотвращения утечки сверхсекретных данных на несекретные уровни, а общие расширения обеспечивают дальнейшее разделение и категоризацию, чтобы лучше обеспечивать поддержку в стиле милитари по принципу «необходимость знать».

  • Модель Биба похожа на Белл-ЛаПадула, но «перевернута с ног на голову» - Белл-ЛаПадула сосредоточен на конфиденциальности, но ничего не делает для целостности, а Биба нацелен на целостность, но ничего не делает для конфиденциальности. (Белл-ЛаПадула запрещает кому-либо читать «Список всех шпионов», но с радостью позволяет кому угодно записывать в него что угодно. Биба с радостью разрешает кому угодно читать «Список всех шпионов», но запрещает почти всем писать в нем.)

  • Type Enforcement (и его родственный брат, Domain Type Enforcement) предоставляет метки для принципалов и объектов и определяет разрешенные таблицы объект-глагол-субъект (класс). Это знакомые SELinux и SMACK.

..а также есть некоторые, которые учитывают течение времени:

  • Китайская стена была разработана в бизнес-среде для разделения сотрудников внутри организации, которая предоставляет услуги конкурентам на данном рынке: например, как только Джонсон начал работать над Учетная запись Exxon-Mobil, ему не разрешен доступ к учетной записи BP. Если бы Джонсон сначала начал работать над BP, ему было бы отказано в доступе к данным Exxon-Mobil.

  • LOMAC и high-watermark - это два динамических подхода: LOMAC изменяет привилегии процессов, поскольку они получают доступ к все более высоким уровням данных, и запрещает запись на более низкие уровни (процессы переходят на «верхний уровень»). безопасность "), а высокий водяной знак изменяет метки данных по мере того, как процессы более высокого уровня получают к ним доступ (данные мигрируют в сторону" максимальной безопасности ").

  • Модели Кларка-Уилсона очень открыты; они включают инварианты и правила, чтобы гарантировать, что каждый переход состояния не нарушает инварианты. (Это может быть как простой учет с двойной записью , так и сложный, как HIPPA .) Подумайте о транзакциях и ограничениях базы данных.

"Компьютерная безопасность: искусство и наука" Мэтта Бишопа определенно стоит прочитать, если вы хотите более подробно изучить опубликованные модели.

152
ответ дан 24 November 2019 в 10:33
поделиться

Я предпочитаю RBAC . Хотя вы можете найти его очень похожим на ACL , но они различаются семантически .

9
ответ дан 24 November 2019 в 10:33
поделиться
1
ответ дан 24 November 2019 в 10:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: