Google 的开源混沌测试工具 OSS-Fuzz 现在支持 Java 应用了

2,035 阅读2分钟

Google 的开源混沌测试工具 OSS-Fuzz 现在支持 Java 应用了

Google 的开源混沌测试服务 OSS-Fuzz 现在支持 Java 以及 JVM-based 的应用程序了!这项功能于 3 月 10 日公布。

OSS-Fuzz 为开源软件提供持续的混沌测试。混沌测试作为一种将半随机和非法的输入流发送到程序,用于发现软件中的编程错误和安全漏洞的技术。用内存安全语言(基于 JVM 的语言)编写的混沌代码能够帮助我们发现导致程序崩溃或行为异常的错误。

Google 通过将 OSS-Fuzz 与 Code Intelligence 的 Jazzer 混沌器集成在一起,为 Java 和 JVM 开启了混沌处理功能。Jazzer 让我们可以通过 LLVM 项目的 libFuzzer 引擎(运行于进程内,覆盖引导的的混沌引擎),类似于对 C / C++ 的混沌处理,对基于 JVM 语言编写的代码进行混沌处理。Jazzer 支持的语言包括 Java、Clojure、Kotlin 和 Scala。代码覆盖率的反馈是基于 JVM 字节码提供给 libFuzzer 的,而 libFuzzer 功能包括:

  • FuzzedDataProvider 用于混沌测试中处理不接收字节数组的代码。
  • 基于8位边缘计数器的代码覆盖率评估。
  • 最大限度地减少崩溃的输入。
  • Value Profiles.

Google 提供了向基于 JVM 语言编写的开源项目加入 OSS-Fuzz 的文档。Jazzer 的开发计划要求 Jazzer 最终支持所有的 libFuzzer 功能。Jazzer 还可以通过 Java 原生接口执行本地代码时提供覆盖率反馈。这样可以发现内存不安全的本地代码中的内存损坏漏洞。OSS-Fuzz 还同时支持了 Go、Python,C/C + 和 Rust 等语言。

如果发现译文存在错误或其他需要改进的地方,欢迎到 掘金翻译计划 对译文进行修改并 PR,也可获得相应奖励积分。文章开头的 本文永久链接 即为本文在 GitHub 上的 MarkDown 链接。


掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 AndroidiOS前端后端区块链产品设计人工智能等领域,想要查看更多优质译文请持续关注 掘金翻译计划官方微博知乎专栏