API安全的盲点:GraphQL

一颗小胡椒2023-02-24 14:35:55

如今,在API现代化的大趋势下,越来越多的企业从REST架构切换到开源数据查询和操作语言GraphQL。这种转变带来很多好处:GraphQL更灵活、可扩展,更易于开发人员使用,但这同时也给攻击者打开了一扇窗户。企业的开发团队需要避免重蹈Kubernetes安全的覆辙——匆忙切换到时髦的,对开发人员友好的技术,同时留下巨大的安全隐患和代价高昂的“安全债务”。

GraphQL的两大漏洞风险

根据MITRE CVE数据库和HackerOne Hacktivity的最新漏洞数据,攻击者正在积极渗透GraphQL及其开发人员,在GraphQL服务器、客户端和其他组件中寻找可用的漏洞利用。企业DevOps和DevSecOps团队需要对此给与足够的重视。

MITRE CVE数据库跟踪的45个GraphQL漏洞(2019年首次发现)数据显示,当前GraphQL的安全漏洞主要是授权绕过漏洞(占总数的54.8%)和拒绝服务漏洞(16.7%)。

在所有跟踪的GraphQL漏洞中:

  • 9.5%的漏洞与信息泄露有关
  • 7.1%与代码执行有关
  • 7.1%与跨站点请求伪造有关
  • 4.8%与注入有关


Hacktivity门户网站收集的研究人员报告的漏洞数据与MITRE CVE的数据基本一致:授权绕过风险更加突出,87%的已知GraphQL漏洞属于这一类。拒绝服务漏洞以7%的份额位居第二。条件竞争漏洞和会话管理漏洞各占2.8%。

值得注意的是,Hacktivity作为漏洞赏金门户,其数据可能会出现一定的偏差,因为授权漏洞对敏感数据的威胁更大,为研究人员带来更丰厚的赏金。此外,测试DoS漏洞也在很大程度上被禁止,因为测试可能会造成真正的伤害,这也会导致对此类漏洞的报告数量偏少。

针对GraphQL面临的主要漏洞威胁,GraphQL开发人员需要实施有效的基于模式的访问控制来限制功能访问,防范授权绕过攻击。此外还应设置动态速率限制以遏制拒绝服务攻击。开发团队需要通过精细分析对上述安全措施提供支持,并维护活动日志以获得更好的可见性,这将进一步确保团队能够在攻击者造成伤害之前阻止未经授权的行为。

GraphQL API攻击侦察

为何不可见?

如今,攻击者拥有复杂的自动化方法来侦察GraphQL应用的安全漏洞。攻击者的工具箱中已经有很多现成的工具可以对目标GraphQL API展开被动研究、发起评估应用程序行为的无害查询,以及通过简单的推理来定位GraphQL API。

此类攻击前的侦察活动很难被检测到,因为标准API安全网关不会对传入的GraphQL请求查询进行上下文分析。这是API开发运营团队的一个盲点,会显著增加合规失败的风险。

例如,如果开发人员不小心将访问凭据留在公共存储库中可用的代码中,则有可能被攻击者获取。而发送到应用程序的GraphQL查询(即使无效)也会告诉攻击者GraphQL是否正在使用中。攻击者还可以自动查询可能部署GraphQL的多个端点(例如/graphql、/query、/api、/playground、/console和/graphiql),而服务器响应则会向攻击者确认目标的准确位置。

但是,如果采用了正确的GraphQL安全策略,攻击者所依赖的自动查询将被标记为异常行为。通过标记针对多个端点(其中许多不存在)的无效查询和批量流量的保护措施,开发人员可以在漏洞利用升级之前检测并阻止(或缓解)攻击。

此外,限制应用程序的对象请求和操作数量/速率也是保护GraphQL API端点的有效措施(应在对象级别而不是调用级别完成)。通过部署正确的安全措施,即便攻击者找到GraphQL目标,API团队也能有效阻止攻击。

GraphQL安全优先级亟待提升

对于使用GraphQL的企业来说,了解GraphQL API和应用程序面临的独特威胁,并及早准备和部署相应的安全措施至关重要。

企业还应该意识到,只有在部署GraphQL的早期阶段就提高其安全优先级才能起到事半功倍的效果,只有通过正确的安全策略和流程主动监控流量的异常活动,同时保护访问控制(和其他已知的攻击途径),开发人员才可以安全地,大规模地发挥GraphQL的优势。

apigraphql
本作品采用《CC 协议》,转载必须注明作者和本文链接
API安全的盲点:GraphQL
2023-02-24 14:35:55
GraphQL更灵活、可扩展,更易于开发人员使用,但这同时也给攻击者打开了一扇窗户。
自2020年6月以来,Acunetix支持日益流行的API查询语言– GraphQL。为此,您将首先创建一个故意易受攻击的API及其GraphQL定义,然后使用Acunetix对其进行扫描,消除使用Acunetix发现的严重漏洞,并确认已消除了这些漏洞。阶段1:设置测试环境 为了能够进行此练习,在测试之前必须准备一个测试环境。在本练习中,我们将Windows操作系统与开源软件一起使用。
这种安全能力差距令人担忧,因为随着新技术的采用,针对 API 的攻击正在增加。
本文将分享国外一位白帽子对于多重身份验证功能实施渗透测试时的一些经验,希望能对你有所启发。
从报告信息来看,国内外已有不少企业已启动API安全保护计划。这是好事,意味着一些企业已逐渐意识到API安全的重要性并开始进行针对性防护。企业通过对API在发布前和发布后进行安全测试,能够提前识别API存在的安全缺陷,避免有安全缺陷的API暴露在互联网而被恶意攻击或利用,为企业整体API安全策略奠定基础。这是API安全问题与其它安全问题最大的不同点。
CrackQL是一款功能强大的图形化密码爆破和模糊测试工具,在该工具的帮助下,广大研究人员可以针对密码安全和应用程序安全进行渗透测试。
否则,就会在网络犯罪分子和其他威胁面前失去优势。Red Hat公司在其发布的《2023年全球科技展望》调查报告中指出,安全是IT融资的首要任务。Haff指出,安全也成为了数字化转型的首要任务。此项调查还调查了IT运营自动化的优先事项,Haff指出,这一类别通常由配置管理等事项主导。
必修漏洞,就是必须修复、不可拖延的高危漏洞。
措施API响应仅返回满足请求所需的数据,具体来说就是API进行的数据库查询应仅获取相关记录和字段。措施API应仅公开HTTPS端点。攻击者在利用API漏洞实施网络攻击之前,可能会花费数天时间进行侦察。企业应部署全面的API流量日志记录和监控,以便在造成损害之前发现并阻止攻击。对于高度分布式的API基础设施来说,传统的基于边界的安全方法不足以阻止攻击。
一颗小胡椒
暂无描述