实习生2023年成果回顾 - Trail of Bits博客
今年夏季在Trail of Bits是一个充满灵感、创新和成长的季节,这得益于我们才华横溢的实习生们的卓越贡献。他们在Trail of Bits工程师的指导下,承担了多样化的技术项目。我们将深入探讨他们的成就,从提高模糊测试工具效率、改进调试器性能,到探索深度学习框架的能力。
Xiangan He:使用Circomference实现可扩展的Circom确定性检查
Xiangan He今年夏季的工作重点是构建一个工具,用于检查生产规模零知识(ZK)电路中的缺失约束和非确定性问题。现有的安全工具在处理超过1000万约束的电路时能力有限,这促使了Circomference的开发。受Picus和Ecne等工具的启发,Circomference使用易于交换的SMT求解器后端,通过快速的Rust编排器和确定性传播器来审查现实场景中常见的大型复杂电路的确定性。
确定性检查对于识别零知识电路中的错误至关重要。Xiangan的项目证明,像Circomference和Picus这样的工具可以在98.6%的已知漏洞ZK电路样本中检测到漏洞。此外,由于改进了内存使用和传播启发式方法,Circomference能够轻松处理那些导致Picus迅速耗尽系统RAM的电路。
Circomference不仅在效率上表现出色,还能有效检测实际审计中使用的电路的非确定性,这对于确保零知识电路的完整性和安全性具有不可估量的价值。
Michael Lin:Windows事件追踪(ETW)的模糊测试
Michael Lin着手进行一个项目,专注于对使用Windows事件追踪(ETW)消费事件的应用程序进行模糊测试。ETW在Windows系统中扮演着关键角色,服务于各种组件和端点检测与响应(EDR)解决方案。然而,由于任何人都可以使用正确的GUID注册提供程序,这一过程容易受到利用。
Michael的团队首先选择了一些有趣的EDR,并进行逆向工程,以识别它们消费事件的提供程序。由于现有的测试或模糊测试框架都无法匹配像ETW这样的进程间通信机制的复杂性,他们不得不开发自己的框架。
他们创建的模糊测试器旨在生成随机事件发送到这些提供程序,以发现解析错误。在这个过程中,他们遇到了有趣的挑战,包括难以绕过Windows进程保护和跟踪模糊测试进度。尽管如此,团队成功自动化了大部分过程,并计划将这种方法应用于其他利用ETW的应用程序。
Matheus Borella:增强GDB和pwndbg
Matheus Borella的夏季项目涉及对GDB和pwndbg(一个用于逆向工程和漏洞开发的GDB插件)进行改进,特别注重提升性能和添加功能。
一个显著的成就是显著减少了利用GDB索引的用户的调试器启动时间。这一变化在测试中展示了高达20倍的速度提升。此外,Matheus引入了为某些Python类型添加__repr__的功能,并提交了(尚未合并的)补丁,通过自定义类型创建和运行时符号添加来扩展Python API,从而增强了GDB的调试和逆向工程能力。
他们的工作还为pwndbg带来了多项生活质量改进,包括实验性的释放后使用检测和新命令(plist、stepuntilasm和break-if-[not-]taken)。在这个过程中,他们甚至发现并修复了QEMU中的一个错误,该错误在某些情况下导致GDB崩溃。
Patrick Dobranowski:评估LLMs的安全性
Patrick Dobranowski的项目解决了评估大型语言模型(LLMs)在各个领域有效性的需求。Patrick的项目是创建一个手段,以便更轻松地确定哪些模型擅长哪些任务。在开发过程中,我们还注意到现有指标在Trail of Bits感兴趣的主题上存在不足,比如Solidity语言理解。Patrick随后努力创建了一个评估框架,从HumanEval扩展而来,用于评估Solidity代码理解。
Sanketh Menda:通过ZKDocs赋能开发者
Sanketh Menda致力于解决密码学研究论文中描述的协议与相同协议的实现之间的差距。特别是,他们专注于零知识证明,并为ZKDocs贡献了关于内积论证及其应用于多项式承诺方案的内容,将这些协议提炼为基本的实现细节。
Sanketh还与密码学团队合作,对零知识相关代码库进行安全评估,获得了该领域的实践经验。
Kevin Chen:研究PyTorch的深度学习安全性
Kevin Chen的项目探索了PyTorch的正确性和安全性,这是一个广泛使用的Python深度学习框架。虽然PyTorch以其简单性和高效性而闻名,但其复杂的内部运作引发了关于正确性的问题。
Kevin最初专注于PyTorch的自动微分引擎autograd,这是神经网络训练的基础。他利用数据流分析和调试器进行的细致研究得出结论,PyTorch开发者遵守了关键规则。Kevin的工作揭示了PyTorch代码生成实践的见解,并确定了未来研究的潜在领域。
Sameed Ali:一个真正遵循指示的模糊测试器!
在定向模糊测试领域,工具使用如最短路径到目标等指标来发现特定代码位置,Sameed的工作脱颖而出。他的项目扩展了LibAFL,创建了一个能够真正遵循指示并生成满足一系列前提条件的输入的模糊测试器。
传统的可达性指标通常无法捕捉现实世界错误的复杂性,因为利用往往需要满足特定的前提条件序列。Sameed的创新方法采用一系列目标,并在取得进展时动态更新最短路径到目标的指标计算。这种方法使模糊测试器能够生成击中更复杂错误的输入,显著推动了定向模糊测试的技术水平。
申请我们的实习项目!
我们实习生的奉献和创新精神彰显了Trail of Bits对推进网络安全和技术的承诺。与今年夏季实习生团队合作非常愉快,我们迫不及待地想看到他们未来的成就。
我们将在明年一月开放夏季实习生的申请流程!
如果您喜欢这篇文章,请分享: Twitter LinkedIn GitHub Mastodon Hacker News
页面内容 Xiangan He:使用Circomference实现可扩展的Circom确定性检查 Michael Lin:Windows事件追踪(ETW)的模糊测试 Matheus Borella:增强GDB和pwndbg Patrick Dobranowski:评估LLMs的安全性 Sanketh Menda:通过ZKDocs赋能开发者 Kevin Chen:研究PyTorch的深度学习安全性 Sameed Ali:一个真正遵循指示的模糊测试器! 申请我们的实习项目! 近期文章 构建安全消息传递很难:对Bitchat安全辩论的细致看法 使用Deptective调查您的依赖项 系好安全带,Buttercup,AIxCC的评分回合正在进行中! 使您的智能合约超越私钥风险 Go解析器中意想不到的安全隐患 © 2025 Trail of Bits。 使用Hugo和Mainroad主题生成。