查找和修复 GraphQL 安全漏洞的 9 个工具

GraphQL 安全漏洞及应对方案

对于不熟悉 GraphQL 的人来说,它是由 Facebook 开发的一种 API 查询语言和运行时,现在已经开源。如同任何其他软件一样,GraphQL 既有其优点也有其缺点。其中一些缺点可能与特性或功能相关,但本文将关注 GraphQL 中存在的安全漏洞问题。

不用过于担忧,因为有多种工具可以帮助检测和修复 GraphQL 的安全问题。在深入探讨这些工具之前,让我们先了解一下 GraphQL 的基本概念及其潜在的漏洞。

什么是 GraphQL?

为了更好地理解 GraphQL,不妨设想这样一个场景:您在餐厅点餐。您可能并不总是想点菜单上列出的确切菜品。有时,您可能希望添加或删除某些配料,例如您对坚果过敏,需要定制菜肴以满足您的特殊需求。

可以将 GraphQL 想象成一名服务员,他可以根据您的要求为您定制菜品,准确地提供您想要的食物。在数据处理方面,GraphQL 可以处理来自服务器的数据。通过使用这种技术,现代应用程序能够获取特定的数据,从而节省带宽并改善用户体验。

想了解更多关于顶级 GraphQL 软件的信息?请继续阅读。

GraphQL 的漏洞

以下列出了一些潜在的漏洞,这些漏洞可能被恶意用户利用,从而窃取敏感信息:

  • 过度获取和获取不足:此漏洞可能会过度消耗服务器资源。如果从 GraphQL 获取数据的指令不当,可能导致过度获取 (获取的数据多于请求的数据) 或获取不足 (获取的数据少于请求的数据,导致用户多次请求数据)。
  • 过多的数据暴露:当访问控制配置不当时,关键数据可能会暴露。如果服务器允许未经授权的访问,那么任何具备足够技能的攻击者都可以轻松地泄露数据。
  • 嵌套查询问题:默认情况下,GraphQL 没有对查询的复杂性进行限制,允许发送复杂的嵌套查询。多个复杂的嵌套查询会消耗系统资源,导致响应缓慢,甚至引发潜在的拒绝服务 (DoS) 攻击。
  • 注入:GraphQL 本质上是一种带有用户输入的查询语言。如果 API 不够安全,则可能被注入恶意代码,导致数据库、文件系统、网络甚至操作系统成为攻击的目标。
  • GraphQL 炸弹:这些炸弹于 2022 年 8 月被发现,会影响 GraphQL 文件上传 API 的实现。它是一种拒绝服务 (DoS) 攻击,通过向 GraphQL 端点发送大量的 HTTP 请求来达到目的。
  • HTTP 标头配置错误:虽然这听起来并不严重,但配置错误可能会导致 CSRF (跨站请求伪造)、MIME 嗅探和中间人攻击等问题。
  • 速率限制配置错误或未配置:速率限制旨在限制客户端在特定时间范围内可以发送的查询数量。如果未正确配置,可能会导致潜在的拒绝服务 (DoS) 威胁。

这些安全漏洞听起来是不是很可怕?

现在,我将分享一些最佳工具,这些工具可以帮助您发现和修复 GraphQL 漏洞,确保服务器的安全。以下是我们将讨论的工具的摘要:

产品 显著特点
Escape GraphQL 安全 快速扫描、真实风险评估、与开发人员工具集成
Inviciti GraphQL 扫描器 扫描各种攻击,现代攻击防护
StackHawk GraphQL 测试 持续漏洞检查、自动化安全
比格犬安全 主动测试、CI/CD 集成、详细报告
GraphQL 点安全 免费选项、端点检查、最新数据库
Qualysec GraphQL 渗透测试 OWASP Top 10 分析、动态/静态 API 测试
AppCheck安全扫描 API、SPA 和端点测试、Jira/TeamCity 支持
API安全测试概要 连续后台测试、可视化缺陷测绘
光明安全 API 测试 聚焦微服务、CLI、基于 SaaS、CI/CD 集成

Escape GraphQL 安全

Escape 在构建产品时充分考虑了开发人员的需求,其 GraphQL 安全检查器也不例外。作为少数能提供这种服务的安全供应商之一,Escape 可以保证及时扫描最新的漏洞。

