常见的权限模型(ACL、DAC、MAC、RBAC)和权限测试策略

常见的权限模型

1、ACL 访问控制列表
定义:规定资源可以被哪些主体进行哪些操作。
在ACL权限模型下,权限管理是围绕资源来设定的。我们可以对不同的页面设定可以访问的用户

2、DAC 自主访问控制
定义:规定资源可以被哪些主体进行哪些操作。同时,主体可以将资源、操作的权限,授予其他主体
在ACL的基础上,DAC模型将授权的权力下放,允许拥有权限的用户,可以自主地将权限授予其他用户。

3、MAC 强制访问控制
定义:当一个操作,同时满足a与b时,允许操作
		a. 规定资源可以被哪些类别的主体进行哪些操作
	 	b. 规定主体可以对哪些等级的资源进行哪些操作 
MAC是ACL的另一种实现,强调安全性。MAC会在系统中,对资源与主体,都划分类别与等级。比如,等级分为:秘密级、机密级、绝密级;类别分为:军事人员、财务人员、行政人员。
MAC的优势就是实现资源与主体的双重验证,确保资源的交叉隔离,提高安全性。
4、RBAC 基于角色的访问控制
定义:当一个操作,同时满足a与b时,允许操作。
	a. 规定角色可以对哪些资源进行哪些操作 
	b. 规定主体拥有哪些角色 
RBAC的思想,来源于现实世界的企业结构。比如,销售角色,拥有查看客户信息的权限。当一个销售人员小王入职了,可以把销售角色赋予小王,那么小王就拥有了查看客户的权限。这种方式,避免了ACL模型下,每次新人入职,需要逐个配置资源表的情况。同样,权限变动也变得很方便,只要修改角色,即可实现多用户的权限修改。

5、ABAC 基于属性的访问控制
定义:规定哪些属性的主体可以对哪些属性的资源在哪些属性的情况下进行哪些操作
	 ABAC其中的属性就是与主体、资源、情况相关的所有信息。
	主体的属性:指的是与主体相关的所有信息,包括主体的年龄、性别、职位等。
	资源的属性:指的是与资源相关的所有信息,包括资源的创建时间、创建位置、密级等。
	情况的属性:指的是客观情况的属性,比如当前的时间、当前的位置、当前的场景(普通状态、紧急状态)。
	操作:含义还是一样,比如增删改查等。
	设定一个权限,就是定义一条含有四类属性信息的策略(Policy)。

一个请求会逐条匹配策略,如果没有匹配到策略,则返回默认效果,默认效果可以根据场景定制,可以是默认拒绝或是默认允许。另外,匹配方式也可以根据场景定制,可以使用逐条顺序匹配,匹配到策略直接返回。也可以使用完全匹配,匹配所有的策略,如果有一个拒绝(允许),则拒绝(允许)。

举例:文件权限模型

1、linux文件权限系统(DAC模型)

请添加图片描述

2、某企业网盘(RBAC模型)
  • 授权对象为文件夹,可继承

  • 预设权限模版请添加图片描述

  • 可以给账号、角色、部门授权

    • 同一个人从多个纬度被授权时,取权限的并集
    • 禁止访问,优先高于一切原子权限

测试范围

RBAC模型验证

简单场景:

  • 预设权限模版中的各原子权限正常
  • 针对文件夹给账户授权后权限操作正常
  • 以角色或者部门为单位授权后权限操作正常
基于RBAC结合业务逻辑
  • 资源(文件夹)
文件夹上下级关系联动
	权限继承
	当前授权和继承授权的冲突
文件夹变更
	文件夹删除与恢复
	文件夹移动(上下级关系变动)
	文件夹内子文件夹新增
  • 角色(角色/部门)
账号和角色关系变更
	移入和移除角色或部门
	部门是否有继承逻辑
同时有多重维度的授权
	取权限的并集
  • 预设权限模版

    模版变更,小概率事件

非功能测试
  • 性能测试
资源量级大
	eg:一级目录根目录中文件夹过多,计算当前账户需要对哪些文件夹可见时,计算压力大
	eg:某文件夹层级深度大时,计算某账号的继承权限,或者上下级关系变动重新继承时,计算压力大
角色量级大
	eg:某个文件夹的授权记录特别多,计算授权范围时,计算压力大
	eg:某个文件夹的授权管理复杂,当前账户计算权限取并集时,计算压力大
热点数据
	当使用缓存提高响应速度时,注意会存在热点数据,避免缓存击穿
	热点文件夹
	热点账号
  • 安全越权测试
前端越权
	无权限的页面,通过URL也无法访问
	无权限的操作,交互入口应该不展示
	无权限的数据,在列表中也不会展示
	权限限制需要前后端都做限制,接口鉴权也是要有的
横向越权
	尝试访问同级别的无权限数据,通过遍历id或者伪造请求等方式
		eg:访问其他未授权文件夹内的数据
纵向越权
	尝试访问当前权限范围,但是未授权的字段或者敏感信息
		eg:查看部门成员信息,试图查看薪酬等隐私信息

  • 14
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NC6系列UAP语义模型技术红皮书 第一章 前言 4 1.1 概念 5 1.2 定位 5 第二章 结构 6 2.1 应用模型 7 2.2 语义模型 7 2.2.1 定义形态 7 2.2.2 执行流程 9 2.2.3 数据形态 10 2.3 语义提供者 10 2.3.1 接口 11 2.3.2 扩展 14 2.4 函数 17 2.4.1 函数解析 17 2.4.2 函数扩展 17 2.5 参数 20 2.5.1 参数定义 20 2.5.2 参数引用 20 2.5.3 参数设置 20 2.5.4 参照依赖 21 2.5.5 自定义参照 21 2.6 宏变量 22 2.7 描述器 23 2.8 数据加工 24 2.8.1 概念 24 2.8.2 定位 24 2.8.3 执行原理 25 2.8.4 使用 25 2.8.5 常见问题 27 2.9 物化策略 27 2.10 复合语义模型 27 2.10.1 设计向导方式 28 2.10.2 语义脚本方式 29 2.11 语义上下文 31 2.12 脚本规则 31 2.12.1 实现规则类 32 2.12.2 配置文件注册 32 2.12.3 操作使用 33 第三章 语义模型管理 35 3.1 对象管理 36 3.1.1 目录管理 36 3.1.2 语义模型管理 37 3.1.3 监控 37 3.1.4 权限 38 3.1.5 全局变量配置 38 3.2 环境配置 39 3.3 导入导出 41 3.3.1 导出逻辑 41 3.3.2 导入逻辑 43 第四章 功能扩展 47 4.1 扩展语义提供者 48 4.2 扩展业务函数 48 4.3 使用数据加工 48 4.4 自定义执行策略 48 4.5 业务规则扩展 49 4.6 元定义驱动扩展 49 4.6.1 接口 50 4.6.2 实现 50 4.6.3 配置文件 50 4.6.4 使用 51 第五章 范例 52 5.1 脚本中引用参数范例 53 第六章 附录 57 6.1 入门 58 6.2 语义模型API 63 6.3 语义函数 65 6.4 其他函数 65 6.5 脚本引擎 66 6.6 针对查询引擎的改进 67 6.7 性能监控 67 6.8 多语言支持 68

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值