protocolfuzzer为青草莓公司独立开发的纯c语言的fuzzing全栈测试引擎
工具完全自主可控,并正在迅速支持更多的测试对象和测试场景
工具以运行适配linux,windows
产品简介
protocolfuzzer本身是一个带命令行参数的用于fuzzing测试的执行引擎
集成了fuzzing测试的黑白灰盒测试技术
产品网络图

产品结构图

产品特性
支持的测试技术
protocolfuzzer支持针对协议交互的黑盒fuzzing方式,
支持pcap抓包重放测试
支持中间人形式测试
在文件fuzzing测试时,即支持黑盒fuzzing方式也支持灰白盒fuzzing方式
在代码fuzzing测试时,支持灰白盒fuzzing方式
代码测试时既支持用户态代码测试也支持内核态系统调用和驱动代码测试
支持已知漏洞(cve)回放,支持基于已知漏洞再变异
支持的变异算法
protocolfuzzer支持20多种数据类型,并同时支持针对各种数据类型的70多种变异算法
支持的协议
protocolfuzzer目前已支持230+个协议,包括基础协议,服务协议,路由协议,iot协议,空口协议,硬件总线协议等
并且目前新的协议正在快速补充开发中
支持的测试对象
protocolfuzzer除支持测试协议外,目前还支持文件、网络api、代码等测试场景
并且因为其强大的扩展能力,新的测试对象不断增加中
支持的监控器
protocolfuzzer在黑盒测试的过程中,通过监控器监控被测对象的运行状态,从而发现bug
目前支持ping,tcp,ssh,commandReturn,commandEcho,snmp,syslog,remote,adb等监控器
支持的发包器
protocolfuzzer通过发包器完成于被测对象的数据交互过程,从而支持更多的测试场景
目前支持文件,raw socket,ip,tcp,udp,tls,ssh,libpcap等40多个类型的发包器
支持的扩展日志
支持json文件输出测试日志
支持扩展
protocolfuzzer支持通过cyan-lib对用户提供自定义扩展功能
可扩展的内容包括测试套,发包器,监控器,变异算法,relation,fixup,tranform,analyzer,check
支持历史漏洞状态添加,一个协议可以不限制添加历史漏洞回放测试
详细特性描述
功能/特性 | 规格能力 | 规格描述 |
数据模型 | 基础能力 | 字段描述 支持包括类型,长度,初始值等基础属性 |
数据类型 支持比如整数类型,字符串类型,内存,结构体,联合体,数组,整数集合,字符串集合,buf集合等 | ||
字段之间关系描述 支持如一个字段为另一字段的长度、数量、偏移值等 | ||
字段数据格式的自动转换 支持如编解码、加解密、压缩/解压缩等 | ||
字段的完整性计算和自动填充 支持如校验和、数字签名、消息认证码、消息摘要等 | ||
支持通过报文模型引用,重写 | ||
支持基于字段,结构,报文为基础的变异配置 | ||
扩展能力 | 支持针对新类型测试对象的扩展开发数据模型的能力 | |
支持扩展开发自定义函数来进行数据完整性字段的计算和自动填充 | ||
支持字段关系的扩展开发能力 | ||
支持已知协议数据模型自动生成 | ||
支持基于未知协议pcap自动生成数据模型 | ||
支持基于已知协议pcap自动生成数据模型(详细) | ||
状态模型 | 基础能力 | 支持报文消息接收和发送动作 |
支持文件写动作 | ||
支持动作操作引用数据模型 | ||
支持多发包器引用,操作 | ||
支持配置文件参数获取 | ||
支持为通用数据模型赋予不同的样本初始值 | ||
支持将一个或多个动作组合成状态,并支持在状态之间进行条件跳转,支持使用自定义函数作为跳转条件,以实现协议状态机 | ||
支持报文收发的字段和结构数值获取 支持报文发送的报文字段赋值 | ||
扩展能力 | 支持针对新类型测试对象的扩展开发状态模型能力 | |
支持报文消息收发过程,和写文件过程的扩展开发能力 | ||
支持对多方参与的复杂状态模型自定义能力 | ||
支持基于未知协议pcap自动生成状态模型 | ||
其他能力 | 支持每轮测试之后执行固定状态或脚本使目标状态复位至初始状态 | |
支持已知漏洞(cve)回放,支持基于已知漏洞再变异 | ||
其他能力 | 支持pcap抓包回放测试 | |
变异算法 | 基础能力 | 支持针对字段类型的变异算法 |
支持复合数据结构类型的变异算法, 例如复合数据结构的重复、插入、删除 | ||
支持针对字段和消息的是否变异的配置能力 | ||
支持配置字段,报文***变异长度 | ||
支持对关联字段间联动变异能力, 例如故意破坏字段间的长度关联关系,或者变异其中一个字段但保持字段间的长度关联关系 | ||
支持配置多字段随机,单字段随机,单字段顺序执行变异策略 | ||
支持全量变异,简单变异等变异模式 | ||
支持70+种基于数据类型的种变异算法 | ||
扩展能力 | 支持提供已知漏洞的POC作为变异用例回放的扩展能力 | |
支持变异算法扩展开发能力,用户可以根据需求自定义特定变异算法 | ||
监控能力 | 基础能力 | 支持通过发送正常有效报文来进行探测被测设备状态的监控能力 |
支持非侵入式测试对象监控 如无响应,连接复位,网络超时等问题 | ||
支持侵入式的测试对象监控能力 如日志分析、性能监控、进程监控 | ||
支持提供引起异常的测试用例信息,用于复现定位 | ||
支持通过监控器设置被测环境,恢复被测环境 | ||
支持同一测试套件多监控器引用能力 | ||
支持同一测试套件对同一类型监控器多次引用能力 | ||
扩展能力 | 支持监控手段扩展开发。 用户可以根据需求及测试对象特点开发监控手段 | |
支持使用自定义脚本来进行监控 | ||
日志能力 | 基础能力 | 支持日志多个打印等级设置 |
支持seed,运行次数,运行速度实时打印 | ||
支持输入输出报文内容实时打印 | ||
支持变异具体细节实时打印 | ||
支持收发报文数据模型解析过程详细打印 | ||
支持监控器监控状态实时打印 | ||
支持问题发现实时打印 | ||
支持报文收发过程json格式化输出 | ||
支持同一测试套件多日志模块引用能力 | ||
支持同一测试套件同一日志模块多次引用能力 | ||
扩展能力 | 支持日志模块扩展能力 | |
支持日志参数在状态模型中动态配置能力 | ||
发包能力 | 基础能力
| 支持文件发包器 |
支持主流的以太网络各层协议发包器 | ||
支持针对硬件通信接口的发包能力,例如USB,CAN等 | ||
支持无线接口发包能力,例如WiFi、蓝牙 | ||
支持同一测试套件多发包器引用能力 | ||
支持同一测试套件对同一类型发包器多次引用能力 | ||
扩展能力
| 支持发包器扩展开发能力 | |
支持发包器参数在状态模型中动态配置能力 | ||
测试对象 适配 | 基础能力 | 支持对服务端测试 |
支持对客户端测试 | ||
支持配置成中间人方式测试 | ||
支持对多角色参与的其中一个角色测试 | ||
支持基础网络协议、网络API、通用文件格式等测试对象 | ||
支持工控协议、无线协议等协议测试 | ||
支持复杂密码协议的适配 | ||
扩展能力 | 支持私有文件,私有协议的用户自定义扩展开发能力 | |
配置管理 | 基础能力 | 支持命令行操作配置 包括测试次数,测试时长,debug等级等参数 |
支持命令行操作配置 选择测试套件,指定测试套路径,license路径等 | ||
支持通过协议配置文件配置 环境参数 ,协议参数等 | ||
支持通过协议配置文件配置 发包器以及参数,日志以及参数,监控器以及参数 | ||
支持通过配置文件配置 其他参数 | ||
支持测试启动,停止,暂停,继续等操作 | ||
支持通过平台工具strawberry提供web界面操作 |

复制产品链接
长按图片保存/分享