这篇 2019 年 API 安全防护文章概述了 2019 年 OWASP 十大 API 安全风险类别,新发布的 2023 年 API 安全防护文章涵盖了最新版 2023 年 OWASP 十大 API 安全风险的引言部分。
在本文中,我们将深入剖析其中的一些常见风险,并探讨如何使用 F5 NGINX App Protect 保护应用免受OWASP 十大 API 安全风险的影响。
温馨提示:为了演示,我在 AWS 中部署了两台虚拟机,其中一个实例运行 F5 NGINX App Protect,另一个实例托管后端演示应用 (Juiceshop)。鉴于本文重点介绍 API 风险,因此在此不再赘述如何进行设置部署。
如下图所示,在一个演示应用 API 中,信用卡号 (CCN) 和美国社会保险号 (SSN) 等高度敏感的个人身份信息 (PII) 数据出现在响应中。因此,我们必须隐藏这些详细信息,防止个人数据被利用。
为了防范此漏洞,我们将使用 NGINX App Protect 的 DataGuard 功能。该功能会验证所有响应数据中的敏感详细信息,并根据配置的设置掩蔽数据或拦截请求。首先,如下图所示,我们将配置 DataGuard 以掩蔽 PII 数据,然后应用此配置。
接下来,如果我们重新发送相同的请求,就会发现 CCN/SSN 已被掩蔽,防止了数据泄露。
如有需要,我们可以更新配置来阻止此漏洞,然后该端点的所有传入请求都将被拦截。
如果打开安全日志并使用此支持 ID 进行过滤,我们可以看到,在上文应用的 DataGuard 配置下,要么请求被拦截,要么 PII 数据被掩蔽。
未遵循安全编码实践的客户登录页面可能存在漏洞。入侵者可以利用这些漏洞,通过 SQLi、命令注入等不同类型的注入来绕过凭证验证。在我们的演示应用中,我们发现了一个漏洞,它允许我们使用 SQL 注入(使用用户名“’OR true –”和任何密码)绕过凭证验证,从而获得管理访问权限,如下所示:
NGINX App Protect 拥有一个与此类 SQLi 攻击相关的特征数据库。若将 WAF 策略配置为阻止模式,NGINX App Protect 能够识别并阻止这种攻击,如下所示。
在使用此支持 ID 查看安全日志时,我们可以看到请求因 SQL 注入风险而被拦截,如下所示。
适当的日志记录和监控解决方案在识别攻击和查找安全问题的根源方面发挥着关键作用。如果没有这些解决方案,应用就会完全暴露在攻击者面前,而 SecOps 则完全无法了解用户和被访问资源的细节。
NGINX 提供了不同的选项来跟踪应用的日志记录详情,可从安全防护和性能方面实现每个请求的端到端可视化。用户既可根据自身要求更改配置,也可以配置不同级别的不同日志记录机制。有关日志记录的更多详细信息,请访问以下链接:
借助功能强大的自动化工具,攻击者现在可以突破严密的防护防线。效率低下的 API 检测自动化 Bot 工具不仅会造成业务损失,还会严重影响为应用真实用户提供的服务。
NGINX App Protect 具有一流的 Bot 检测技术,可以检测并标记不同类别的自动化工具,如可信、不可信和未知。根据策略中应用的相应配置,NGINX App Protect 会拦截这些工具生成的请求或发出警报。下面的示例显示了 Postman 自动化工具生成的请求被拦截。
当使用此支持 ID 过滤安全日志时,我们可以看到请求因不受信任的 Bot 而被拦截。
API 对最终用户可请求的资源大小或数量没有任何限制,因此有时会导致 API 服务器性能欠佳,引致拒绝服务 (DoS) 和暴力破解攻击。
NGINX App Protect 可提供不同的方法根据用户要求来限制请求速率。只需一个简单的速率限制用例配置,即可在达到限制阈值后拦截请求,如下所示。
简而言之,本文介绍了一些常见的 API 漏洞,并展示了如何将 NGINX App Protect 用作一种缓解解决方案来防范这些 OWASP API 安全风险。
如欲通过相关资源了解更多信息或试用产品,请访问:
"This blog post may reference products that are no longer available and/or no longer supported. For the most current information about available F5 NGINX products and solutions, explore our NGINX product family. NGINX is now part of F5. All previous NGINX.com links will redirect to similar NGINX content on F5.com."