OWASP API 安全项目旨在解决越来越多的组织将潜在敏感 API 作为其软件产品的一部分进行部署的问题,这些 API 通常用于内部任务和与第三方的接口。不幸的是,许多 API 没有经过严格的安全测试。OWASP API 安全项目通过强调不安全 API 中的潜在风险,并说明如何减轻这些风险,为软件开发人员和安全评估人员提供价值。为了实现这一目标,OWASP AP I安全项目创建了一份 10 大 API 安全风险文名单。
2023 年 OWASP十大 API 安全风险清单
API 1:中断的对象级授权
API 倾向于暴露处理对象标识符的端点,从而创造出对象级访问控制问题的广泛攻击面。因此在使用用户 ID 访问数据源的每个函数中,应当考虑执行对象级授权检查。
API 2:无效的身份认证
身份验证机制通常实施不正确,允许攻击者破坏身份验证令牌或利用实现缺陷暂时或永久假定其他用户的身份,损害系统识别客户端/用户的能力,会损害整体 API 安全性。
API 3:失效的对象属性级授权
此类别结合了 API 3:2019-过度的数据泄露和 API 6:2019-批量分配,关注的根本原因是对象属性级缺乏授权验证或验证不当,从而导致信息泄露或越权访操纵。
API 4:不受限制的资源消耗
满足 API 请求需要网络带宽、CPU、内存和存储等资源。其它资源如邮件/SMS/电话通话或生物特征验证由服务提供商通过 API 集成提供并按照请求进行支付,如果攻击成功可导致拒绝服务后果或运营成本上升。
API 5:无效的功能级授权
具有不同层次结构、组和角色的复杂访问控制策略,以及管理功能和常规功能之间的不明确分离,往往会导致授权缺陷。通过利用这些问题,攻击者可以访问其他用户的资源和/或管理功能。
API 6:对敏感业务流程的无限制访问
易受到此风险影响的 API 会暴露业务流(例如买票或发布评论),而不会弥补如果以自动化方式过度使用,该功能如何对业务造成损害,这一风险不一定源自实现问题。
API 7:服务器端请求伪造
当 API 在没有验证用户所提供 URI 的情况下提取远程资源时,可能就会引发服务器端请求伪造 (SSRF) 缺陷,这可以可使攻击者诱骗应用程序将构造的请求发送给未预期目的地,甚至即使受到了防火墙或 VPN 的保护也是如此。
API 8:安全配置错误
API 和支持它们的系统通常包含复杂的配置,旨在使 API 更具可定制性。软件和 DevOps 工程师可能会错过这些配置或者在配置时不遵循安全最佳实践,从而为不同类型的攻击打开了大门。
API 9:清单管理不当
与传统的 Web 应用程序相比,API 往往会公开更多的端点,因此正确和更新的文档非常重要。主机和已部署 API 版本的适当清单对于缓解已弃用的 API 版本和公开的调试终结点等问题也很重要。
API 10:不安全的 API 消耗
开发人员偏向于信任从第三方 API 接收的数据而不是用户输入的数据,因此倾向于采用较弱的安全标准。为了破坏 API,攻击者会攻击集成的第三方服务,而不是试图直接破坏目标 API。
文章来源:https://owasp.org/API-Security/editions/2023/en/0x11-t10/