API 攻击剖析:了解 BOLA 和清单管理漏洞
API 和端点基础知识
API 用于实现 B2C、B2B 协作和内部集成等功能,通常通过 Web 浏览器使用的 HTTP 协议进行通信。API 端点是指组成 API 的单个可访问资源及其可执行的操作,例如 GET /orders/{orderID}。
为什么 API 是下一个重大安全挑战?
过去攻击者主要关注入侵数据中心和捕捉网络流量,而如今 API 广泛应用,许多 API 本身可供外部访问,仅凭凭据和密钥防护,攻击者易窃取凭据和密钥,导致 API 滥用。Akamai 保护的所有流量中有 31% 是 API 流量,Gartner 预计 2024 年 API 滥用和数据泄露事件将增加一倍。
现实世界中的 API 攻击案例研究:帐户接管 | Scoolio
2021 年德国教育应用程序 Scoolio 发生帐户接管事件,安全研究人员发现 BOLA 漏洞,攻击者通过两个 API 调用访问其他用户 PII。攻击步骤:
- 发送
GET /api/v3/Explorer 调用,返回 UUID(ProfileID)。
- 发送
GET /api/v2/Profile/{ProfileID} 调用,返回用户 PII(电子邮件、出生日期、GPS 位置等)。
清单管理不当
该案例中 API 漏洞的另一个方面是清单管理不当,版本 2 API 仍可访问,削弱了版本 3 的改进效果,导致漏洞影响更严重。
企业保护 API 的措施
- 集中授权:实施集中授权引擎防止开发过程中的授权缺陷。
- API 测试:使用静态代码分析和动态测试方法测试漏洞,特别是失效的授权。
- 运行时保护:对生产环境应用运行时保护措施,检查用户对生产数据的访问权限。
如何采用更先进的 BOLA 检测技术
通过建模 API 活动涉及的实体之间的关系(资源、参与者、业务流程),区分合法与非法活动。例如,银行应用程序中读取帐户数据应仅限于单个用户,而查看汇率应开放给所有用户。机器学习和行为分析技术可支持关系映射。
实践中的高级 BOLA 攻击检测
以 Scoolio 案例为例,通过实体映射和行为分析检测 BOLA 漏洞。例如,用户更改自己的用户个人资料是合法操作,但随后更改管理员密码则被识别为未经批准的操作,平台生成告警。
从哪里开始实施 API 安全计划
- 确保 API 清单始终处于最新状态:无法保护未知的 API。
- 监控非生产性和生产性 API 环境:扩展监控到所有 API 环境。
- 配置实体之间的关系:考虑 API 活动中实体之间的关系,发现漏洞和防护缺口。
了解 API 中的行为有助于发现滥用迹象。建议查看 OWASP 十大 API 风险明细表获取更多信息。