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 的内容。