Security 权限系统的建模

Security 权限系统的建模,security,permissions,action,modeling,Security,Permissions,Action,Modeling,您将如何对处理在应用程序内执行某些操作的权限的系统进行建模?浏览以下链接: 安全模型是一个很大的(开放的)研究领域。有大量型号可供选择,包括: 列出系统中的每个域对象和每个主体,以及允许主体对该对象执行的操作。它非常冗长,如果实际以这种方式实现的话,会占用大量内存 >P>是兰普森矩阵的简化:认为它类似于稀疏矩阵实现,它列出对象、主体和允许的动作,并且不编码兰普森矩阵中的所有“空”项。为了方便起见,访问控制列表可以包括“组”,并且可以通过对象或主体(有时,通过程序,如in或or)存储列表

您将如何对处理在应用程序内执行某些操作的权限的系统进行建模?

浏览以下链接:


安全模型是一个很大的(开放的)研究领域。有大量型号可供选择,包括:

  • 列出系统中的每个域对象和每个主体,以及允许主体对该对象执行的操作。它非常冗长,如果实际以这种方式实现的话,会占用大量内存

  • >P>是兰普森矩阵的简化:认为它类似于稀疏矩阵实现,它列出对象、主体和允许的动作,并且不编码兰普森矩阵中的所有“空”项。为了方便起见,访问控制列表可以包括“组”,并且可以通过对象或主体(有时,通过程序,如in或or)存储列表

  • 基于有一个指向对象的引用或指针的想法;一个进程可以访问一组初始的功能,并且只能通过从系统上的其他对象接收这些功能来获得更多的功能。这听起来很遥远,但想想Unix文件描述符:它们是对特定打开文件的不可伪造的引用,文件描述符可以交给其他进程,也可以不交给其他进程。如果您将描述符提供给另一个进程,它将有权访问该文件。整个操作系统都是围绕这个想法编写的。(最著名的可能是凯科斯和厄洛斯,但我相信这是一个有争议的问题 要点:)

。。。对于更复杂的对象和主体指定了安全标签:

  • ,例如在Multics和x86 CPU中实现,并提供安全陷阱或门,以允许进程在环之间转换;每个环都有一组不同的特权和对象

  • 是一个模型,允许主体以非常分层的方式与安全标签交互

  • 类似于Denning的Lattice,它提供了防止将绝密数据泄漏到未分类级别的规则,而通用扩展提供了进一步的划分和分类,以更好地提供军事风格的“需要知道”支持

  • 与贝尔·拉帕杜拉(Bell LaPadula)类似,但“转头”——贝尔·拉帕杜拉(Bell LaPadula)专注于保密,但不为诚信做任何事,而毕巴(Biba)专注于诚信,但不为保密做任何事。(贝尔·拉帕杜拉(Bell LaPadula)禁止任何人阅读所有间谍名单,但很乐意允许任何人在名单上写任何东西。比巴(Biba)很乐意允许任何人阅读所有间谍名单,但几乎禁止所有人在名单上写任何东西。)

  • (及其同级,域类型强制)提供主体和对象的标签,并指定允许的对象-动词-主语(类)表。这是熟悉的SELinux和SMACK

。。还有一些是随着时间的推移:

  • 在商业环境中开发,以分离为特定市场竞争对手提供服务的组织内的员工:例如,一旦约翰逊开始使用埃克森美孚账户,他就不允许访问BP账户。如果约翰逊先开始研究英国石油公司,他将被拒绝访问埃克森美孚的数据

  • 这是两种动态方法:LOMAC在进程访问更高级别的数据时修改其权限,并禁止写入较低级别的数据(进程向“最高安全性”迁移),高水印在更高级别的进程访问数据时修改数据上的标签(数据向“最高安全性”迁移)

  • 模型是非常开放的;它们包括不变量和规则,以确保每个状态转换不会违反不变量。(这可以是简单的,也可以是复杂的。)想想数据库事务和约束


马特·毕肖普的《计算机安全:艺术与科学》绝对值得一读,如果你想更深入地了解已发布的模型。

我更喜欢。虽然,你可以发现它们非常相似,但它们都是。

非常好的答案。有趣的阅读。我想知道这个过于简单但并不罕见的系统在您的列表中的位置:“默认情况下,来宾的级别为0,注册用户的级别为5,系统管理员的级别为9。每个操作都有一个与之相关的级别,并且只能由该级别或更高级别的人执行。”@Oddthinking,这个简单的模型可以有几个:)但最简单的“匹配”是环模型。正如在x86中实现的那样,它有四个级别(如示例中所示),每个级别都添加了只能由该级别或更高级别的代码完成的操作。(你所说的是一个正交问题。)我可以很容易地想象这个例子的ACL、能力、晶格、BLP和TE实现。如果其他人也能实现这个模型,我不会感到惊讶;但是简单是一种好的美德@弗兰克,谢谢!我的拼写太糟糕了,谢谢你的帮助。