文章总结: 本文介绍NDSS2026论文ropbot,一种高效的自动化ROP链构造工具。它通过引入ROPBlock概念,将复杂的SMT求解问题转化为图搜索,大幅提升合成效率。ropbot支持多架构且能处理内核等大型二进制文件,成功率远超现有工具。Google已利用该工具验证漏洞可利用性以优化补丁优先级,兼具攻防价值。 综合评分: 92 文章分类: 二进制安全,安全工具,漏洞分析
G.O.S.S.I.P 阅读推荐 2025-12-30 更高效的ROP链构造——ropbot
原创
锂化溴
安全研究GoSSIP
2025年12月30日 20:03 上海
Yihui (Kyle) Zeng是Shellphish CTF team的核心成员,也是一名卓有成效的漏洞挖掘赏金猎人,他的主页上是这样写的:
I successfully performed Container Escape five times with four different novel exploitation techniques in Google Kubernetes Engine (GKE) (~~and won a lot of cash~~). In Aug 2022, I was fortunate enough to get the first maximum bounty in kCTF’s entire history (before it raised the bounty). I am a winner of Pwn2Own and TyphoonPWN.
今天我们要介绍的NDSS 2026论文ropbot: Reimaging Code Reuse Attack Synthesis就是Kyle Zeng作为一作完成的研究工作。这篇论文提出的新工具ropbot将攻击链合成的效率提高了几个数量级:
关于漏洞利用的背景,大家都知道在W^X防护机制之后,代码重用攻击(Code Reuse Attacks, CRA),包括返回导向编程(Return-Oriented-Programming) 和 跳转导向编程(Jump-Oriented-Programming) 都成了攻击者实现任意代码执行的关键手段。然而,将微小的指令片段(Gadgets)拼接成完整的攻击链(Chain)一直是一个极其耗时且依赖人工的过程。虽然过去十年学术界提出了多种自动化方案,但它们大多面临性能低下、支持架构有限或无法生成有效载荷的问题。
现有的自动化工具普遍采用 “生成并测试”(Generate-and-Test, GAT) 方案。这种方法首先罗列所有潜在 Gadgets,然后利用符号执行或 SMT 求解器来验证它们是否可以链接。其致命缺陷在于:随着 Gadget 数量的增加,搜索空间呈指数级增长 O(2n),在处理大型二进制文件时极易引发状态爆炸。
在本文中,作者设计的ropbot工具,其核心创新在于引入了ROPBlock这一概念。ROPBlock 被定义为这么一组指令,它们具有“正向堆栈改变量”(即让栈指针朝着正向移动)的特性、能够且从堆栈获取 PC 指针,而且执行中不包含条件分支跳转。
ropbot的核心思想是将操控特定寄存器的任务从复杂的 SMT 求解问题转化为 O(n) 复杂度的图搜索问题,这里面就需要确保 ROPBlock 之间“保证可链接”。ropbot 的合成引擎分为三个关键阶段:
• 收集 ROPBlock(Collection): 不同于传统的 Galileo 逆向搜索算法,ropbot 使用符号执行扫描二进制文件,识别能将控制流切换到攻击者受控位置的序列。这种方法不依赖特定架构的“锚点指令”(如 ret),因此具备极强的跨架构通用性。
• 生成增强型 ROPBlock(Normalization): 许多功能强大的 Gadget(如 ret2csu 或带有条件分支的片段)本身并不符合 ROPBlock 的严格定义。ropbot 会通过**“规范化”过程**,将这些 Gadget 与现有的 ROPBlock 结合(例如预先设置寄存器或修复堆栈),将其包装成一个确定性的 ROPBlock。
• 图搜索合成(Graph Search): 系统构建寄存器移动图和状态转移图。每个节点代表寄存器的控制状态,寻找攻击链的过程就变成了在图中寻找从“无控制”到“全控制”的最短路径。
在针对 x64、ARM、MIPS、AArch64 及 RISC-V 的评估中,ropbot 展示了超越现有工具的性能
具体地,ropbot的特点包括:
• 极速合成: 合成复杂的 dup-dup-execve 任务平均仅需 2.5 秒,而大多数现有工具在此场景下直接失败。
• 极高成功率: 在 execve 任务测试中,ropbot 的成功率高达 89.7%,远超第二名 exrop 的 33.1%。
• 大型代码分析: ropbot 是目前唯一能为 Linux 内核(64MB)、Chromium(166MB)及 Firefox(159M) 等大型二进制文件稳定生成有效载荷的工具。
• 高效的架构适配: 为增加对 RISC-V 架构的支持,研究人员仅用了不到 2 小时 修改了 12 行 代码。
值得一提的是,ropbot 不仅仅是一个攻击性工具,它在防御侧同样具有重大意义:Google 已采用 ropbot 来快速验证漏洞的可利用性,从而帮助开发团队根据风险严重程度优化补丁修复的优先级。其架构无关的特性使其能够轻松应对各种复杂环境下的安全审计需求。
论文:https://kylebot.net/papers/ropbot.pdf 代码:https://github.com/sefcom/ropbot 数据集:https://zenodo.org/records/17811054
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:安全研究GoSSIP 锂化溴《G.O.S.S.I.P 阅读推荐 2025-12-30 更高效的ROP链构造——ropbot》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论