MAJORCA:多架构 JOP 与 ROP 链汇编器
密码学与安全
2022-03-23 v2 软件工程
摘要
如今,漏洞利用通常依赖于代码复用方法。称为 gadget 的短代码片段被链接在一起以执行某些载荷。代码复用攻击可在操作系统禁止数据内存执行的防护下利用漏洞。ROP 链构造任务是为被利用可执行文件所定义的虚拟机生成代码。理解 ROP 攻击的能力边界至关重要,此类知识可用于提升软件安全性。我们实现了 MAJORCA,它以架构无关的方式生成 ROP 和 JOP 载荷,并充分考虑受限符号(如通过 strcpy 复制数据时会终止复制的空字节)。本文涵盖了整个代码复用载荷构造流程:gadget 编目、在 DAG 中链接、调度、线性化为可运行载荷。MAJORCA 自动为 x86 和 MIPS 生成 ROP 与 JOP 载荷。MAJORCA 构造的载荷在 gadget 地址和数据中均遵守受限符号。我们使用 rop-benchmark 评估 MAJORCA 的性能与准确性,并与开源编译器比较。我们表明 MAJORCA 优于开源工具。我们提出一种 ROP 链接度量,并用它借助 MAJORCA 及其他 ROP 编译器估计不同操作系统上成功 ROP 链接的概率,以表明 ROP 链接仍可行。该度量可估计操作系统防御的效率。
引用
@article{arxiv.2111.05781,
title = {MAJORCA: Multi-Architecture JOP and ROP Chain Assembler},
author = {Alexey Nurmukhametov and Alexey Vishnyakov and Vlada Logunova and Shamil Kurmangaleev},
journal= {arXiv preprint arXiv:2111.05781},
year = {2022}
}