PULSAR基于状态机黑盒协议模糊测试

文章介绍了PULSAR,一种针对闭源协议的黑盒测试工具,通过模型推理和状态机分析提高对需要登录协议的测试效率。它与AFLNET的区别在于消息模板选择和状态机推断。文章详细解释了数据采集、消息聚类、状态机构建和测试用例生成的过程。

摘要:PULSAR是针对闭源的协议进行黑盒测试的基于状态机的协议模糊测试工具。其通过对专有协议的流量的观察从而推断消息格式和协议状态的模型。

一些想到的问题

  1. 和AFLNET的不同之处

    PULSAR建立了来回消息的模板,且消息来回造成的状态转换,且其变异的模板是基于之前的消息去选择。

    根据这样的特性,则pulsar对于需要登陆的协议的测试的效率更高,不会浪费时间在登录失败则会状态中循环。且其能通过状态机判断到底哪个状态是fuzzable的。

    pulsar和aflnet到底谁更好?

    或者说,对于需要登陆的协议,pulsar会减少浪费在登录状态循环的时间,但是其后续路径探测的广度不如AFLNET?,包括一开始的探索广度。

  2. 如何获取专有协议的的状态码

  3. 如何推断消息格式和状态机

    看模型推理部分

  4. 如何进行测试,如何组装服务器和被测端?

对专有协议的模糊测试方法

第一步:模型推理

通过在通信网络中抓包,获取协议的网络通信样本,从而推断出马尔科夫模型,信息格式的模板和交互信息之间的数据流规则。

数据采集使用PRISMA对捕获的网络流量的消息内容和状态机进行建模。捕获一段时间所有的流量,然后对这些包进行组装,从而提供完整的信息流给会话提取器。每个流分配一个会话标识符。如果在选定的时间间隔内没有收到数据包,则会话将被标记为终止,因此同一连接中的新数据包将属于新会话。可以将间隔作为参数提供,并对其进行调优,以适应被测应用程序建立新连接的速率。如果在训练阶段没有观察到协议的部分功能,那么仅从网络跟踪中学习的模型自然会缺乏协议的部分功能。因此可以与测试应用程序生成特定的交互,以对需要审计的系统的输入和输出进行建模。

消息聚类 在收集流量记录后

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值