Моделирование системы разрешений

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

Ответ 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.) Подумайте о транзакциях и ограничениях базы данных.

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