OWASP 2023年十大 API 安全风险清单
如今具有开放式的业务体系结构将是下一代网络的重要特征之一。其中,关键的技术之一就是网络控制与应用层之间的应用程序接口(API)。通过应用程序接口,业务开发商 、独立软件提供商 (ISV)等第三方应用可以获得使用现有网络资源的能力 ,从而方便 、灵活地为客户提供所需的业务。API接口已经深入应用到各个网页与APP中。 虽然API的广泛使用让各种应用更加精巧地改善我们的生产和生活,但是也会导致风险的提升。随着我们在工作或娱乐中更加依赖通过API来处理关键事务,我们也更容易因为API遭受攻击而被影响。
1.对象级别授权失效(Broken Object Level Authorization)
描述:攻击者就可以通过改变请求中的对象ID来绕过授权限制,从而获取敏感数据或者完全掌控账户。这个漏洞在基于API的应用程序中非常普遍,因为服务器通常无法 跟踪完整的用户状态,而是依赖于请求参数中的对象ID来决定哪些对象可以被用户访问。利用:水平越权、垂直越权、参数遍历
2. 身份认证失效(Broken Authentication)
描述:身份验证机制实现方式可能不够严格或者考虑不完全,攻击者有可能破坏或伪造身份验证令牌,或者利用漏洞来盗用其他用户的身份。利用:暴力破解、Token未校验或Token泄露
3. 对象属性级别授权失效(Broken Object Property Level Authorization)
描述:对象属性级别授权可以确保用户只能够访问他们具有权限的资源和信息。如果授权失效了,攻击者就有可能访问到他们没有权限访问的信息或资源, 从而对系统构成威胁。利用:修改API请求绕过限制
4. 资源消耗无限制(Unrestricted Resource Consumption)
描述:API请求需要使用网络、CPU、内存和存储等资源,如果没有对客户端/用户可以请求的资源大小或数量进行限制,就可能会导致API服务器性能下降,最终引起拒绝服务攻击(DoS)。攻击者可以发送大量请求来消耗API服务器的资源,甚至通过暴力破解方式来突破安全措施,从而造成损失。利用:Dos攻击、 大量文件上传耗尽服务器资源
5. 功能级授权失效(Broken Function Level Authorization)
描述:攻击者可以利用漏洞来发送一些本不允许他们访问的API请求,这可能会导致一些合法的API请求被暴露给未经授权的匿名用户或普通用户。利用:修改HTTP方法请求方法访问一些非授权的API、普通用户修改为api/admininfo以调用管理类API
6. 服务端请求伪造(Server Side Request Forgery)
描述:攻击者可以通过找到需要提供URL作为参数的API端点来实施这种攻击,然后访问提供的URL。成功地利用此漏洞可能会导致内部服务枚举(例如端口扫描)或信息泄露,并可能绕过防火墙或其他安全机制。在某些情况下,它可能导致DoS或服务器被用作隐藏恶意活动的代理。利用:SSRF
7. 安全配置错误(Security Misconfiguration)
描述:安全配置错误不仅会暴露敏感用户数据,还包括系统细节,而这些细节可能导致服务器完全被控制。包括如:未强制执行HTTPS、不必要的HTTP方法、错误配置的HTTP标头、未净化处理的输入导致数据受损、数据泄露、详细冗长的错误消息、临时配置、跨域资源共享、缺少安全补丁等。利用:信息泄露
8. 缺少对自动化威胁的防护(Lack Of Protection From Automated Threats)
描述:缺少对自动化威胁的防护意味着在网络安全系统中缺乏有效的机制来检测和防御自动化攻击,自动化攻击是指使用自动化工具和技术,如恶意软件、蠕虫病毒、僵尸网络等,对计算机系统、网络设备和应用程序进行攻击。这些攻击通常可以通过大规模的、自动化的方式进行,从而产生更广泛和更严重的影响。利用:蠕虫病毒、僵尸网络
9. 存量资产管理不当(Improper Assets Management)
描述:存量资产管理不当是指企业没有对其现有的IT资源(包括硬件、软件、网络设备等)进行有效管理和监控。这会导致一些旧的或者不再使用的IT资源没有被及时清理,而这些资源可能存在安全漏洞,被黑客利用入侵企业系统。此外,未经管理的存量资产也可能使企业面临更高的运营成本和维护难度。利用:旧的或者不再使用的IT资源由于长期未维护,可能存在安全风险
10. 不安全的第三方API(Unsafe Consumption Of APIS)
描述:不安全的第三方API是指企业使用的来自第三方供应商的API存在一些安全漏洞或者没有被充分保护,这使得黑客可以利用它们来入侵企业系统或者窃取用户数据。第三方API可能会因为开发者的错误、不安全的默认配置或者未经验证的代码而导致安全漏洞。利用:第三方API发现的nday漏洞或未被公开的0day漏洞