#legacy-mitigation

共收录 1 条相关安全情报。

← 返回所有主题
👥 作者: Tianjiao Huang, Po-An Chen, Nick Baron, Michael Franz

该论文针对二进制重编译(binary recompilation)这一核心技术领域提出了一个全静态的整程序提升(lifting)方案。二进制重编译的价值在于:无需源代码即可直接对可执行代码进行操作,从而自动化完成两项重要任务——为遗留二进制打补丁式地加装安全缓解措施(如 CFI、影子栈等),以及把二进制从一种指令集架构(ISA)迁移到另一种 ISA(例如从 x86-64 迁移到 AArch64)。然而目前并不存在能够可靠地把任意可执行文件提升为 LLVM IR 这类编译器中间表示的全自动系统,也不存在能够完整静态且可靠地把非平凡二进制从一种 ISA 翻译到另一种 ISA 的方案。作者指出,根本困难在于:静态恢复程序的完整控制流图(CFG)在一般情况下是不可判定的——计算型间接分支(computed branch)的跳转目标只有真正运行程序才能确定。现有系统因此不得不引入运行时回退(runtime fallback)机制,导致相当大一部分翻译运行时(translation machinery)必须随翻译后的程序一起部署在目标机器上执行,既增加开销,也削弱了“静态翻译”的初衷。 本文的核心方法是不再试图区分代码与数据(即不需要 code/data heuristics),而是把二进制中的每一个字节偏移都视为潜在的分支目标,以“暴力提升”(brute-force lifting)的方式对整个二进制进行转换,从而构造出一个保守但完整的超集 CFG(superset CFG),该 CFG 在保守意义上包含所有可行的控制流。对于那些静态无法解析的计算型分支,作者将其归约为对一张分发表(dispatch table)的查表操作,表中每一项指向对应的已翻译控制流路径,从而在目标端完全不需要运行时翻译支持。 作者实现了一个原型二进制重编译器,将 x86-64 二进制提升为 LLVM IR,并在此基础上做了完全静态的交叉编译验证:复用未经修改的现有 LLVM 后端,把程序静态地翻译到 AArch64。该工作宣称是首个不需要目标端运行时翻译支持的、全静态的整程序二进制提升系统,为遗留二进制的安全加固与跨 ISA 迁移提供了一条无需运行时开销的可行路径。适合二进制分析、程序加固、编译器与逆向工程方向的研究者和工程人员阅读。

💡 推荐理由: 全静态、无需目标端运行时的二进制提升,直接关系到无源码遗留系统的安全加固与跨架构迁移能否离线、批量化完成;同时它绕开了代码/数据区分这一长期瓶颈,会影响基于该区分的加固与检测手段的假设前提。

🎯 建议动作: 研究跟进

排序因子: 有可用补丁/修复方案 (+3) | 来自 arXiv 其他板块 (+2) | Community 数据源 (+1) | LLM 评分加成 (+0.6)