OWASP API 9 :资产管理不当
现代应用程序交付依赖于广泛使用应用程序编程接口 (API) 与外部和内部实体交换数据和服务。尽管该接口提供了便捷,可以减少集成不同服务的工作量,但API安全性仍然是一个关键问题,因为一个API端点上的安全缺陷可能危及整个应用程序层。由于缺乏对生产API端点的监督和所有权,不恰当的资产管理(OWASP API9: 2019)是一个普遍存在的漏洞。
什么是不当资产管理漏洞?
API通过编程调用和创建-读取-更新-删除(CRUD)操作支持对数字服务的访问和管理。与API中其他由编码错误引起的安全风险不同,不当的资产管理是由API管理中的人为错误造成的。API 管理不当是指生产 API 被构建、使用,然后不再管理而不被终止的情况。此类 API 端点仍未修补,并且可能使用具有过时安全控制版本的旧库。这允许通过 API 环境无限制地访问生产数据,从而允许恶意参与者破坏和利用应用程序层的信息流。
不当的资产管理漏洞还允许恶意行为者访问API的非生产版本,包括在测试、暂存和开发环境中使用的API。一种常见的攻击模式是滥用这些端点,在没有用户身份验证的情况下切换到其他生产 API。
导致不当资产管理缺陷的一些常见情况包括:
缺少 API 端点的所有权
所有权是 API 安全性的关键因素,它决定了 API 资源的责任、操作机制、上下文和依赖关系。当组织购买统包 API 解决方案但未能分配其所有权以进行定期配置更新和安全管理时,API 端点仍然容易受到各种资产管理攻击场景的影响。
缺少 API 文档
每个端点都应该包含相应的文档,帮助开发人员有效地管理和重用代码,同时采用适当的API安全最佳实践。准确的API文档对于管理和保护API公开的底层服务至关重要。除了准确性,过时的文档还会引入安全错误配置缺陷,因为在不同组件之间缺少/不正确的服务相关性信息。不准确的文档还遗漏了添加到API中的最新安全改进和安全修复程序。
使用过时的 API 版本
过时的API版本缺少为解决新出现的API安全反模式而构建的最新安全补丁。未打补丁的系统通常是软目标,通常被用作攻击载体,以破坏整个网络。一些API专业人士倾向于在更安全的版本取代旧版本后,仍保留旧版本的API。在框架中引入漏洞的典型情况是,这些过时的版本不再由团队中的任何人管理或拥有,但仍然用于访问生产和非生产数据。
缺乏资产透明度
不完整或过时的API库存清单扩大了攻击面,因为要知道哪些API版本是安全的,哪些版本需要停用是很有挑战性的。不完整的版本历史使建立不同API版本之间的向后兼容性变得困难,降低了应用于活动端点的安全补丁的有效性。在没有资产清单的情况下,API专业人员可能无法停用资产,这使得攻击者能够针对脆弱的端点并访问敏感数据或应用程序逻辑。
如何防范API9:2019资产管理不当
实施严格的库存
不断更新资产的清单以确保在删除不再使用的端点的同时考虑每个新部署的 API 端点。为了帮助快速阻止通过 API 组件利用的攻击,清单应包括基本信息,例如 API 主机、启用的安全功能、API 所有者和公开的后端 API 服务。
使用安全防火墙
安全防火墙通过阻止黑名单请求和允许白名单请求来过滤不需要的API流量。建议在API主机上部署管理强大的Web应用防火墙,拦截不符合API定义的恶意响应,防止命令注入和应用层DDoS攻击。
实施 API 速率限制机制
API级速率限制机制对来自所有来源的API流量进行评估,以确保它们不超过定义的限制。如果没有速率限制机制,从公共API发送到API端点的所有请求都会被接受并提供服务,这就允许恶意行为者组织拒绝服务攻击,从而使 API 服务过载以处理真正的请求。最优速率限制在不影响用户体验的情况下,通过防止对API的调用数量激增来保护API环境。
持续漏洞扫描
持续的威胁监视和漏洞扫描有助于识别在生产环境中出现的安全错误配置。一个有效的漏洞扫描工具可以帮助API管理团队在API安全漏洞被利用来策划攻击之前减轻这些风险。
参考来源:
https://crashtest-security.com/improper-assets-management/