ROPfuscator:基于 ROP 的鲁棒混淆
密码学与安全
2023-04-05 v2 软件工程
摘要
软件混淆在保护软件知识产权免受逆向工程尝试方面起着关键作用。虽然某些混淆技术源于混淆与逆向工程的军备竞赛,但其他技术则源自不同的研究领域,例如二进制软件漏洞利用。面向返回编程(ROP)作为针对内存错误漏洞最有效的利用技术之一而广受欢迎。ROP 干扰我们对进程控制流的自然认知,这启发我们将 ROP 重新用作一种鲁棒且有效的软件混淆形式。尽管先前工作已经探讨了 ROP 作为混淆技术的有效性,但不断发展的逆向工程研究使得需要原理性推理,以理解基于 ROP 的机制在对抗终端人(MATE)攻击时的优势与局限。为此,我们提出 ROPfuscator,一种由编译器驱动的、基于 ROP 的混淆遍,支持 LLVM 所支持的任何编程语言。我们引入不透明谓词与不透明常量,以及一种新颖的指令隐藏技术,以抵御复杂的 MATE 攻击。更重要的是,我们引入了一个真实且统一的威胁模型,以全面评估 ROPfuscator,并对基于 ROP 的混淆技术提供原理性推理,回应代码覆盖率、引入的开销、正确性、鲁棒性与实用性等方面的挑战。
引用
@article{arxiv.2012.09163,
title = {ROPfuscator: Robust Obfuscation with ROP},
author = {Giulio De Pasquale and Fukutomo Nakanishi and Daniele Ferla and Lorenzo Cavallaro},
journal= {arXiv preprint arXiv:2012.09163},
year = {2023}
}