一种基于强化学习的充电协议边界模糊测试方法及系统与流程
本发明属于新能源汽车充电,特别是涉及一种基于强化学习的充电协议边界模糊测试方法及系统。
背景技术:
1、随着新能源充电互联互通领域技术的发展,充电服务平台逐步成为衔接上游流量渠道和下游充电saas平台的核心中间枢纽,形成了多协议并行对接的技术架构,该架构具备多协议兼容适配、多渠道业务互通的特点,平台需同时适配国标gb/t27930-2015+、ocpp1.6/2.0.1及小桔、快电、新电途等各类渠道私有协议,不同协议在字段精度、时区处理、空值语义、枚举定义等维度的差异化特征,致使平台协议适配环节极易产生隐性适配缺陷。
2、传统技术中,主要依靠三类常规方案完成充电协议测试工作,一是依托测试人员人工编写正反向测试用例,依托从业经验覆盖常规业务流程和已知异常场景;二是采用确定性故障注入技术,通过充电桩模拟器预设过压、欠压、通信中断等固定故障代码,实现已知故障场景的重复性测试;三是借助专业协议一致性检测平台,仿真bms与充电桩的握手通信,自动生成单协议测试报文,完成基础协议一致性校验。
3、然而,目前的传统充电协议测试方式,存在诸多缺陷:现有主流故障注入技术均为预设固定场景的确定性测试模式,如专利cn120528837a仅可通过选定固定充电模式完成常规故障数据采集和日志测试,专利cn106291198a仅能预设固定充电故障和通信故障进行重复性测试,两类经典方案均仅能复现已知故障,属于静态、确定性测试手段,不具备非确定性自主探索能力,无法识别协议临界合法输入引发的隐性边界漏洞。除此之外,传统方案仍存在多项短板:一是人工用例编写高度依赖主观经验,无法全面覆盖协议各类隐性边界场景,测试覆盖度存在明显盲区;二是无历史故障学习机制,无法沉淀历史故障日志中的有效测试经验,测试过程无法迭代优化;三是缺乏自适应变异能力,不能根据被测平台的响应反馈动态调整测试策略,测试针对性和效率极低;四是仅适配单桩单协议测试场景,无法覆盖多协议并发交互场景下的协议精度冲突、适配不兼容等特殊问题。通用模糊测试工具(如afl、peach)采用字节级随机变异,不了解充电协议的字段语义约束,其变异报文在格式校验阶段即被丢弃,无法进入业务处理流程,因此不适用于充电协议边界测试。此外,通用工具仅能发现程序崩溃、内存越界等底层缺陷,无法感知清分金额偏差、计费周期错位等充电业务逻辑层的隐性缺陷。本发明通过协议解析树实现语义感知的字段级精准变异,可以克服通用工具的上述局限。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够基于历史故障日志自动构建测试种子库、智能生成协议边界合法变异用例、依托强化学习实现自适应动态变异探索、支持多协议并发边界测试以挖掘跨协议隐性缺陷的基于强化学习的充电协议边界模糊测试方法及系统。
2、第一方面,本技术提供了一种基于强化学习的充电协议边界模糊测试方法,包括:
3、将目标充电协议规范转化为结构化字段树,构建得到协议解析树;
4、从历史互联互通故障日志和正常通信日志中提取种子报文,构建得到种子库,并对种子库中的各种子报文进行特征提取,得到各种子报文的种子特征向量;
5、将种子特征向量输入至强化学习模型中,进行策略推理,输出字段级变异策略;
6、根据字段级变异策略和协议解析树,对种子报文进行字段级变异,生成变异报文;
7、将变异报文发送至被测充电服务平台,接收被测充电服务平台返回的响应结果,并根据响应结果生成奖励值,根据奖励值更新强化学习模型的策略网络参数;
8、根据响应结果,筛选触发被测充电服务平台异常响应的变异报文,生成缺陷报告。
9、进一步地,将目标充电协议规范转化为结构化字段树,构建得到协议解析树,包括:
10、读取目标充电协议规范的字段定义,解析各字段定义的数据类型和结构关系,为各字段分别构建节点,为各节点分配节点唯一标识和父节点标识,并为各节点标注字段名称、数据类型、字符串长度上限、数值最小值、数值最大值、小数精度、时区要求、是否必填、枚举值列表和子节点列表,整合得到各字段对应的字段节点;
11、根据各字段节点的父节点标识,将各字段节点挂接到对应的父节点下,构建得到协议解析树。
12、进一步地,从历史互联互通故障日志和正常通信日志中提取种子报文,构建得到种子库,并对种子库中的各种子报文进行特征提取,得到各种子报文的种子特征向量,包括:
13、从历史互联互通故障日志中提取异常报文作为初始种子,并从正常通信日志中提取合法报文作为对照种子,对初始种子和对照种子进行去重和分类,构建得到种子库;
14、计算各种子报文中的数值类型字段数量和总字段数量的比值、字符串类型字段数量和总字段数量的比值,以及必填字段数量和总字段数量的比值,得到数值字段数量占比、字符串字段数量占比和必填字段数量占比;
15、计算各种子报文中的各数值类型字段的取值范围跨度比例的平均值,得到平均数值范围跨度;其中,取值范围跨度比例为各数值类型字段对应的数值最大值和数值最小值的差值除以数值最大值;
16、计算各种子报文中的各字符串类型字段的当前长度和字符串长度上限的比值的平均值,得到平均字符串长度占比;
17、从历史互联互通故障日志中提取各种子报文的历史变异记录,根据历史变异记录计算得到各种子报文的历史变异平均奖励值和历史变异触发异常响应的比例;
18、整合数值字段数量占比、字符串字段数量占比、必填字段数量占比、平均数值范围跨度、平均字符串长度占比、历史变异平均奖励值和历史变异触发异常响应的比例,得到种子特征向量。
19、进一步地,根据字段级变异策略和协议解析树,对种子报文进行字段级变异,生成变异报文,包括:
20、根据字段级变异策略,确定种子报文中待变异的指定字段,并在协议解析树中获取指定字段对应的字段节点,读取字段节点中和字段级变异策略对应的属性值;
21、根据属性值生成变异替换值,将种子报文的指定字段替换为变异替换值,得到变异报文。
22、进一步地,根据响应结果生成奖励值,包括:
23、判断响应结果的类型,当响应结果为被测充电服务平台发生崩溃或返回500错误时,生成第一正奖励值;当响应结果为业务逻辑层异常时,生成第二正奖励值;当响应结果为参数校验错误时,生成第三正奖励值;当响应结果为正常响应时,生成零奖励值;当响应结果为格式解析拒绝时,生成负奖励值;
24、其中,第一正奖励值大于第二正奖励值,第二正奖励值大于第三正奖励值,第三正奖励值大于零奖励值,零奖励值大于负奖励值。
25、进一步地,根据奖励值更新强化学习模型的策略网络参数,包括:
26、对变异报文进行特征提取,得到变异后种子特征向量,并将种子报文的种子特征向量、字段级变异策略、奖励值和变异后种子特征向量作为状态转移元组存入经验回放缓冲区;
27、对经验回放缓冲区进行随机采样,得到采样状态转移元组,计算得到采样状态转移元组的q目标值,并根据q目标值计算得到策略网络的损失函数,根据损失函数通过反向传播更新策略网络参数。
28、进一步地,损失函数的计算公式为:
29、;
30、式中,为损失函数,为奖励值,为折扣因子,为策略网络,为变异后种子特征向量,为下一状态下的候选动作,为策略网络在状态下对候选动作的q值估计,为所有候选动作中最大的q值估计,为种子特征向量,为字段级变异策略,为策略网络在种子特征向量下对字段级变异策略的q值估计。
31、进一步地,基于强化学习的充电协议边界模糊测试方法还包括:
32、从种子库中分别选取国标gb/t27930协议、ocpp协议和各渠道私有协议对应的种子报文,得到国标种子报文、ocpp种子报文和渠道种子报文;
33、对国标种子报文、ocpp种子报文和渠道种子报文分别进行字段级变异,得到国标变异报文、ocpp变异报文和渠道变异报文;
34、将国标变异报文、ocpp变异报文和渠道变异报文并发发送至被测充电服务平台,并接收被测充电服务平台的响应结果,得到国标响应结果、ocpp响应结果和渠道响应结果;
35、对属于同一业务订单号的国标响应结果、ocpp响应结果和渠道响应结果进行比对,计算得到偏差值;
36、判断偏差值是否超过精度阈值,若偏差值超过精度阈值,则将比对结果标记为跨协议精度不匹配冲突;汇总所有标记为跨协议精度不匹配冲突的比对结果,生成跨协议冲突报告。
37、第二方面,本技术还提供了一种基于强化学习的充电协议边界模糊测试系统,该系统包括:
38、解析树构建模块,用于将目标充电协议规范转化为结构化字段树,构建得到协议解析树;
39、种子管理模块,用于从历史互联互通故障日志和正常通信日志中提取种子报文,构建得到种子库,并对种子库中的各种子报文进行特征提取,得到各种子报文的种子特征向量;
40、变异策略决策模块,用于将种子特征向量输入至强化学习模型中,进行策略推理,输出字段级变异策略;
41、字段级变异模块,用于根据字段级变异策略和协议解析树,对种子报文进行字段级变异,生成变异报文;
42、测试执行和模型更新模块,用于将变异报文发送至被测充电服务平台,接收被测充电服务平台返回的响应结果,并根据响应结果生成奖励值,根据奖励值更新强化学习模型的策略网络参数;
43、缺陷报告生成模块,用于根据响应结果,筛选触发被测充电服务平台异常响应的变异报文,生成缺陷报告。
44、上述基于强化学习的充电协议边界模糊测试方法及系统,通过将目标充电协议规范转化为结构化字段树并构建协议解析树,同时从历史互联互通故障日志和正常通信日志中提取种子报文构建种子库,对各种子报文进行特征提取得到种子特征向量,能够实现充电协议的结构化层级化解析表征,以及测试种子样本的标准化特征量化的技术效果,可以解决传统模糊测试依赖人工梳理协议字段、测试种子选取随意和缺乏统一协议结构约束导致的变异报文合规性差、无效测试用例占比过高的问题;通过将种子特征向量输入强化学习模型进行策略推理并输出字段级变异策略,再结合字段级变异策略和协议解析树对种子报文进行字段级变异以生成变异报文的技术手段,能够实现基于强化学习的字段级精准变异策略自动生成和定向边界变异操作的技术效果,可以解决传统模糊测试采用随机整包变异模式、无法针对高风险边界字段开展定向测试导致的漏洞发现效率低下、边界场景覆盖不均衡的问题;通过将变异报文发送至被测充电服务平台,接收被测充电服务平台返回的响应结果,并根据响应结果生成奖励值,依据奖励值更新强化学习模型的策略网络参数的技术手段,能够实现模糊测试过程的闭环反馈优化和变异策略的动态迭代更新的技术效果,可以解决传统模糊测试缺乏测试效果反馈机制、变异策略固定无法自适应调整导致的测试过程无法向高收益方向收敛的问题;通过根据被测充电服务平台的响应结果,筛选触发被测充电服务平台异常响应的变异报文并生成缺陷报告的技术手段,能够实现测试异常的自动识别筛选和测试结果的标准化自动化输出的技术效果,可以解决传统模糊测试依赖人工排查异常、缺陷定位效率低和测试结果整理耗时费力的问题,可以提升充电协议边界漏洞挖掘效率和测试精准度,为充电协议的安全修复提供精准缺陷依据。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com