其他特点还包括:

  • 首次扫描仅需大约 60 秒即可完成。
  • Escape 的数据库会持续更新,提供最新的漏洞信息。
  • 不仅会显示潜在的风险,还会显示真正的风险。
  • 与您最喜欢的开发工具无缝集成。

因此,如果您正在寻找一种快速、简单的 GraphQL 漏洞检查解决方案,Escape 可能是您的不二之选。

Inviciti GraphQL 扫描器

Inviciti (以前称为 Netsparker) 是 API 扫描领域中最值得信赖和流行的品牌之一。客户最关心的是它能检测多少种类型的攻击。以下列出了该产品可以扫描的严重攻击和漏洞:

  • 盲命令注入
  • SQL 盲注入
  • 命令注入
  • 远程代码执行
  • 服务器端请求伪造

总而言之,Inviciti 是一个可以抵御现代攻击的可靠解决方案。

StackHawk GraphQL 安全测试

StackHawk 的 GraphQL 测试 的最大优势在于它可以在每次拉取请求时检查 GraphQL 漏洞。如果这个关键特性还不足以打动您,StackHawk 还提供了其他令人兴奋的功能:

  • 自动化安全测试
  • 快速测试和修复
  • 简洁的用户界面
  • 完善的文档,便于自行修复

确实很棒,对吧?

比格犬安全

比格犬安全 专注于提供自动化的 Web 应用程序安全测试解决方案,帮助企业识别和修复安全漏洞。它的四个关键特性使其脱颖而出:

  • 密集且主动的测试
  • 与 CI/CD 集成
  • 详细的报告
  • 安全专家的详细修复建议

您还可以使用他们的免费网站评估检查器查找您网站中的漏洞。

GraphQL 点安全性 (graphql.security)

如果您正在寻找免费选项,并且对功能有限感到满意,那么 graphql.security 就是不错的选择。该产品也来自 Escape,所以您可以相信其测试的可靠性和准确性。

一些关键功能包括:

  • 使用 Escape 的最新数据库
  • 无需注册
  • 一键检查端点
  • 免费服务

因此,如果您是刚刚起步的小企业,并且预算有限,我强烈建议您使用 graph.security。

Qualysec GraphQL API 渗透测试

Qualysec 提供专业的 GraphQL API 渗透测试,这是一种网络安全评估服务,可以帮助您发现并修复漏洞,确保您的所有安全问题都得到解决。

以下是他们提供的一些主要功能:

  • 针对 OWASP Top 10 GraphQL API 测试对产品进行分析,以防御常见的威胁。
  • 动态 API 测试。
  • 静态 API 测试。
  • 软件构成分析。

除了安全功能外,他们的漏洞扫描报告也很出色,因为它包括渗透报告、复测报告、证明信和安全证书。

AppCheck 安全扫描

AppCheck 可以为您提供 API 测试方面的全面帮助,并具有多种功能,如 SPA 爬网、端点发现等。其他特点包括:

  • 通过实用的工作流程节省时间。
  • 兼容 Jira、TeamCity 和其他开发工具。
  • 可以发现零日漏洞,以及 100,000 多个已知的安全漏洞和完整的 OWASP 列表。

功能列表非常强大,对吧?

API 安全测试概要

概要 提供了 API 测试程序,可以自动发现应用程序暴露的端点,并且所有这些都在后台持续运行。以下是其他令人惊奇的功能:

  • 通过可视化映射来识别代码和数据中的缺陷。
  • 自动漏洞发现
  • 威胁和风险评估

光明安全 API 测试

光明安全 服务专为现代微服务环境而设计,提供与 SDLC、CI/CD 和 git 工作流程的无缝集成,以便尽可能轻松地检测漏洞。Bright security 的主要功能包括:

  • 为开发人员提供方便的 CLI
  • 100% 基于 SaaS
  • 持续集成/持续交付集成
  • 可映射到 OWASP API 安全 Top 10 的漏洞

总结

在本教程中,我解释了 GraphQL 的关键漏洞,并分享了用于查找和修复这些漏洞的最佳工具。

希望本指南对您有所帮助。

您可能还有兴趣阅读有关 GraphQL 与 REST API 以及何时使用哪个 API 的内容。