FIoTFuzzer
该论文是在 Snipuzz 实现的基础上做的改进优化,着重说明了有的节点和处理方法,最终获得了很好的效果。但是论文并没有附加开源项目,本人是基于该理论描述的 fuzz 架构做了具体的实现,开源时间待定。
BackGround
现有 Iot-Fuzz
本论文工作
- 改进种子获取方式,除去抓包获取(被动式),增加了对该协议的 API Doc 或其他定义格式文件的读取
- 新增协议类型识别,添加网络协议特征(HTTP/ZigBee/等等),识别流量协议。
- 新增消息类型识别,对消息内容进行类型识别,主要针对常用协议 JSON、XML 等。
- 新增编码类型识别,对消息内容进行编码识别,通过内置的编码库(Base64,urlencode 等)识别,并将解密内容重新进行 2-4 的匹配。
- 改进相似性分类算法,增加滤波器(阈值)进行合理的归类
FIOT 架构
消息类型识别算法
总结
FloTFuzzer 则针对整个 fuzz 过程进行了拆分优化,弥补了 Snipuzz 的不足,并添加了对协议类型,编码类型,数据类型做了识别处理,使得变异数据能够保持原有的数据格式,减少了变异时间,同时能够增加代码功能的覆盖率。
实现后的 fuzz-IOSTFuzzer
在 FIOTFuzzer 基础上进行了下述的优化
- 新增对该协议的 API Doc 或其他定义格式文件的读取
- 新增协议类实现框架,对特定协议可以更细粒度的处理
待优化
- 实现 FIOTFuzzer 自动化数据包解析转发功能
- 改进数据变异算法,提高覆盖率
- 改进 sender,提高发包速率
- 改进响应相似性识别方式,考虑使用 NLP 代码相似性识别技术