ios

FIoTFuzzer

N 人看过

该论文是在 Snipuzz 实现的基础上做的改进优化,着重说明了有的节点和处理方法,最终获得了很好的效果。但是论文并没有附加开源项目,本人是基于该理论描述的 fuzz 架构做了具体的实现,开源时间待定。

BackGround

现有 Iot-Fuzz

本论文工作

  1. 改进种子获取方式,除去抓包获取(被动式),增加了对该协议的 API Doc 或其他定义格式文件的读取
  2. 新增协议类型识别,添加网络协议特征(HTTP/ZigBee/等等),识别流量协议。
  3. 新增消息类型识别,对消息内容进行类型识别,主要针对常用协议 JSON、XML 等。
  4. 新增编码类型识别,对消息内容进行编码识别,通过内置的编码库(Base64,urlencode 等)识别,并将解密内容重新进行 2-4 的匹配。
  5. 改进相似性分类算法,增加滤波器(阈值)进行合理的归类

FIOT 架构

消息类型识别算法

总结

FloTFuzzer 则针对整个 fuzz 过程进行了拆分优化,弥补了 Snipuzz 的不足,并添加了对协议类型,编码类型,数据类型做了识别处理,使得变异数据能够保持原有的数据格式,减少了变异时间,同时能够增加代码功能的覆盖率。

实现后的 fuzz-IOSTFuzzer

在 FIOTFuzzer 基础上进行了下述的优化

  1. 新增对该协议的 API Doc 或其他定义格式文件的读取
  2. 新增协议类实现框架,对特定协议可以更细粒度的处理
待优化
  1. 实现 FIOTFuzzer 自动化数据包解析转发功能
  2. 改进数据变异算法,提高覆盖率
  3. 改进 sender,提高发包速率
  4. 改进响应相似性识别方式,考虑使用 NLP 代码相似性识别技术

项目地址:https://github.com/ioo0s/IOSTFuzzer