基于对抗样本生成的KNX协议栈模糊测试方法及装置与流程
本发明涉及通信协议测试,具体为基于对抗样本生成的knx协议栈模糊测试方法及装置。
背景技术:
1、knx协议作为智能建筑自动化领域的开放式通信标准,其协议栈是设备间通信的软件组件,承担控制信息交互、报文解析、状态转移以及网络连接管理的功能,随着建筑系统网络化程度的提升,knx协议栈软件实现的鲁棒性与安全性影响整个建筑自动化控制系统的稳定运行。
2、在现有的协议栈安全性验证与评估中,模糊测试技术常被用于发现软件漏洞,常规的模糊测试方法主要采用随机字节变异策略,通过对原始报文数据执行比特位翻转、字节插入或删除操作,生成变异测试用例,测试系统将变异后的报文发送至目标设备,同步监控设备进程是否出现崩溃、超时或异常响应,以此评估协议栈代码面对非预期输入时的处理能力。
3、然而,现有的模糊测试方法在应用于knx协议栈时存在测试深度不足的缺陷,由于常规测试方法依赖随机字节变异,未考虑knx报文的控制域语义编码规则与帧结构校验机制,导致生成的变异报文多在协议栈初期的解析校验阶段因语法或结构错误被丢弃,这种缺乏协议状态感知与语义约束的测试方式,使得测试报文难以通过基础校验环节,无法触发协议栈内部的状态转移逻辑,难以引导测试路径进入深层处理分支,测试停留在浅层代码边界,使得协议栈内部嵌套的异常处理路径和状态机缺陷未能被系统性暴露。
技术实现思路
1、针对现有技术的不足,本发明提供了基于对抗样本生成的knx协议栈模糊测试方法,解决了现有knx协议栈测试中存在的测试用例覆盖率低、随机变异有效性差、缺乏物理层环境模拟以及安全鲁棒性测试不足的问题。
2、为实现以上目的,本发明通过以下技术方案予以实现:
3、一种基于对抗样本生成的knx协议栈模糊测试方法,包括:
4、构建knx协议状态机形式化模型,提取各个特定状态下影响状态转移的关键字段集;
5、执行基于覆盖率反馈的种子选择与优先级调度,依据覆盖率反馈信息计算种子报文的能量值,挑选能量值高的报文作为下一轮变异的基础种子报文;
6、依据当前协议状态对应的关键字段集,实施协议状态感知的语义级变异,构造满足协议状态机转移条件的对抗样本报文序列;
7、采集传感器环境数据并将传感器环境数据转换为变异因子,将变异因子耦合叠加至对抗样本报文序列,为对抗样本报文序列注入与真实环境噪声特征关联的物理层变异;
8、将注入物理层变异的对抗样本报文序列发送至被测knx设备,执行异常检测与漏洞分类报告输出。
9、优选的,所述构建knx协议状态机形式化模型,提取各个特定状态下影响状态转移的关键字段集,包括:为knx协议栈的各个协议层分别构建独立的有限状态机,将各状态节点间的转移概率映射为状态转移矩阵;提取knx协议栈不同协议层之间的状态耦合关系构建跨层状态转移图,其中,跨层触发关系包括传输层状态变化引发的应用层状态转移操作,以及网络层路由失败对传输层重发策略的影响;遍历有限状态机以及跨层状态转移图中的有效状态节点,提取tpci控制域的序列号字段与apci控制域的服务类型字段形成关键字段集。
10、优选的,所述执行基于覆盖率反馈的种子选择与优先级调度,包括:在被测knx协议栈的目标二进制文件中插入用于追踪执行路径的桩代码,执行测试种子报文池中的种子报文时同步采集基本块覆盖率、分支覆盖率以及函数调用覆盖率;由采集的覆盖率反馈信息经过映射运算生成覆盖率哈希值,将当前种子报文生成的覆盖率哈希值与系统记录的全局历史覆盖率哈希值集合进行比对,得出新代码边界数量的增量数值;结合新代码边界数量、当前种子报文触发的状态机深度以及异常历史指标计算得出种子能量值;依据种子能量值对测试种子报文池内的所有种子报文进行降序排列,对排位靠前、能量值高的种子报文分配更多的变异执行次数。
11、优选的,所述实施协议状态感知的语义级变异,包括:执行传输层控制信息变异,向tpci控制域内部的序列号字段注入边界数值以及触发计数器溢出的回绕序列,翻转控制标志位字段的布尔状态,遍历写入优先级字段的级别数值;执行应用层控制信息变异,对apci控制域内部的服务类型码字段执行合法范围数值的全量遍历以及写入非法协议保留数值,向组地址字段注入特殊地址数值;执行数据域语义级变异,向长度数据字段注入触发整数溢出漏洞的异常数值,向枚举数据字段全量穷举插入定义的枚举项编码,向字符串数据字段拼接写入超长字符串数据;将实际占用字节数更新至长度数据字段,并重新计算循环冗余校验数值覆盖原报文尾部的校验字段。
12、优选的,所述构造满足协议状态机转移条件的对抗样本报文序列,包括:依据当前协议栈所处的状态节点以及状态转移矩阵中记录的合法邻接指向关系,读取状态转移矩阵中当前状态节点指向目标状态节点的转移边,提取转移边对应的特定报文类型;将重新计算循环冗余校验数值后的变异报文按照特定报文类型的顺序进行拼接,生成连续的对抗样本报文序列。
13、优选的,所述采集传感器环境数据并将传感器环境数据转换为变异因子,包括:采集设备运行过程中的温度漂移数据,记录固定时间窗口内的温度差数值,结合典型晶振温度系数计算得出时钟偏移因子;采集环境空间内的电磁干扰强度数值,结合预设的磁场标定系数计算得出位错误率因子;采集android设备在三轴方向上的振动幅度数据,结合预设的振动标定系数计算得出接触不良因子。
14、优选的,所述将变异因子耦合叠加至对抗样本报文序列,为对抗样本报文序列注入与真实环境噪声特征关联的物理层变异,包括:依据时钟偏移因子修改报文发送操作中的帧间间隔时间;在处理报文数据时生成随机数值,若随机数值小于位错误率因子,则对报文数据内部的二进制比特位执行比特翻转操作;在处理报文分片时生成随机数值,若随机数值小于接触不良因子,则在报文序列传输阶段直接删除部分报文分片数据;在目标设备未发生通信中断的情况下,依据预设的步长数值逐步提升位错误率因子与接触不良因子的整体幅值,增加注入报文序列的比特翻转数量与分片丢弃数量。
15、优选的,所述执行异常检测与漏洞分类报告输出,包括:实时监控被测knx协议栈进程的存活状态、系统响应时间、状态转移日志以及系统资源的消耗量;依据采集的异常事件执行漏洞分类,漏洞分类包含崩溃类漏洞、超时类漏洞、状态死锁类漏洞、安全降级类漏洞以及资源泄露类漏洞;基于记录的状态转移日志回溯异常发生前的连续状态跳转路径,与协议定义的合法状态转移路径进行比对,定位发生非法跳转的具体状态转移节点,确定存在处理缺陷的状态转移逻辑以及对应报文字段。
16、一种基于对抗样本生成的knx协议栈模糊测试装置,包括:
17、状态机建模模块,用于构建knx协议状态机形式化模型,提取各个特定状态下影响状态转移的关键字段集;
18、覆盖率反馈与调度模块,用于执行基于覆盖率反馈的种子选择与优先级调度,依据覆盖率反馈信息计算种子报文的能量值,挑选能量值高的报文作为下一轮变异的基础种子报文;
19、语义级变异模块,用于依据当前协议状态对应的关键字段集,实施协议状态感知的语义级变异,构造满足协议状态机转移条件的对抗样本报文序列;
20、物理环境模拟模块,用于采集传感器环境数据并将传感器环境数据转换为变异因子,将变异因子耦合叠加至对抗样本报文序列,为对抗样本报文序列注入与真实环境噪声特征关联的物理层变异;
21、异常检测模块,用于将注入物理层变异的对抗样本报文序列发送至被测knx设备,执行异常检测与漏洞分类报告输出。
22、一种计算机设备,包括存储器和处理器,存储器上存储有计算机程序,处理器执行计算机程序时实现上述基于对抗样本生成的knx协议栈模糊测试方法的步骤。
23、本发明提供了基于对抗样本生成的knx协议栈模糊测试方法。具备以下有益效果:
24、1、本发明通过构建knx协议状态机形式化模型并提取关键字段集,结合基于覆盖率反馈的优先级调度机制对种子报文进行语义级变异,构造满足状态机转移条件的对抗样本报文序列,解决了随机变异报文在解析阶段被大量丢弃的问题,使得测试报文在维持帧结构合法的前提下通过初期解析校验并引导协议逻辑进入深层处理分支,实现了系统性暴露深层状态机缺陷以及拓展漏洞测试探索路径的技术效果。
25、2、本发明通过采集android设备的传感器环境数据并映射为时钟偏移与位错误率等变异因子,将变异因子叠加至对抗样本报文序列以注入物理层干扰,解决了传统软件测试无法有效模拟总线物理噪声的技术局限,使测试过程无需依赖专用硬件测试设备即可模拟温度漂移与电磁干扰引发的底层通信异常,实现了全面覆盖设备物理层鲁棒性测试场景以及降低测试环境搭建门槛的技术效果。
26、3、本发明通过监控被测进程的存活状态与资源消耗并执行多维度的漏洞分类,基于状态转移日志回溯异常发生前的连续跳转路径以比对合法状态转移关系,解决了传统模糊测试仅记录崩溃状态而缺乏内部逻辑追踪能力的技术问题,使系统在触发状态死锁等复杂异常后能定位发生错误的转移逻辑及缺陷报文字段,实现了提供准确漏洞复现条件以及缩短协议栈底层代码修复周期的技术效果。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com