Proj CMI Paper Reading: Ferry: State-Aware Symbolic Execution for Exploring State-Dependent Program Paths
Abstract
背景:目前的符号执行探索有限状态机的能力有限,这往往是因为状态机依赖于早期程序执行,而不仅仅是当前一次输入
本文:
Task: 程序状态感知的符号执行program-state-aware symbolic execution
工具:Ferry
方法:
- 识别当前⼴泛存在的数据依赖关系
- 自动识别程序状态和探索依赖于这些状态的分支
实验1:
数据集:13个真实程序+google fuzzbench
效果:
- 在jhead中找到3个0day漏洞
- 能覆盖更多代码
实验2:
数据集:15个收集到的状态相关的漏洞,6个程序
效果: - 能获取⽐现有的更多依赖于程序状态的漏洞
to reach
more program-state-dependent vulnerabilities than existing
symbolic executors and fuzzing approaches with 15 collected
实验3:
数据集: lava-m
效果:了解了优势和局限性