无限载荷?动态模糊测试引领API安全测试新未来

本文探讨了新一代API扫描技术如何通过动态模糊测试和种子数概念生成近无限载荷,突破传统静态词表限制,有效检测SQL注入、XSS和提示注入等新型漏洞,结合机器学习优化扫描效率。

无限载荷?动态模糊测试引领API安全测试新未来

如果告诉你,我们新发布的API扫描器针对单一类型漏洞测试拥有922万亿亿个载荷呢?万亿亿这个数字凸显了传统API安全测试的局限性。依赖特征库、特定漏洞载荷或固定模糊测试输入集等传统方法已不再足够,特别是在处理定制软件和独特API端点时。

固定载荷集无法发现新的未知漏洞。API安全测试的未来(现已到来)需要能够生成近乎无限载荷集的新方法,以应对不断演变的威胁(如提示注入)。

在安全测试中,载荷是旨在以非预期方式与应用交互的特定文本或数据字符串。例如,SQL注入攻击的载荷可能是' OR 1=1--,而跨站脚本(XSS)载荷可能是<script>alert('XSS')</script>。提示注入漏洞的载荷可能如下所示:

传统API安全扫描器使用静态词表,这些文件包含有限数量的已知载荷。传统扫描器限制了测试载荷的数量。如果尝试测试大量载荷,对供应商来说执行速度慢且成本高。这种暴力方法存在根本限制,因为它只能找到已知的漏洞。

更先进的API模糊测试方法(一种通过向应用输入畸形或意外数据来观察其响应的安全测试技术)依赖于基本"无限"的载荷体。安全工具可以动态生成几乎无限数量的独特载荷,而不依赖有限列表。但面对如此庞大的列表,测试人员或安全扫描器如何管理测试内容?答案在于种子数。

什么是"种子数"概念?

就像《我的世界》游戏中的种子生成独特而广阔的世界一样,API模糊测试的种子数从"无限"列表中确定性生成特定的载荷子集。这确保了相同种子始终产生相同载荷,实现了可重现和可管理的扫描,而无需存储庞大的词表。新API扫描器可以生成近乎无限的载荷集,仅提示注入就超过922万亿亿个,使其能够在每次扫描中尝试新内容,同时仍运行所有标准测试。

机器学习如何让扫描更智能?

当种子数方法与机器学习原理结合时,其真正威力得以发挥。系统可以从过去扫描中学习并优先处理最有效的种子。例如,在上面的视觉示例中,如果种子5684在各种API中持续发现提示注入漏洞,安全工具可以"学习"到该种子非常有效,并优先在类似目标的未来扫描中使用它。

  • 字符串操作:追加或前置特殊字符,如!@#$、<>
  • 数据类型模糊测试:用字符串替换整数,或用数字替换布尔值
  • 格式字符串攻击:注入格式说明符,如%n、%s或%x,以测试格式字符串漏洞

这种动态方法通过根据应用响应实时生成载荷,能够发现静态词表永远无法预料的新漏洞。

API漏洞检测如何工作?

让我们看看具有相应<载荷B!>的<种子5684>。API扫描器将目标API视为"黑盒"。它不需要理解API的底层逻辑。它发送一系列请求(一些包含清洁数据,一些包含突变的种子载荷),并分析服务器的响应,寻找异常。

检测的关键是响应比较。清洁请求应产生可预测的响应,而恶意或模糊请求可能触发意外变化。这可能表现为:

  • 500内部服务器错误:注入载荷导致服务器上未处理异常的常见指标
  • 403禁止或401未授权:如果API对请求返回这些状态代码,表明用户缺乏必要权限。目标是发送特定载荷,将响应"翻转"为200 OK。如果成功,则证明存在过滤器、身份验证或授权绕过,确认了损坏的访问控制漏洞
  • 响应内容的意外变化:例如,注入的载荷可能导致服务器返回数据库错误消息或系统文件内容,或者像偏离的内容长度或更长的响应时间这样微妙的变化

系统标记这些变化并呈现它们。这种基于响应的简单逻辑使工具高效准确,无需深入了解API的内部工作原理。引擎通过实际尝试利用漏洞进一步推进,减少了误报并提供了高保真、可操作的发现。

结论

API安全正在从静态、被动的方法转向主动、智能和可扩展的模型。种子数和基于突变的模糊测试等概念,可以生成几乎无限的攻击面进行测试,有助于确保安全态势与组织面临的威胁一样动态。

我们不能只测试被认为是规范的内容。真正有效的安全工具必须尽力寻找隐藏参数、非常规路由和意外状态,这些是大多数扫描器会忽略的。

尝试我们带有动态模糊测试的新API扫描器,亲身体验其效果。在此预约演示。

常见问题

问:传统API安全扫描器的主要问题是什么? 答:主要问题之一是依赖静态、有限的已知载荷词表,这使得它们对攻击者不断开发的新变异载荷无效。

问:种子数如何帮助API模糊测试? 答:种子数从更小的列表中确定性生成特定、可重现的独特载荷集,允许进行可管理和可重复的扫描,而无需存储庞大的词表。这就是新API扫描器能够实现大规模同时确保可重现结果的原因。

问:Detectify检测漏洞时寻找什么? 答:它在模糊请求后寻找服务器响应中的异常,如500内部服务器错误、403禁止状态或与清洁请求相比响应内容的意外变化。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计