
应用程序接口安全是指实施保护措施来保护应用程序接口及其传输的数据,最终防止未经授权的访问并确保软件系统和服务的可靠性。它对于保护您的数据和应用程序免遭未经授权的访问、数据修改或破坏至关重要。本文探讨了开发人员如何保护应用程序接口的更佳实践
随着现代软件开发越来越依赖应用程序接口(API),API 已成为 *** 攻击的主要目标。在 于 2023 年进行的一项调查中,92% 的参与研究组织在过去一年中至少遇到过一次与 API 相关的安全事件。在这些企业中,57%的企业遇到过多次与 API 相关的安全事件。让我们来讨论一下风险以及如何避免风险。
(OWASP)是一个致力于提高软件安全性的非营利性组织。它提供各种资源,包括指南、工具和更佳实践,以帮助开发人员和组织提高应用程序的安全性。该组织旨在提高人们对应用程序安全问题的认识,并提供切实可行的解决方案来降低风险。
2019 年,该组织在年度报告中增加了安全 。该榜单确定了 API 安全十大风险,为开发人员提供指导,让他们全面了解 API 生态系统中普遍存在的威胁。OWASP 维护十大 API 风险,最新版本。
| OWASP API 2019 年十大风险列表 | OWASP API 2023 年十大风险列表 |
|---|---|
| 1. 被破坏的对象级授权 | 1. 被破坏的对象级授权 |
| 2. 被破损的用户身份验证 | 2. 失灵的身份验证 |
| 3. 数据过度暴露 | 3. 对象属性级授权失效 |
| 4. 缺乏资源和速率限制 | 4. 不受限制的资源消耗 |
| 5. 功能级授权失效 | 5. 功能级授权失效 |
| 6. 大规模分配 | 6. 不受限制地访问敏感业务流 |
| 7. 安全配置错误 | 7. 服务器端请求伪造 |
| 8. 注入 | 8. 安全配置错误 |
| 9. 资产管理不当 | 9. 库存管理不当 |
| 10. 日志记录和监控不足 | 10. 不安全地使用 API |
API 使用对象级授权来确保只有授权用户才能访问其提供的数据。如果应用程序接口未能在对象级别充分执行访问控制,允许未经授权的用户查看、修改或删除他们不应该访问的数据,就会出现对象级授权失效(BOLA)的情况。这种风险表明,应用程序接口没有正确检查谁可以对特定对象执行哪些操作,从而可能暴露敏感数据。
举例说明: Purple-Cart 是一个在线购物平台,用户可以查看和编辑他们的订单详细信息。在这种情况下,如果对象级授权失效,一个用户就可以操作甚至删除另一个用户的订单信息。
这种风险的影响可能非常严重。它可能导致数据泄露、隐私侵犯和经济损失。未经授权访问敏感数据会损害组织的声誉,并导致法律后果,因此需要谨慎降低风险。
身份验证失效是一种漏洞,由于身份验证过程中的缺陷,它允许未经授权访问应用程序或 API。当凭证未得到适当保护、会话未得到充分管理或存在薄弱的身份验证 *** 时,就会出现这种情况。
举例说明:如果应用程序接口不要求用户在更改电子邮件地址时提供当前密码以确认身份,攻击者就可能利用这种漏洞接管用户账户。
失效身份验证的影响可能是有害的,会导致未经授权的账户访问、身份盗用和敏感数据滥用。
在这种情况下,攻击涉及通过向用户暴露敏感数据或不必要的数据)或(同时为对象的多个属性赋值)来获得对敏感信息的未授权访问。利用此漏洞,无有效访问权限的用户可读取和/或修改端点的对象值。
举例说明:网上银行应用程序的 API 端点允许用户检索其账户信息。该端点将用户的账号作为参数,并返回一个包含用户账户余额、交易历史和其他账户详细信息的对象。
利用该漏洞可能导致攻击者访问潜在的敏感数据,包括个人身份信息 (PII)。此外,利用此类漏洞的攻击者可更改对象的属性,从而提升权限、篡改数据和绕过安全机制。
这是一种旨在耗尽目标系统或应用程序资源的攻击。当攻击者可以从 API 中消耗过多资源(如 cpu、内存或带宽)时,就会发生不受限制的资源消耗。这可以通过向 API 发出大量请求来实现。
举例说明:一个社交媒体应用程序有一个 API 端点,允许用户重置忘记的密码。该端点将用户的电子邮件地址作为参数,并发送带有重置密码链接的电子邮件。但是,该端点没有实施速率限制或其他措施来防止无限制的资源消耗。这意味着攻击者可以向端点发送大量请求,重置大量用户的密码。
利用应用程序中的这一漏洞会导致性能下降、中断,甚至造成经济损失。
当应用程序接口允许未经授权的用户访问某些功能或执行他们本不应该访问的操作时,就会出现功能级授权中断。这种漏洞通常源于不当的访问控制措施。
举例说明: 考虑一个电子商务应用程序,由于功能级授权失效,普通用户可以修改产品价格。这可能会导致经济损失、混乱和潜在的系统滥用。
功能级别授权失效可能会造成重大影响,导致经济损失、用户不满和系统功能滥用。
这涉及利用应用程序的业务模型来获得对敏感业务流的无限制访问。要利用此漏洞,攻击者需要了解目标 API 背后的业务逻辑,找到敏感的业务流,并自动对其进行访问。
举例说明: 用户通过保留所有电影首映时段,阻止其他用户使用电影院应用程序。
不受限制地访问敏感业务流会让攻击者窃取数据、发起 和实施欺诈,从而损害公司的财务和声誉。
当攻击者可以迫使 API 服务器向其他系统发出未经授权的请求时,就会发生 SSRF。
举例说明: 社交媒体应用程序的 API 端点允许用户共享链接。端点将链接的 URL 作为参数,并返回链接的预览。攻击者可以发送恶意 URL,并使用 API 端点在内部 *** 上启动端口扫描,以发现开放端口。
利用 SSRF,攻击者可以访问未经授权的 *** 、篡改数据,甚至完全入侵服务器。
当 API 或其组件配置不安全时,就会发生安全配置错误。这可能包括默认设置、权限过于宽松或暴露了本应保密的敏感信息。
举例说明: 考虑一个基于云的 API 服务,其存储桶可公开访问,默认情况下包含敏感的客户数据。安全配置错误可能会使任何人都能在线访问这些存储桶,从而导致数据泄漏。
安全配置错误的影响是巨大的,因为它可能导致数据泄露或未经授权的访问。
如果企业没有完整准确的 API 清单,或者没有管理和淘汰旧 API 的流程,就会出现这种情况。如果企业没有管理旧端点或废弃端点的流程,攻击者仍可访问这些端点。这样,攻击者就可以利用这些端点,在未经授权的情况下访问敏感数据或功能。
当组织没有管理 API 密钥的流程时,也会出现库存管理不当的情况;这些密钥可能会暴露给公众。这可能会让攻击者窃取这些密钥,并利用它们对 API 进行未经授权的访问。
当与外部 API 集成的 API 实施或后端系统没有验证和消毒其输入或验证端点时,就会发生这种情况。
此外,如果未验证 API 服务器的真实性,攻击者就可以冒充合法的 API 服务器,向客户端发送恶意请求。
举例说明: *** 应用程序使用 API 验证用户身份。 *** 应用程序没有验证发送到 API 的用户输入。攻击者向 *** 应用程序提交恶意输入,然后将其传递给 API。API 不会验证输入,因此恶意输入会在 API 服务器上执行。恶意输入会让攻击者控制 API 服务器。然后,攻击者利用 API 服务器窃取 *** 应用程序用户的敏感数据。
该漏洞一旦被利用,可导致数据被盗和遭受各种注入攻击。
缓解策略对于保护您的应用程序接口免受常见安全风险的影响至关重要。通过采取积极主动的措施,您可以大大降低漏洞被利用的可能性。以下是应对最常见 API 安全风险的实用策略:
要防止这一漏洞,必须实施严格的访问控制和身份验证措施。减少 BOLA:
可用于测试 BOLA 漏洞的工具有:
工具
输入验证是防范 和跨站脚本 (XSS) 等注入攻击的关键。验证和消毒用户输入可防止恶意代码或意外字符被执行。正确的输入验证可确保用户提供的数据在可接受的参数范围内,从而消除篡改查询或注入恶意脚本的企图。
参考资料
确保正确的安全配置需要遵循安全服务器和应用程序配置的更佳实践。以下是一些确保更佳实践的 *** :
参考资料
的研究发现,有可能访问微软产品之一()的内部 *** 资源,从而可能危及该云服务的安全性。该漏洞于 2022 年 11 月 12 日报告。
研究人员发现,该漏洞可能允许攻击者获取有关 Azure 线缆端点(Azure 服务用于通过 进行通信的内部)的信息,如已安装的扩展、证书及其相应的私钥。
APIM 工程团队已于 2022 年 11 月 16 日完成部署修复程序,以充分阻止对虚拟机上本地端口/资源的访问。
Parler 是一个社交媒体平台,其 API 暴露给公众,允许攻击者访问和下载大量用户数据、帖子和媒体文件。该事件暴露了 Parler API 安全性的重大缺陷,尤其是在验证过程(Broken Authentication)和数据访问控制方面。点击了解有关此次攻击的更多信息。
Azure API 管理中的 SSRF 漏洞和 Parler API 攻击的案例研究强调了 API 安全的极端重要性。这些事件的主要启示包括:
开发人员必须不断了解潜在漏洞,同时投资于强大的访问控制、数据过滤和安全配置实践。API 安全并非一朝一夕之功,需要持续致力于保护应用程序和用户数据的安全。
扫描二维码推送至手机访问。
版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。
谁在尝试访问某些网站时没有遇到过更新Java的请求? 虽然许多人通过交互式网站功能熟悉Java,但用户可能不太熟悉JavaScript——或者,实际上,他们可能错误地认为两者是相同的。 在本文中,我们将讨论JavaScript 是什么以及Java和JavaScript之间的区别。然后我们将概...
每台连接到Internet的计算机都有一个Internet协议 (IP) 地址。但是,并非所有IP地址的外观或行为都相同。 如果您使用计算机网络或服务器,了解动态IP和静态IP之间的区别至关重要。通过详细了解每个协议,您可以选择最适合您需求的解决方案。 在本文中,我们将讨论静态和动态IP之间...
宝塔面板提供丰富的软件以一键安装,这让服务器环境搭建提供不少的便利性,站长可以根据实际需求快速编译安装以实现不同的功能需求。 软件管理,主要是宝塔提供的一些面板扩展插件。 Nginx Nginx是一个高性能的HTTP和反向代理服务器,具有轻量级、占用内存小,并发能力强等优势。 w...
数据库本质上是任何软件的支柱。随着市场上的多个数据库以及的日益普及,许多开发人员和企业都有一个共同的担忧:您如何选择合适的? 在本文中,我们将讨论最流行的两个开源数据库——MariaDB和PostgreSQL。 虽然PostgreSQL已经存在了20年并且在稳定性方面非常出色,但MariaD...
是一个免费的开源Web开发框架。它旨在通过为模板设计提供一组语法来简化响应式、移动优先网站的Web开发过程。 换句话说,Bootstrap帮助Web开发人员更快地构建网站,因为他们不需要担心基本的命令和功能。它由HTML、CSS和基于JS的脚本组成,用于各种与网页设计相关的功能和组件。 本文...
如果您使用JavaScript编码,学习什么是jQuery以及如何使用它可以简化您的工作流程。它可以使您的编码实践更快、更高效,从而节省您的精力和时间。 本文将解释如何在Web开发环境中使用jQuery以及它的好处和基本特性。我们还将提供一个简短的教程列表,这些教程将展示jQuery被用来帮助...