Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

LOOP: Logic-Oriented Opaque Predicate Detection in Obfuscated Binary Code

论文下载:https://faculty.ist.psu.edu/wu/papers/loop-ccs2015.pdf

Background

三种不透明谓词: 1. Invariant Opaque Predicates 2. Contextual Opaque Predicates

Fig

  • 前一个逻辑的解是后一个的子集
  • Dynamic Opaque Predicates

Fig

  • 前后逻辑等价

Overview: Method

  • 文章目的:找到目标程序中的不透明谓词,并尝试分类 假设一次执行的逻辑表达式为: Fig
  • 符号执行,检测恒真(假)逻辑
  • 即验证:Fig
  • 验证Fig,以及两条路径的等价性

Approach

Fig

Outline Logging

  • 脱壳分析,因为要分析恶意软件
  • 动态污点分析模块:只关心特定的(比如输入相关)条件判断、跳转语句

Slicing and Symbolic Execution

  • 给定一个谓词,反向切片获得与之相关的所有控制、数据流信息
  • 切片结束条件是遇到常数、输入、用户指定数值等

Invariant Opaque Predicates

  • 第一阶段确定

Contextual Opaque Predicates

  • 逻辑推演,暴力枚举
  • 考虑多个谓词的组合复杂,可以分治

Dynamic Opaque Predicates

  • 检测和上一步有重合,所以在第三阶段一起区分两种情况

Implementation

  • DBI: PIN
  • 符号执行依托BAP

Evaluation

Evaluation with Common Utilities

Fig * 在输入上标记污点 * FP是误报 * FN文中意思是漏报

Evaluation with Obfuscated Malware

Fig * 恶意软件来自 VX Heavens,好处是混淆技术有分类 * 实验本质与上一个一致,可以看到所有实验不存在漏报

Metamorphic Malware Matching

  • 展现工具价值,做的一个应用实验,通过本文的方法简化恶意软件,通过之后恶意软件家族识别当中的性能提升说明方法的价值 Fig