论文Summary01——Fuzzing

在这里插入图片描述

特点

1.Snipuzz不需要逆向分析的前期准备(所以是轻量级的),也不需要依赖反馈,而是运用响应推出信息片段,用信息片段进行进行变异
2.响应类别的数量与固件中的代码执行路径的数量呈正相关。响应消息不能等同于设备的执行路径,但通过响应消息的内容,可以推断出已在固件中执行的代码块,如果两个输入得到不同的响应消息,可以推断这两个输入进入不同的固件代码执行路径。即使执行不同的功能,固件也可以返回相同的响应消息。

挑战

挑战一

1.考虑到IoT设备难以获取固件,无法获取内部的执行状态信息(response不偏向状态而是结果),也就无法获得反馈(这里无法获得反馈并不是真的无法获得反馈,而是获得执行状态的反馈)以指导fuzzing过程,所以现在黑盒多,所以逆向不现实
2.基于语法,有开源的文档,也有根据现有的训练集去学习的,需要准备大量语料,而且格式不统一,不现实

解决

用response(哪个协议的response)作引导(因为设备内部无法执行,那么去关注外部,外部就是各组件的交互,那么就是request和responese)

挑战二

Diverse message formats. A solution should be able to infer the format from a raw message.数据传输通常没有统一标准格式

解决

提出了一种启发式算法:检测消息中每个字节的角色
It will first mutate bytes in a message(消息片段) one by one to generate probe messages
Adjacent bytes that have the same role in the message form the initial message snippets, which is the basic unit of mutation
在这里插入图片描述

挑战三

The response messages of an IoT device may contain random elements, such as timestamps or tokens. Such randomness results in different responses for the same message

解决

edit distance [42] and agglomerative hierarchical clustering [43]
分层聚类策略来优化突变策略

Methodlogy

文章的交互模型 / response模型

程序的处理流程:对输入进行语法校验,从输入中提取变量类型和值转到相应函数,如果任一一步不满足都会发送一个独有的response,Replier 负责发送responses 给client (such as the user’s APP).
在这里插入图片描述

获取消息序列

初始种子

1.消息m发送到设备上执行特定的函数功能,所有消息即m的集合M负责请求设备的特定动作
2.官方或者三方的API文档和测试套件。利用测试套件来和目标设备进行沟通并提取初始种子。例如调用API程序打开灯的过程,程序首先向服务器或设备发送登录信息,之后发送消息定位灯泡的位置,最后发送消息控制开灯,捕获上述的消息序列作为初始种子。

重置消息

为了复现崩溃对应的测试用例、确保每一轮测试中被测设备处于相同的初始状态。向设备发送任一消息序列后,将发送一个重置消息的序列以将设备重置到一个预定义的状态。

获取消息片段

消息片段的本质是消息中的连续字节,识别消息中每个字节的含义
删除消息m中的某个字节来生成探测消息。通过对每个探测消息的响应进行分类
例如,在表中,为了确认消息m = {“on”,true}的消息片段,可以通过逐个字节的删除
响应r1、r2、r5被合并到一个种类,该种类表示JSON语法的错误
Edit Distance进行字符串比较
在这里插入图片描述

变异策略

1.对上一阶段获得的消息片段进行突变
2.和基于字节的区别:基于字节的随机的变异直接变了输入,没有输入语法校验参与,所以生成的输入也大概率不会通过语法校验。
3.如果逐字节修改消息(即破坏格式),得到许多不同的响应。如果有效消息中两个不同位置的突变接收到相同的响应,则这两个位置很有可能与固件中的相同功能相关。

分层聚类

分层聚类的核心思想是不断合并两个最相似的聚类,直到只剩下一个聚类

判断字符串相等/相似的python fuzzywuzzy

字符串的一种处理方法fuzzywuzzy模糊匹配
出现原因:人类语言浦东、上海浦东是一个事物;语音助手识别模糊

判断字符串相等/相似的python编辑距离

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

q1uTruth

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值