模糊测试与符号执行的创新结合
Eclipser作为ICSE 2019最新提出的模糊测试工具,现已深度集成至DeepState测试框架。该工具通过以下技术突破实现了白盒与灰盒测试的优势融合:
- 采用近似路径约束替代传统符号执行的精确约束
- 完全避免调用SMT/SAT求解器
- 通过轻量级插桩实现线性/单调性约束的快速求解
- 对复杂约束自动降级为模糊测试策略
核心技术优势
近似约束求解机制
-
路径约束简化:将传统符号执行中的复杂约束转换为两类易处理条件:
- 简单线性约束(使用低成本算法求解)
- 单调性约束(采用二分搜索替代求解器)
-
失败回退机制:当遇到非线性/非单调约束时,自动切换至模糊测试模式继续探索
性能基准对比
测试项目 | 比较对象 | Eclipser优势表现 |
---|---|---|
coreutils | KLEE | 代码覆盖率提升18% |
LAVA-M基准 | AFLFast/Steelix等 | 多发现37%的漏洞 |
Debian软件包 | AFLFast/LAF-intel | 发现8个全新CVE漏洞 |
DeepState集成实践
典型测试用例
|
|
使用流程
- 构建Docker测试环境:
|
|
- 执行Eclipser测试(30秒内即可发现崩溃输入):
|
|
竞品测试对比
测试工具 | 测试时长 | 输入生成量 | 结果 |
---|---|---|---|
AFL | 4小时 | 数千万次 | 未触发崩溃 |
libFuzzer | 4小时 | 数亿次 | 未触发崩溃 |
Eclipser | <30秒 | 数百次 | 成功触发崩溃 |
技术生态定位
-
互补性验证:
- 在ext3文件系统测试中优于libFuzzer
- 在红黑树测试中需要特定符号执行策略
- 与Angora的污点分析技术形成互补
-
多工具协同:
|
|
未来发展方向
- 自动化集成测试模式开发
- 支持更多新型模糊测试工具接入
- 基于多核的并行化测试方案
实验数据表明:在真实项目测试中,不同模糊测试工具各有优势场景,保持工具多样性仍是获得最佳测试效果的关键策略。