水平越权访问与垂直越权访问漏洞
前言
电网机巡智能管控平台是XX省电力巡检智能管控平台,辅助全省无人机巡线作业工作顺利、高效开展。由于今年互联网出现了严重的安全事故。XX省对全省的业务系统提高了安全意识,开展了为期4个月的“护网行动”,对全省所有的业务系统进行全面的安全检查,成立了护网行动小组。“非常荣幸的”我们研发的电网机巡智能管控平台被列为检查对象。在安全检查的过程中,发现了大量接口存在越权访问漏洞。
借此机会,对越权访问漏洞进行了学习,结合本次护网行动的开展过程,总结了一下关于越权访问漏洞的相关内容。
越权访问漏洞
越权访问(Broken Access Control,简称BAC)是Web应用程序中一种常见的漏洞,由于其存在范围广、危害大,被OWASP列为Web应用十大安全隐患的第二名。
该漏洞是指应用在检查授权时存在纰漏,使得攻击者在获得低权限用户账户后,利用一些方式绕过权限检查,访问或者操作其他用户或者更高权限。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定。越权访问漏洞主要分为水平越权访问和垂直越权访问。
水平越权访问漏洞
水平越权访问是一种“基于数据的访问控制”设计缺陷引起的漏洞。由于服务器端在接收到请求数据进行操作时没有判断数据的所属人/所属部门而导致的越权数据访问漏洞。
假设用户A和用户B属于同一角色,拥有相同的权限等级,他们能获取自己的私有数据(数据A和数据B),但如果系统只验证了能访问数据的角色,而没有对数据做细分或者校验,导致用户A能访问到用户B的数据(数据B),那么用户A访问数据B的这种行为就叫做水平越权访问。
垂直越权访问漏洞
垂直越权是一种“基于URL的访问控制”设计缺陷引起的漏洞,又叫做权限提升攻击。
由于后台应用没有做权限控制,或仅仅在菜单、按钮上做了权限控制,导致恶意用户只要猜测其他管理页面的URL或者敏感的参数信息,就可以访问或控制其他角色拥有的数据或页面,达到权限提升的目的。
防范措施
- 前后端同时对用户输入信息进行校验,双重验证机制
- 调用功能前验证用户是否有权限调用相关功能
- 执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限
- 直接对象引用的加密资源ID,防止攻击者枚举ID,敏感数据特殊化处理
- 永远不要相信来自用户的输入,对于可控参数进行严格的检查与过滤
原文链接:https://blog.csdn.net/u012068483/article/details/89553797