DarthShader:对WebGPU着色器翻译器与编译器的模糊测试
密码学与安全
2024-09-04 v1
摘要
近年来,随着更高要求的Web应用(如视频游戏或客户端LLM)在浏览器中运行的趋势,WebGPU标准被采用,提供跨平台API将GPU暴露给网站。这开辟了新的攻击面:不可信的Web内容被传递到GPU堆栈,而GPU堆栈通常为性能而非安全优化。此外,WebGPU的大部分功能无法在管理其他Web内容的受严格沙箱控制的进程中运行,这简化了攻击者获取客户端机器的路径。与其重要性相比,WebGPU着色器处理在自动化测试社区的关注度 surprisingly 很少。部分原因是着色器翻译器期望高度结构化和静态类型的输入,这使得典型的模糊测试变异手段效果不佳。进一步增加测试难度的是,着色器翻译涉及复杂的多步骤编译管道,每个阶段都有独特的要求和挑战。本文提出DarthShader,这是第一个结合基于中间表示的变异器与使用更传统抽象语法树变异器的语言模糊器。关键思想是,着色器编译管道的各个阶段都容易受到不同类别的故障的影响,需要针对性地设计不同的变异策略进行彻底测试。通过对整个管道进行模糊测试,我们确保保持了真实的攻击者模型。在实证评估中,我们表明该方法在代码覆盖率方面优于现有SOTA模糊器。此外,广泛的消除法研究验证了我们的关键设计。DarthShader在所有现代浏览器(Chrome、Firefox和Safari)中发现了39个此前工作未发现的软件故障。对于其中15个故障,Chrome团队分配了CVE,承认其影响力。
引用
@article{arxiv.2409.01824,
title = {DarthShader: Fuzzing WebGPU Shader Translators & Compilers},
author = {Lukas Bernhard and Nico Schiller and Moritz Schloegel and Nils Bars and Thorsten Holz},
journal= {arXiv preprint arXiv:2409.01824},
year = {2024}
}