Chaos Communication Congress (37C3) 技术盘点 - Trail of Bits博客
上月,我们的两名工程师参加了在汉堡举行的第37届混沌通信大会(37C3),与数千名黑客齐聚一堂,交流技术安全领域的最新研究成果。与普通技术会议不同,这场年度盛会聚焦技术与社会交互,涵盖政治、娱乐、艺术、可持续性等议题——而最重要的是安全。早在80年代的首届大会上,黑客就展示了德国BTX系统银行应用的漏洞;今年"Unlocked"主题则强调突破技术壁垒,探索数字权利与隐私的新边疆。
本文将回顾我们在37C3的技术贡献——涵盖二进制漏洞利用分析与模糊测试——并重点推荐几场值得关注的演讲。
PWNing技术交流会
Trail of Bits工程师Dominik Czarnota自发组织了两场关于PWNing(即二进制漏洞利用)的会议。这些交流会展示了CTF竞赛、逆向工程和漏洞研究中常用的Pwndbg与Pwntools工具。
首场会议中,Dominik介绍了Pwndbg——这款GDB插件通过显示程序停止时的上下文信息(包括调试程序状态、寄存器、可执行代码、堆栈内存及解引用指针)显著增强底层代码调试能力。演示涵盖了Pwndbg的核心功能与命令:内存映射列表(vmmap)、进程信息显示(procinfo)、内存搜索(search)、特定内存映射指针查找(p2p)、栈金丝雀值识别(canary)以及进程执行控制(nextsyscall, stepuntilasm等)。最后发布了Pwndbg速查表,并预告了正在开发的功能:GOT函数执行跟踪与glibc堆use-after-free分析。这些功能源自Trail of Bits已持续十三年的冬季实习项目,让实习生有机会攻克行业最具挑战性的难题。
第二场会议中,Arusekk和Peace-Maker展示了漏洞开发利器Pwntools的高级功能:数据收发高级方法(如io.recvregex/io.recvpred)、运行漏洞脚本时的命令行技巧(DEBUG/NOASLR/LOG_FILE等环境变量与参数配置)、以及libcdb命令行工具、shellcraft模块和ROP辅助功能。错过会议者可在此获取幻灯片。
新一代模糊测试技术
在《Fuzz Everything, Everywhere, All at Once》演讲中,AFL++与LibAFL团队展示了LibAFL模糊测试器的新特性:基于QEMU的插桩技术用于模糊测试闭源二进制目标,并通过QEMU钩子启用检测器以发现漏洞。除团队自研的QEM版AddressSanitizer(QASan)外,还开发了能超越内存破坏漏洞检测的注入检测器——通过TOML配置文件定义规则,可检测SQL/LDAP/XSS或OS命令注入。配置文件设计表明其易于扩展至其他注入类型,只需明确需挂钩的函数与检测的有效载荷。
尽管内存安全语言(如Rust)的普及将减少内存破坏漏洞,模糊测试在发现注入或逻辑漏洞等领域仍至关重要。这场演讲的问答环节提醒我们:oss-fuzz早已配备基于ptrace系统调用的SystemSanitizer,曾成功发现命令注入漏洞。
Trail of Bits曾与Inria合作在学术研究项目tlspuffin中使用LibAFL,通过模糊测试多种TLS实现发现了wolfSSL中的多个漏洞。
无处不在的侧信道攻击
在《Full AACSess: Exposing and exploiting AACSv2 UHD DRM for your viewing pleasure》演讲中,Adam Batori提出了针对Intel SGX的侧信道攻击方案。由于Trail of Bits常审计使用Intel SGX等可信执行环境的项目(如Mobilecoin),该演讲尤为引人关注。
回顾物理媒体DRM发展史后,Adam详解了sgx.fail研究团队如何从SGX enclave提取加密密钥材料破解UHD蓝光光盘DRM,证实了安全飞地侧信道攻击的现实可行性。过程中他深入探讨了SGX的多种技术特性。
该研究引发了对Intel在消费级硬件停用SGX的讨论。鉴于低成本消费设备的高侧信道风险,我们认为将Intel SGX用于DRM已注定失败。侧信道攻击仅是安全使用飞地保护数据时常被忽视的挑战之一。
新挑战:Rust逆向工程
Trail of Bits工程师常审计Rust编写的软件。在《Rust Binary Analysis, Feature by Feature》中,Ben Herzog探讨了Rust编译器的输出机制。理解Rust构建二进制文件的方式对优化程序或分析安全/非安全代码交互至关重要。演讲聚焦调试编译模式,展示Rust编译器如何为区间迭代生成代码、使用迭代器及优化枚举布局。讲者同时指出Rust字符串非空终止的特性可能导致Ghidra等逆向工具输出难以理解的内容。
演讲提出遇到特性相关函数调用时应思考四个问题:
- 被调用函数名(如next)?
- 函数定义于何种类型(如Values<String, Person>)?
- 函数返回类型(如Option)?
- 函数属于哪个特性(如Iterator<Type=Person>)?
更多细节详见Ben Herzog的博客文章。
私有加密的危害性
《TETRA:BURST》揭示了TETRA无线电协议中的多个漏洞。该协议被欧洲等多地政府机构、警察、军队和关键基础设施使用。
令人震惊的是,私有加密在某些行业仍是默认选项。通过要求安全研究人员签署NDA隐藏技术规范,极大限制了系统的可审查性。
受出口管制影响,TETRA存在多类算法。其中较旧的TEA1仍广泛部署,但仅使用32位密钥长度。尽管规范已不建议使用,实际部署中仍活跃应用——这对于依赖弱协议保护的关键基础设施尤为危险。
研究人员通过在线经销商获取无线电硬件,证实了漏洞的可利用性。
你真的拥有自己的列车吗?汽车呢?
《Breaking “DRM” in Polish trains》中,研究人员受独立列车维修公司委托,调查为何某些列车维修后无法运行。通过逆向工程,他们发现了列车中的多项"反功能":列车在特定情况下(如闲置过久或位于竞争对手维修点GPS坐标)会自动停驶。演讲涵盖了列车软件的技术细节与固件逆向过程,并质疑用户对自有车辆/设备的控制权边界。
开发者与审计者能从黑客身上学到什么?
黑客拥有独特的问题解决思维,向开发者和审计者展现了创造性与非传统思维在网络安全中的重要性。大会强调正确保护系统的必要性,应从清晰理解的威胁模型入手。依赖混淆的错误或私有方法无法有效保护终端产品——将加密原语隐藏在NDA后仅混淆协议工作机制,并未提升安全性,反而增加安全研究人员的工作难度。
大会凸显网络安全的持续演进特性,强调从业者需紧跟最新威胁与技术。伦理考量成为焦点,要求开发者与审计者在工作中尊重用户隐私与数据安全。
37C3展现的黑客社区协作精神,为科技行业内的开放交流与相互学习树立典范。Trail of Bits致力于通过发布博客文章、帮助开发者保护代码的《测试手册》、零知识证明研究文档等方式公开分享知识,践行这些价值观。
结语
我们强烈推荐亲临38C3现场(尽管日期恰逢圣诞与新年间隙),虽然多数演讲可在线观看。大会包含众多自发组织的会议、研讨会和集会,对安全研究人员极具价值。我们原计划在37C3披露最近发现的LeftoverLocals漏洞(影响AMD/高通/苹果等GPU厂商),但为给厂商留出修复时间延至1月16日发布。或许明年的38C3将分享我们发现和披露该漏洞的经验!
若喜欢本文,请分享至: Twitter | LinkedIn | GitHub | Mastodon | Hacker News
页面内容 近期文章
- 使用Deptective调查依赖项
- 系好安全带,AIxCC评分轮正式开始!
- 让智能合约超越私钥风险成熟化
- Go解析器中意想不到的安全隐患
- 评审Silence Laboratories首批23个DKL库的收获
© 2025 Trail of Bits. 由Hugo与Mainroad主题生成。