《数据安全风险评估白皮书》
400-100-9516
news
技术分享

站内搜索

必看!2023 OWASP API Security Top 10正式发布,深度详解新版风险清单!
2023-07-03 2538 技术分享
  • API安全一直是业内关注度较高的话题。随着API应用的发展和安全实践的深化,API的安全局势也在不断变化。6月5日,OWASP正式发布了2023年API安全Top 10风险清单,相比2019年版,对API身份认证和授权的管理进行了重点突出,自动化威胁防护缺失和API供应链的安全风险等也被首次加入到了清单,本文将重点对这几类风险进行展开介绍。

在数字化时代,API扮演着极其重要的角色,它们就像是不同系统之间的桥梁和通信管道,让不同的组织和应用之间能够共享数据和功能。我们可以把API看作是一种方便、低成本的数据流通方式,它将不同的场景和供应商连接起来,促进数据的交换和共享,推动不同企业、行业甚至领域之间的合作。统计数据显示,API请求已经占据了所有应用请求的83%;预计2024年API请求命中数将达到42万亿次,这显示了API在全球范围内的广泛应用。

与此同时,API也面临着严峻的安全挑战。据Gartner预测:到2024年,由API安全引起的数据泄露风险将翻倍。黑客们正趁机利用API漏洞,以高效、隐蔽的方式进行自动化攻击,而由此引发的系列数据安全事件对相关企业和用户的权益造成了严重损害,例如2021年,Facebook和LinkedIn的数据泄露事件就震惊了全球。

undefined

OWASP API Security Top10
OWASP(Open Web Application Security Project)是一个国际性的非营利组织,致力于改善Web应用程序的安全性和保护网络世界的安全。OWASP由一群安全专家、开发人员和志愿者组成,他们共同努力提供免费和开放的资源、工具和指南,以帮助开发人员、安全专业人员和组织更好地理解和应对Web应用程序的安全风险。
OWASP API Security是OWASP针对API安全的重点研究项目,旨在为开发人员和安全人员提供价值,强调不安全API的潜在风险,并说明如何减轻这些风险。为了实现这一目标,OWASP API Security创建并维护了一个“API Security Top 10”的风险文档。

2019年,OWASP首次发布了API Security Top 10,后来随着API应用的发展和安全实践的深化,OWASP于2023年正式发布了API Security Top 10的内容更新,对API身份认证和授权的管理进行了重点突出(占了Top5中的4个);此外,自动化威胁防护缺失和API供应链安全风险等也被首次加入到了清单中,下面将对几类重点风险进行展开介绍。

undefined

 1、认证和授权相关风险
在2023版的API Security Top 10清单中,认证和授权相关的风险占了4条,分别为对象级授权失效(BOLA)、身份认证失效、对象属性级授权失效、功能级授权失效。
 
  • 对象级别授权失效

相关风险介绍:

威胁 攻击者可以利用对破损的对象级别授权存在漏洞的API端点,通过操纵请求中的对象ID来实施攻击,这可能导致对敏感数据的未经授权访问。这个问题在基于API的应用程序中非常常见,因为服务器组件通常不完全跟踪客户端的状态,而是更多地依赖于从客户端发送的参数(如对象ID)来决定要访问哪些对象,这是对API的最常见和最具影响力的攻击。
脆弱性 现代应用程序中的授权和访问控制机制是复杂而广泛的,即使应用程序实施了适当的授权检查基础设施,开发人员可能会忘记在访问敏感对象之前使用这些检查。访问控制检测通常不适合自动化的静态或动态测试。
影响 未经授权的访问可能导致数据泄露给未经授权的人员、数据丢失或数据篡改。对对象的未经授权访问还可能导致完全接管账户。
攻击示例场景:

一家汽车制造商通过一种移动API启用了对其车辆的远程控制,用于与驾驶员的手机通信。该API使驾驶员能够远程启动和停止发动机,以及锁定和解锁车门;在这个流程中,用户将车辆识别号码(VIN)发送给API;然而,API未能验证VIN是否代表属于登录用户的车辆,从而导致BOLA漏洞,攻击者可以访问不属于他们的车辆。

  • 身份认证失效

相关风险介绍:

威胁 API 中的身份验证机制是一个复杂且令人困惑的部分。软件和安全工程师可能会误解身份验证的边界以及不知如何正确实现它。此外,身份验证机制易受攻击者攻击,因为它暴露给所有人。这两个问题使身份验证组件潜在地容易受到许多攻击。
脆弱性 这里有两个子问题:1. 缺乏保护机制:负责身份验证的 API 端点必须与常规端点有所不同,并实现额外的保护层;2. 机制的错误实施:该机制在使用、实施时没有考虑攻击向量,或用于错误的用例(例如:为物联网客户端设计的身份验证机制可能不适用于 Web 应用程序)。
影响 攻击者可以控制系统中其他用户的账户,读取他们的个人数据,并代表他们执行敏感操作,比如货币交易和发送个人信息。

攻击示例场景:

为了更新与用户账户关联的电子邮件地址,客户端应该发出如下所示的 API请求:

undefined

因为 API 不要求用户通过以下方式确认其身份提供他们当前的密码,不良行为者能够将自己置于位置以窃取身份验证令牌。他们也可能能够接管受害者的账户,方法是更新受害者账户的电子邮件地址。
  • 对象属性级别授权失效

相关风险介绍:

威胁 攻击者可以利用易受破损对象属性级别授权的 API 端点,读取或更改它们不能访问的对象属性值。
脆弱性 API 中的授权是分层完成的。虽然开发人员可能会执行适当的验证以确保用户有权访问函数,然后访问特定对象,但他们通常不会验证用户是否允许访问对象中的特定属性。
影响 未经授权的访问可能导致数据泄露、数据丢失或数据操纵。

