【安全】越权
水平越权(Horizontal Privilege Escalation)
水平越权是指攻击者以划一或相同权限的身份,试图访问其他用户的资源或数据。
例如,通过修改 URL 参数或会话标识符来访问其他用户的订单信息。
垂直越权(Vertical Privilege Escalation)
垂直越权是指攻击者以低权限身份,试图获取高权限级别的访问权限。
示例:例如,通过利用身份验证漏洞或权限提升漏洞来获取管理员权限。
漏洞防范
防护方式:
实施访问控制:在应用程序的层面上实施访问控制机制,包括身份验证,对用户进行恰当的身份验证和授权,仅允许其实行其所需的操纵。
最小权限原则:在分配用户权限时,接纳最小权限原则,即给予用户所需的最低权限级别,以限制潜伏的越权行为。用户只应具备完成其任务所需的最小权限。
访问控制模子
[*]基于角色的访问控制(RBAC, Role-Based Access Control)
[*]基于属性的访问控制(ABAC, Attribute-based Access Control)
[*]其他
基于角色的访问控制(RBAC)
https://i-blog.csdnimg.cn/blog_migrate/d0b2ef8de56aa196c2ad291231708069.png
[*]RBACO — 核心 RBAC
[*]RBAC1 — 条理 RBAC (RBAC0 + 角色条理布局)
[*]RBAC2 — 束缚 RBAC (RBAC0 + 束缚)
[*]RBAC3 — 组合 RBAC (RBAC1 + RBAC2)
RBAC0
[*]3 个元素: 用户、角色和权限
https://i-blog.csdnimg.cn/blog_migrate/e48a00709c83f40f15d2476fccd6c432.png
https://i-blog.csdnimg.cn/blog_migrate/179ab9d7bab840ea7907c7a4b1a10db4.jpeg
RBAC1
[*]4 个元素: 用户、角色、权限、条理布局/继承
https://i-blog.csdnimg.cn/blog_migrate/8411fee6c3085315e40daf410ab04d01.png
RBAC2
[*]4 个元素: 用户、角色、权限和束缚
https://i-blog.csdnimg.cn/blog_migrate/45f4236e07b98fd2363b60e5b27f3b45.png
RBAC3
[*]将 RBAC1 和 RBAC2 的所有特征(角色继承和束缚关系)集成到模子中。
[*]可以根据差异的上下文限制或激活可用的用户权限,当用户在会话期间实行的任务可能必要差异级别的访问时,可以在会话期间激活更高级别的权限
基于属性的访问控制(ABAC)
[*]ABAC是一种细粒度的访问控制机制,它通过评估一系列属性来确定用户是否可以实行特定操纵。这些属性包括但不限于用户的身份、角色、职责、位置、时间等,还可以包括情况因素如设备类型、网络位置等。
[*]ABAC 模子基于四个核心元素:用户、资源、情况和操纵。
[*]
[*]用户是哀求访问体系资源的实体,可以是个人、程序或设备。
[*]资源是必要掩护的体系实体,如文件、数据库、应用程序等。
[*]情况包括访问发生时的上下文信息,如时间、所在、安全级别等。
[*]操纵是用户哀求对资源实行的行为,如读取、写入、删除等。
原理
ABAC 通过评估一系列预定义的策略来决定是否授予权限。这些策略是基于属性的逻辑语句,定义了访问控制的规则。当用户尝试访问资源时,ABAC 体系会查抄相关的属性和策略,如果属性满足策略条件,则授权访问。
例如一个典范的 ABAC 场景描述如下图,当 subject 必要去读取某一条记录时,我们的访问控制机制在哀求发起后遍开始运作,该机制必要盘算,来自 policy 中记录的规则,subject 的 attribute,object 的 attribute 以及 environment conditions,而最后会产生一个是否允许读取的结果
https://i-blog.csdnimg.cn/blog_migrate/18ee2c955bd77249dd7da3f8b4545a78.png
为什么ABAC没有标准建模呢?作者的经验是认为,ABAC主要是语法设计,因此会非常灵活,这种非常灵活的关系不适合用模型和模型
之间的约束关系来表示,因此目前经典的设计都是用xml或者json来表示一个policy。
{
"Action":[
"EditUser",
"GetUser"
],
"Resource":"user:1、2、3、4",
"Condition":{
"DateLessThan":{
"acs:CurrentTime":"2021-03-22T17:00:00+08:00"
}
}
} RBAC&ABAC对比
对比
ABAC
RBAC
机动性
动态授权
静态授权
控制粒度
可以很细
控制粒度比力粗
复杂度
复杂
简单
案例
AWS IAM 的ABAC实现
来自 AWS Senior Manager :https://www.youtube.com/watch?v=Iq_hDc385t4&t=2378s
第三方权限框架
轻量级权限控制框架Shiro和企业级权限控制框架SpringSecurity都可以实现如上两种方案的权限控制。
参考文献
水平越权和垂直越权
StackOverflow 的 Q/A 帖子"基于角色访问控制"是一个很好的例子,值得一读。
阿里云的ABAC案例
History-based access control
Using RBAC Authorization
What is Azure role-based access control (Azure RBAC)?
What is Role-Based Access Control (RBAC)? A Complete Guide | Frontegg
Pattern-Oriented Software Architecture - Access control pattern
深入明确RBAC_架构_俞凡_InfoQ写作社区
https://www.cnblogs.com/cangqinglang/p/16547720.html
备注:
以上图片泉源于网络
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]