GUSTAVE是用于嵌入式OS内核的模糊测试平台。它基于QEMU和AFL(及其所有forkserver兄弟)。它允许像简单的应用程序一样使用fuzzOS内核。
感谢QEMU,它是多平台的。可以将GUSTAVE视为QEMU中的AFL forkserver实现,并具有细粒度的目标检查。
GUSTAVE主要设计用于嵌入式OS内核。它可能不是使大型复杂Windows或Linux内核模糊的最佳工具。
但是,如果您有一个可以从头开始重建的目标,并且可以使用一个或两个应用程序精心构建目标,而无需任何用户交互即可启动,那么尝试一下GUSTAVE可能会很有趣。
AFL项目中的afl-fuzz工具用于自动模糊目标。但是,AFL无法直接对OS内核进行模糊测试,并期望其目标直接解析生成的测试用例。
简而言之,afl-fuzz将以GUSTAVE集成为目标运行QEMU。反过来,GUSTAVE将处理:
我们已经实现并测试了Intel x86和PowerPC支持。GUSTAVE实现独立于体系结构。如果可以使用QEMU运行目标,则可以毫不费力地用GUSTAVE对其进行模糊处理。
现在,我们提供具有GUSTAVE集成的示例英特尔440FX和PowerPC PREP板。 您自己的董事会的实施非常容易。 看看x86board。 除了适用于目标和QEMU的工作编译环境之外,您还需要以下git树: 可以在https://airbus-seclab.github.io/上找到有关GUSTAVE的各种演讲的资料:Slides(en)🇬🇧,Slides(fr)🇫🇷Paper🇫🇷,Video🇫🇷