攻击示例场景:

一个在线市场平台,向一种类型的用户(“主人”)提供将他们的公寓出租给另一种类型的用户(“客人”)的服务,要求主人在收取客人住宿费用之前接受客人的预订。作为这个流程的一部分,主人向POST /api/host/approve_booking 发送 API 调用,并附带以下合法载荷:

undefined

API 端点易受攻击,因为没有验证主人是否应该访问内部对象属性 - “total_stay_price”,客人会被收取更多费用。

  • 功能级别授权失效

相关风险介绍:

威胁 攻击者利用漏洞需要向他们不应该访问的 API 端点发送合法的 API 调用,这些端点可能暴露给匿名用户或普通非特权用户。在API中发现这些缺陷更容易,因为API更加结构化,并且访问某些函数的方法更可预测(例如:将 HTTP 方法从 GET 更改为 PUT,或者将 URL 中的“users”字符串更改为“admins”)。
脆弱性 函数或资源的授权检查通常通过配置进行管理,有时在代码级别进行管理。实施适当的检查可能是一项令人困惑的任务,因为现代应用程序可能包含许多类型的角色或组以及复杂的用户层次结构(例如子用户或具有多个角色的用户)。检测依赖于适当的日志记录和监视。
影响 此类漏洞允许攻击者访问未经授权的功能。管理功能是此类攻击的关键目标。

攻击示例场景:

一个 API 包含一个只应向管理员公开的端点 - GET /api/admin/v1/users/all。此端点返回应用程序所有用户的详细信息,并未实现功能级别的授权检查。攻击者学习了 API 结构并进行推测,成功访问了该端点,导致暴露了应用程序用户的敏感详细信息。
2、新增的风险
  • 服务端请求伪造风险

相关风险介绍:
威胁 利用此漏洞需要攻击者找到接收 URI 作为参数的 API 端点,然后访问提供的 URI。URL 解析不一致对于大多数常见编程语言的内置函数和库是众所周知的问题。
脆弱性 现代应用程序开发中的概念鼓励开发人员访问客户端提供的URI。通常情况下,服务器端数据检索不会被记录,或者即使被记录了,也很有可能没有被监控到。
影响 成功利用此漏洞可能导致内部服务枚举(例如端口扫描)或信息泄露,从而绕过防火墙或其他安全机制。在某些情况下,它可能导致 DoS 或服务器被用作隐藏恶意活动的代理。

攻击示例场景:

社交网络允许用户上传个人资料图片。用户可以选择要么从他们的机器上传图像文件,要么提供 URL 图像。选择后者将触发以下 API 调用:

undefined

  • 缺乏对自动化攻击的防护

相关风险介绍:

威胁 利用通常涉及理解 API 的商业模型,发现敏感的业务流程,并自动访问这些流程,从而对业务造成损害。
脆弱性 当被分解时,每个攻击的请求都代表一个完全合法的请求,并且不能被识别为攻击。只有在查看与服务/应用程序业务逻辑相关的请求总和时,才能识别攻击。
影响 一般来说,预计不会产生技术影响。可能会以不同的方式损害业务,例如:1、阻止合法用户购买产品;2、导致游戏内部经济的通货膨胀;3、允许攻击者发送过多的消息/评论,容易传播虚假消息。

攻击示例场景:

一家科技公司宣布他们将在感恩节发布一款新的游戏主机,这个产品需求量非常高,库存有限。攻击者是自动威胁网络的操作者,编写代码用于自动购买新产品并完成交易。在发布当天,攻击者运行分布在不同 IP 地址和位置的代码,API 没有实现适当的保护措施,允许攻击者在其他合法用户之前购买大部分股票。随后,攻击者在另一个平台上以更高的价格出售该产品。

  • 对第三方API的不安全调用

相关风险介绍:
威胁 开发人员倾向于信任但不验证与外部或第三方 API 交互的端点。成功利用这些 API 中的安全漏洞可能会影响依赖它们的人。
脆弱性 通常,API 集成依赖于较弱的安全要求,例如有关传输安全性、身份验证/授权以及输入验证和清理的要求。
影响 将敏感信息暴露给未经授权的人员以及多种类型的注入攻击都是常见的问题。

攻击示例场景:

一个 API 依赖于第三方服务来丰富用户提供的业务地址。当终端用户向 API 提供地址时,它会被发送到第三方服务,然后返回的数据存储在本地的 SQL 数据库中。

恶意行为者使用第三方服务存储与他们创建的企业相关联的 SQLi 负载。然后他们攻击易受攻击的 API,提供特定的输入使其从第三方服务中提取他们的“恶意企业”。SQLi 负载最终被数据库执行,将数据窃取到攻击者控制的服务器。

3·总结与展望
随着API的广泛及深入应用,其重要性在日益增加;攻击者对API的利用也变得更加普遍和有组织性。了解和评估API安全风险是保护应用程序和敏感数据免受恶意攻击的关键步骤。

OWASP API Security Top 10为我们提供了一个框架,可以识别和理解常见的API安全风险,并指导我们制定相应的安全对策。通过深入了解每个风险的特点和潜在影响,我们能够更好地规划和实施必要的防御措施。

当然,尽管OWASP API Security Top 10提供了宝贵的指导,我们也要意识到其在涵盖全球范围的API安全风险方面可能存在一定的局限性。由于不同地区的网络环境和业务需求各有差异,中国企业和组织在API安全方面面临着独特的挑战和风险。因此,我们将继续深入研究,并在后续的文章中专注于分析适用于中国企业和组织的API安全风险,并提供更具针对性的解决方案。通过这种方式,我们可以更好地保护和维护中国企业和组织的API生态系统,确保其在数字化时代安全可靠地运行。

在线客服