谷歌模糊测试服务 OSS-Fuzz 扩展 JVM 语言支持

来源: OSCHINA
2021-03-15

谷歌方面宣布,其开源模糊测试服务 OSS-Fuzz  现已支持使用 Java 和其他基于 JVM 的语言((如 Kotlin、Scala 等)编写的模糊应用程序。基于 JVM 语言编写的开源项目可以按照官方提供的文档将其项目添加到 OSS-Fuzz 中。

OSS-Fuzz 是谷歌于 2016 年推出的模糊测试服务。它的目的是利用更新的模糊测试技术与可拓展的分布式执行相结合,提高一般软件基础架构的安全性与稳定性。OSS-Fuzz 结合了多种模糊测试技术/漏洞捕捉技术(即原来的 libfuzzer)与清洗技术(即原来的 AddressSanitizer),并且通过 ClusterFuzz 为大规模可分布式执行提供了测试环境。

谷歌开源安全团队和自动安全测试公司 Code Intelligence 达成合作,将他们的 Jazzer fuzzer 与 OSS-Fuzz 进行了整合,使得以 JVM 为基础的语言编写的开源项目现在也可以使用 OSS-Fuzz 进行连续模糊测试。谷歌称,OSS-Fuzz 已经在开源项目中发现超过 25000 个错误,而在扩展 OSS-Fuzz 对 JVM 程序语言的支持后,将会有更多专案可以获得保护和改进。“我们期待看到这种技术如何帮助保障和改进基于 JVM 语言编写的代码。”

Jazzer 允许用户使用 libFuzzer 对基于 JVM 语言编写的代码进行模糊处理,类似于对 C/C++ 代码的处理方式。Jazzer 支持的语言包括 Java、Clojure、Kotlin 和 Scala。 它通过从 JVM 字节码向 libFuzzer 提供代码覆盖率反馈来实现。Jazzer 现已提供 libFuzzer 的重要功能支持,如:

  • FuzzedDataProvider 用于模糊处理不接受字节数组的代码
  • 基于 8 位边缘计数器的代码覆盖率评估
  • Value profile
  • 最大限度地减少 crashing inputs

Jazzer 的最终目的是支持所有的 libFuzzer 功能。Jazzer 还可以提供通过 Java Native Interface 执行的 native code 的覆盖率反馈,这可以发现内存不安全的 native code 中的内存损坏漏洞。

更多详情可查看官方博客

展开阅读全文
6 收藏
分享
加载中
0 评论
6 收藏
分享
返回顶部
顶部