最先进的战争:二进制分析方法的“攻势”技术
引用:
Shoshitaishvili Y, Wang R, Salls C, et al. SOK:(State of) The Art of War: Offensive Techniques in Binary Analysis[C]//Security and Privacy (SP), 2016 IEEE Symposium on. IEEE, 2016: 138-157.
研究内容:
二进制代码分析技术的统一框架实现
背景:
自动化二进制分析在现实中进行实现和部署依然存在许多问题和挑战,调查当前的各种分析方法(Recovering Control Flow/Graph-based vulnerability discovery/Value-Set Analysis、Dynamic Concrete Execution/Dynamic Symbolic Execution)II,III,IV;总结了3种漏洞利用方法(Crash Reproduction/Exploit Generation/Exploit Hardening)
方法:
实现选择型二进制代码分析框架angr,为实现跨架构跨平台支持不同分析范式的设计目标,将框架模块化设计
- libVEX:将面向特定系统结构的二进制代码转换为中间语言
- CLE Loads Everything:二进制加载模块
- SimuVEX:程序状态显示及修改
- Claripy:将所有值抽象为expression tree然后通过backends具体实现、通过前端面向用户的数据模块
- 完整程序分析模块:二进制文件分析的入口,有两个主接口为Path Groups和Analyses
选取了背景中的几种方法将其改进并加入到框架中实现:
- CFG RECOVERY
- VALUE SET ANALYSIS
- DYNAMIC SYMBOLIC EXECUTION
- UNDER-CONSTRAINED SYMBOLIC EXECUTION
- SYMBOLIC-ASSISTED FUZZING
- CRASH REPRODUCTION
- EXPLOIT GENERATION
- EXPLOIT HARDENING
创新点:
1.寻找「认证旁路」这类特殊的后门时,不寻找「认证过程」,而是找「认证通过」状态,通过「认证通过」状态回溯「认证过程」
2.提出下一代二进制代码分析方法,将现有的二进制分析方法复制进统一的框架中,比较差异性和相关效性能
3.实现了跨平台多架构实用的选择型二进制代码分析框架angr