在2023版OWASP API安全风险Top10清单中,权限管理不当被认为是API最主要的风险之一。相关的风险类型有:
相关风险解读
API-2 身份认证失效(Broken Authentication)
在2023-RC版的更新中,「API-2 用户身份认证失效」(Broken User Authentication)被修改为了更广义的「身份认证失效」(Broken Authentication),指出API的访问者无论是实人还是程序,都需要对其进行身份校验。
在实践中,关于API的认证机制和身份定义一般与业务场景相关,快速迭代的API保持认证机制的动态性和有效性是一个挑战。不合理的认证机制会导致未授权访问问题,以及认证被绕过;而过度复杂的认证机制会影响用户的使用效率以及下游对接应用程序的维护成本。
设计认证机制时应考虑以下内容:
• 使用标准化的认证机制(如JWT、OAuth等),并参考其最佳安全实践。避免使用Basic Auth等简单认证手段。
• 区分用户身份与客户端身份,用户在认证身份后,动态获取API的访问令牌。
• 考虑暴力破解、账号枚举、速率限制和锁定保护。
• 对敏感操作API添加双因素或多因素验证。
• 认证时加密敏感数据。
API-1 对象级别授权失效(Broken Object Level Authorization)
即水平越权,从2019版到2023版,对象级别授权失效一直被置于API风险的首位。「对象级别」指的是通过参数控制的访问对象,如针对GET /system/{user}/info/接口的通信中,系统设计上每个用户只能访问自己的内容,但如果授权不当,攻击者可以遍历{user}参数,越权批量访问他人数据。
这个风险定义与身份认证不同,即使在经过身份认证的用户(user-1)也可以利用此漏洞访问(user-2)的数据。此风险的防范点主要在于功能-多租户的权限设计与代码实现。
• 在功能设计及需求评审过程环节将多租户设计与功能权限设计融合,并参考安全团队意见。
• 使用随机值、不可预测的值作为查询条件,防止被猜测或枚举。
• 针对功能和多租户权限设计,应编写对应的测试用例规避此风险,并引入安全检查。
• 针对不同租户的使用行为加以监控,发现未被观测到的水平越权行为。
API-5 功能级别授权失效(Broken Function Level Authorization)
即垂直越权,此项在2023版没有变动。例如普通用户可以访问管理员部分功能API、针对RestFul风格接口某些只读用户(GET)可以越权进行数据操作(UPDATE, DELETE)等。
关于此问题的防护点主要在于系统的功能与用户角色的交叉设计及代码实现。
• 针对应用系统完整的梳理API资产层次结构,并针对不同API、不同用户进行权限的交叉检查。
• 确保所有的访问行为都被纳入用户身份设计之中,禁止未授权访问。
• 针对复杂场景,使用“用户组”抽象层对用户权限进行动态管理。
萤火API安全监测平台相关能力
萤火API安全监测平台通过旁路API流量分析,提供一体化API资产梳理、威胁检测、涉敏数据监控方案。针对以上API认证与权限风险,萤火内置能力有:
账号身份识别与行为分析
萤火内置OAuth、JWT等十余种常见的API认证机制识别能力,从流量中抽取用户身份唯一ID,关联会话Session唯一ID,进行用户级别的行为跟踪分析,形成账号资产台账、账号行为画像。针对授权用户异常接口调用、批量接口访问及数据窃取行为进行告警。辅助企业管理第三方用户、合作伙伴、内部或外包员工针对中台系统API的访问行为。
API权限漏洞利用告警
基于自动化认证方式识别及内置的中间件API指纹库,对无鉴权接口、临时测试接口进行精准告警;针对涉敏接口、高权限接口通过参数级别统计分析,判断潜在的未授权风险;针对账号的异常行为,通过不同维度的组合统计指标进行告警。
发表评论
您还未登录,请先登录。
登录