Skip to main content
QUICK REVIEW

[论文解读] On Secure and Usable Program Obfuscation: A Survey

Hui Xu, Yangfan Zhou|arXiv (Cornell University)|Oct 3, 2017
Advanced Malware Detection Techniques参考文献 99被引用 18
一句话总结

本综述通过分析代码导向与模型导向的混淆方法,探讨了在程序混淆中同时实现安全性和可用性的可行性。结果表明,目前尚无任何方法能提供充分的安全保障或实际性能,主要原因是安全性和效率的评估指标均不充分。

ABSTRACT

Program obfuscation is a widely employed approach for software intellectual property protection. However, general obfuscation methods (e.g., lexical obfuscation, control obfuscation) implemented in mainstream obfuscation tools are heuristic and have little security guarantee. Recently in 2013, Garg et al. have achieved a breakthrough in secure program obfuscation with a graded encoding mechanism and they have shown that it can fulfill a compelling security property, i.e., indistinguishability. Nevertheless, the mechanism incurs too much overhead for practical usage. Besides, it focuses on obfuscating computation models (e.g., circuits) rather than real codes. In this paper, we aim to explore secure and usable obfuscation approaches from the literature. Our main finding is that currently we still have no such approaches made secure and usable. The main reason is we do not have adequate evaluation metrics concerning both security and performance. On one hand, existing code-oriented obfuscation approaches generally evaluate the increased obscurity rather than security guarantee. On the other hand, the performance requirement for model-oriented obfuscation approaches is too weak to develop practical program obfuscation solutions.

研究动机与目标

  • 评估现有代码导向混淆技术是否能提供强有力的安全保障。
  • 评估基于分级编码的模型导向混淆方法(如 GGH、CLT)在现实软件中的实用性。
  • 识别缺乏全面评估指标是实现安全且可用混淆的关键障碍。
  • 探讨理论安全性(例如不可区分性)与真实代码中实际可用性之间的脱节。
  • 提出需要新型、语义基础的评估指标,以在安全性和性能之间实现平衡。

提出的方法

  • 使用保真度、鲁棒性、隐蔽性与成本等指标,对代码导向混淆技术进行对比综述。
  • 基于多重线性映射与分级编码机制(如 GGH、CLT)分析模型导向混淆方法。
  • 评估分级编码方案在小型程序(如点函数、异或运算)上的性能表现。
  • 调查密码分析工作与修补方案,以评估分级编码当前的安全态势。
  • 提出基于抽象解释的语义评估方法,以建模混淆对程序语义的影响。
  • 识别缺乏同时捕捉语义安全与运行时效率的标准化指标。

实验结果

研究问题

  • RQ1现有代码导向混淆技术是否能提供超越单纯混淆程度的可证明安全保证?
  • RQ2基于 GGH 和 CLT 的模型导向混淆方案是否适用于具有复杂语法和 API 的现实世界软件?
  • RQ3为何当前评估指标无法准确评估混淆程序的真实安全性?
  • RQ4分级编码机制在通用程序中的可扩展性如何,是否能超越简单数学函数?
  • RQ5需要怎样的评估框架,才能在程序混淆中实现安全与可用性的平衡?

主要发现

  • 目前任何代码导向混淆方法均无法提供有意义的安全保障,因现有指标集中于混淆程度而非语义保护。
  • 基于分级编码的模型导向混淆在理论上可实现强安全性(如不可区分性),但带来极高的性能开销,混淆后程序大小可达数百万甚至数十亿字节。
  • CLT 和 GGH 等分级编码方案过于缓慢且低效,即使在小型程序(如 40 位点函数)上也难以实用。
  • 现有混淆工具无法处理复杂代码结构(如词法信息、API 调用或控制流结构),这些部分仍易被攻击者利用。
  • 多项式时间开销的要求过于宽松,无法确保实际可用性,因程序仍可能膨胀至不切实际的大小。
  • 缺乏同时考虑语义安全与运行时效率的评估指标,严重阻碍了安全且可用混淆技术的发展。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。