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