旧GPU的妙用:探索计算机安全与程序分析新领域

本文探讨如何利用废弃的服务器GPU解决计算机安全和程序分析问题,包括模糊测试嵌入式平台、随机优化、SMT求解、可达性查询、Datalog加速和API级翻译等技术应用,旨在延长硬件生命周期并提升计算效率。

你会如何处理那块旧GPU?

[请以披头士乐队《With A Little Help From My Friends》的曲调演唱]
你会起身把它扔掉吗?

这里有一个谜题:当新GPU不断生产,产品周期约为18-24个月,且每个周期GPU性能翻倍(根据黄氏定律),那么10年前的服务器GPU会怎样?我们四处询问,但没人能回答;我们只知道它们会被踢出Google Cloud和Microsoft Azure(但AWS不会),而且对于机器学习来说它们毫无用处,因为有太多新的、性能呈指数级增长的版本可用。

这些旧的GPU——仍然安装在机架上、功能正常,且资本成本已经支付——肯定不会就这样被扔进垃圾堆吧……是吗?

请不要这样做!在Trail of Bits,我们希望利用旧GPU——即使是那些已经超过官方寿命的——来解决有趣的计算机安全和程序分析问题。如果你打算处理掉一架子旧GPU,请别这么做!我们很乐意聊聊如何延长你资本投资的使用寿命。

如何利用旧GPU

以下是我们一直在研究并希望进一步探索的一些想法。

模糊测试嵌入式平台。 GPU天然适合模糊测试问题,因为模糊测试是高度并行的,并且存在解决分歧问题的自然方法。GPU模糊测试在嵌入式领域最有效,因为无论如何都需要编写模拟器。那么,编写一个快速的模拟器而不是慢的有意义。我们的原型GPU模糊测试器表明这个概念是可行的,但它有一些限制,使其难以用于实际模糊测试。我们希望解决这个问题,并正在研究一些想法(避免静态翻译,应用我们快速DBT工具的性能经验等)以使模拟器创建变得实用。

随机优化。 随机优化器,如斯坦福的STOKE,搜索大量潜在的机器指令,寻找新颖、非显而易见的转换以提高程序性能。这种方法的一个关键瓶颈是搜索吞吐量,我们相信在GPU上可以做得更快。

SMT求解。 SMT在优化和安全中有许多用途,但在算法级别抵抗并行化。SMT问题的两个具体实例可以从简单有效的GPU加速中受益。第一个是浮点数。先前的研究使用CPU的暴力搜索来解决CPU上的浮点SMT,我们希望用GPU加速来扩展。其次,GPU可以对抵抗常规算法的传统整数SMT理论进行暴力搜索。基于GPU的搜索将与其他方法并行进行,并严格改进当前的技术水平。

可达性查询。 程序分析的另一个关键原语是可达性查询;即,给定一个(非常大的)程序,我能否从行Y到达行X,如果能,路径是什么?这个问题通常在O(n³)时间内运行,并且在实际程序分析中经常是瓶颈。我们相信可以使用GPU计算使即使复杂的可达性查询更加实用。

Datalog加速。 Datalog作为一种通过Souffle等工具实现大型程序静态分析的语言,获得了新生。最近的研究显示通过GPU加速Datalog操作有希望,这应该允许更好、更可扩展的静态分析工具。

API级翻译。 这不是GPU的使用,但与GPU编程相关:我们相信可以使用MLIR和Trail of Bits的VAST透明地跨API层编译代码。也就是说,源代码将停留在一个API上(例如,从CUDA),但在编译期间,编译器将使用MLIR方言翻译将程序从CUDA语义转换为OpenCL语义。我们希望创建一个原型来查看这种编译是否可行。

帮助我们拯救旧GPU!

我们思考这些问题有一段时间了,并希望编写一些实用的概念验证软件来解决它们。为此,我们正在寻求研究资金和访问备用GPU容量。重要的是,我们不需要访问最新和最伟大的GPU;即将寿命终止或不再适用于AI/ML应用的硬件对我们来说就很好。如果你想帮助,请告诉我们!我们有与大学合作类似研究挑战的历史,并渴望继续这种伙伴关系。

如果你喜欢这篇文章,请分享: Twitter LinkedIn GitHub Mastodon Hacker News

页面内容
如何利用旧GPU
帮助我们拯救旧GPU!
近期文章
非传统创新者奖学金
在你的PajaMAS中劫持多代理系统
我们构建了MCP一直需要的安全层
利用废弃硬件中的零日漏洞
Inside EthCC[8]:成为智能合约审计员
© 2025 Trail of Bits.
使用Hugo和Mainroad主题生成。

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