Как бы вы моделировали систему, которая обрабатывает разрешения для выполнения определенных действий внутри приложения?
Моделирование системы разрешений
Ответ 1
Модели безопасности - это большое (и открытое) поле исследований. Существует огромное количество моделей, доступных на выбор: от простого:
-
Матрица управления доступом Lampson перечисляет каждый объект домена и каждого принципала в системе с действиями, которые основной участник может выполнять на этом объект. Это очень многословие и, если оно действительно реализовано таким образом, очень интенсивно используется в памяти.
-
Списки контроля доступа - это упрощение матрицы Lampson: считайте это чем-то вроде реализации с разреженной матрицей, в которой перечислены объекты и принципы и разрешенные действия, и не кодирует все "нулевые" записи из матрицы Лампсона. Списки контроля доступа могут включать в себя "группы" в качестве удобства, а списки могут храниться через объект или через главный (иногда через программу, как в AppArmor или TOMOYO или LIDS).
-
Системы возможностей основаны на идее наличия ссылки или указателя на объекты; процесс имеет доступ к первоначальному набору возможностей и может получить больше возможностей, только получая их от других объектов в системе. Это звучит довольно далеко, но подумайте о дескрипторах файлов Unix: они являются неотъемлемой ссылкой на конкретный открытый файл, а дескриптор файла может быть передан другим процессам или нет. Если вы передадите дескриптор другому процессу, он будет иметь доступ к этому файлу. Вокруг этой идеи были написаны целые операционные системы. (Самые известные, вероятно, KeyKOS и EROS, но я уверен, что это спорный точка.:)
... к более сложным, которые имеют метки безопасности, назначенные объектам и принципам:
-
Защитные кольца, например, реализованные в процессорах Multics и x86, среди прочих, и обеспечивают ловушки или ворота безопасности, позволяющие процессам переход между кольцами; каждое кольцо имеет другой набор привилегий и объектов.
-
Denning Lattice - это модель, которой руководители могут взаимодействовать с тем, какие метки безопасности очень иерархически.
-
Bell-LaPadula похожа на Denning Lattice и содержит правила для предотвращения утечки сверхсекретных данных на неклассифицированные уровни и общие расширения обеспечить дальнейшую раздробленность и категоризацию, чтобы лучше обеспечить военную поддержку "необходимости знать".
-
Biba Model похожа на Bell-LaPadula, но "повернула голову" - Bell-LaPadula сосредоточена на конфиденциальность, но ничего не делает для целостности, а Биба сосредоточен на целостности, но ничего не делает для конфиденциальности. (Белл-Ла-Падула запрещает кому-то читать "Список всех шпионов", но с радостью разрешит кому-нибудь писать что-нибудь в нем. Биба с радостью разрешит кому-либо прочитать "Список всех шпионов", но запретит почти всем писать в него.)
-
Type Enforcement (и его сиблинг, принудительное применение типа домена) предоставляет метки на принципалах и объектах и указывает допустимый объект-глагол -subject (class). Это знакомые SELinux и SMACK.
.., а затем есть некоторые, которые включают время прохождения:
-
Китайская стена была разработана в бизнес-настройках для разделения сотрудников внутри организации, предоставляющей услуги конкурентам на данном рынке: например, как только Джонсон начал работать над учетной записью Exxon-Mobil, ему не разрешен доступ к учетной записи BP. Если Джонсон начал работать над BP сначала, ему будет отказано в доступе к данным Exxon-Mobil.
-
LOMAC и high-watermark два динамических подхода: LOMAC модифицирует привилегии процессов, поскольку они получают доступ к более высоким уровням данных и запрещает запись на более низкие уровни (процессы переходят к "верхней безопасности" ), а high-watermark модифицирует метки данных, уровни доступа к ним (данные мигрируют в "верхнюю защиту" ).
-
Clark-Wilsonмодели очень открытые; они включают в себя инварианты и правила, гарантирующие, что каждый переход состояния не нарушает инвариантов. (Это может быть так же просто, как двухсторонний учет или такой сложный, как HIPPA.) Подумайте о транзакциях и ограничениях базы данных.
Мэтт Бишоп "Компьютерная безопасность: искусство и наука", безусловно, стоит прочитать, если вы хотите больше узнать о опубликованных моделях.
Ответ 2
Я предпочитаю RBAC. Хотя, вы можете найти его очень похожим на ACL, но они отличаются семантически.
Ответ 3
Перейдите по ссылкам: