首页> 外文会议>Annual IEEE/IFIP International Conference on Dependable Systems and Networks >Manufacturing Resilient Bi-Opaque Predicates Against Symbolic Execution
【24h】

Manufacturing Resilient Bi-Opaque Predicates Against Symbolic Execution

机译:制造具有弹性的双不透明谓词以防止符号执行

获取原文

摘要

Control-flow obfuscation increases program complexity by semantic-preserving transformation. Opaque predicates are essential gadgets to achieve such transformation. However, we observe that real-world opaque predicates are generally very simple and engage little security consideration. Recently, such insecure opaque predicates have been severely attacked by symbolic execution-based adversaries and jeopardize the security of control-flow obfuscation. This paper, therefore, proposes symbolic opaque predicates which can be resilient to symbolic execution-based adversaries. We design a general framework to compose such opaque predicates, which requires introducing challenging symbolic analysis problems (e.g., symbolic memory) in each opaque predicate. In this way, we may mislead symbolic execution engines into reaching false conclusions. We observe a novel bi-opaque property about symbolic opaque predicates, which can incur not only false negative issues but also false positive issues to attackers. To evaluate the efficacy of our idea, we have implemented a prototype obfuscation tool based on Obfuscator-LLVM and conduct experiments with real-world programs. Our evaluation results show that symbolic opaque predicates demonstrate excellent resilience to prevalent symbolic execution engines, such as BAP, Triton, and Angr. Moreover, although the costs of symbolic opaque predicates may vary for different problem settings, some predicates can be very efficient. Therefore, our framework is both secure and usable. Users can follow the framework to introduce symbolic opaque predicates into their obfuscation tools and made them more powerful.
机译:控制流混淆通过保留语义的转换增加了程序的复杂性。不透明谓词是实现这种转换的必不可少的工具。但是,我们观察到,现实世界中的不透明谓词通常非常简单,并且很少考虑安全性。近来,这种不安全的不透明谓词受到基于符号执行的对手的严重攻击,并危害了控制流混淆的安全性。因此,本文提出了不透明的符号谓词,可以对基于符号执行的对手具有弹性。我们设计了组成此类不透明谓词的通用框架,这要求在每个不透明谓词中引入具有挑战性的符号分析问题(例如,符号记忆)。这样,我们可能会误导符号执行引擎得出错误的结论。我们观察到关于符号不透明谓词的新型双不透明属性,它不仅会导致错误的否定问题,而且还会给攻击者带来错误的肯定问题。为了评估我们想法的有效性,我们基于Obfuscator-LLVM实现了一个原型混淆工具,并使用实际程序进行了实验。我们的评估结果表明,不透明符号谓词对常见的符号执行引擎(例如BAP,Triton和Angr)表现出出色的弹性。此外,尽管符号不透明谓词的成本可能因问题设置的不同而有所不同,但某些谓词可能非常有效。因此,我们的框架既安全又可用。用户可以按照该框架将符号不透明谓词引入其混淆工具中,并使它们更强大。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号