System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 电力物联网终端模糊测试方法、系统、设备和存储介质技术方案_技高网

电力物联网终端模糊测试方法、系统、设备和存储介质技术方案

技术编号:40943044 阅读:2 留言:0更新日期:2024-04-18 14:59
本发明专利技术属于电力系统技术领域,公开一种电力物联网终端模糊测试方法、系统、设备和存储介质,其中方法包括以动态模拟执行形式,对电力物联网终端中的固件程序进行面向程序覆盖率和面向程序脆弱性的插桩测试;以动态污点分析形式,对固件程序进行漏洞分析,漏洞分析包括离线动态污点分析和在线动态污点分析;根据面向程序脆弱性的插桩测试,通过深度学习对固件程序中的脆弱点进行定位,并引导模糊测试器对脆弱点进行定向测试。本发明专利技术提升了测试用例生成和变异的有效性,提高了模糊测试的针对性,助力发现程序未知漏洞。

【技术实现步骤摘要】

本专利技术涉及电力系统,特别涉及一种电力物联网终端模糊测试方法、系统、设备和存储介质


技术介绍

1、在新型电力系统不断发展的背景下,分布式新能源广泛并网、海量负荷资源控制等新型应用不断发展,电力系统海量异构终端不断接入,终端种类数量激增,这使得通过终端漏洞利用来对电网的安全性进行威胁的可能性不断增加,对电力系统的安全形势造成了严重威胁。传统依靠人工进行终端安全测试的方式难以保证电力系统中海量终端的安全性,因此迫切需要形成高效、便捷的面向电力系统海量终端的模糊测试技术方法及测试体系。

2、模糊测试是一种安全测试技术,主要用于检测安全漏洞,近年来得到了快速发展。模糊测试是漏洞检测技术的一种,通过使用针对目标程序生成的随机字符流,对目标程序进行多次测试,以检测可能存在的漏洞。相比于静态分析、动态分析、二进制比对等方法,模糊测试方法规避了状态爆炸、路径爆炸、约束求解困难、耗时长以及误报率高等问题,且具有自动化程度高、系统消耗低、误报率低、不依赖于目标程序源代码等优点。

3、但现有技术中,测试种子生成依赖专家知识和种子变异随机,且基于覆盖率的模糊测试方法虽然能发现大量的程序路径,但不是所有的程序路径都包含漏洞,导致其漏洞发现能力有限。


技术实现思路

1、本专利技术实施例提供了一种电力物联网终端模糊测试方法、系统、设备和存储介质,以解决现有技术中测试种子生成有效性不足、漏洞发现能力有限的问题。

2、为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。

3、根据本专利技术实施例的第一方面,提供了一种电力物联网终端模糊测试方法,包括:

4、以动态模拟执行形式,对电力物联网终端中的固件程序进行面向程序覆盖率和面向程序脆弱性的插桩测试;

5、以动态污点分析形式,对固件程序进行漏洞分析,漏洞分析包括离线动态污点分析和在线动态污点分析;

6、根据面向程序脆弱性的插桩测试,通过深度学习对固件程序中的脆弱点进行定位,并引导模糊测试器对脆弱点进行定向测试。

7、在一个实施例中,该方法的以动态模拟执行形式,对电力物联网终端中的固件程序进行面向程序覆盖率和面向程序脆弱性的插桩测试的步骤,包括:

8、以系统级别模拟的方式启动固件程序,在执行到特定位置时切换至用户级别进行模拟;当出现系统调用时,切换至系统级别,系统调用完成后恢复至用户级别继续执行。

9、在一个实施例中,该方法的以动态模拟执行形式,对电力物联网终端中的固件程序进行面向程序覆盖率和面向程序脆弱性的插桩测试的步骤,包括:

10、利用反编译技术将现有固件程序从二进制机器码转换为tcg中间语言表示,向tcg中间语言表示的代码中插入记录覆盖情况的代码,将动态插桩完成的代码重新编译为宿主机平台代码,以完成面向程序覆盖率的插桩测试。

11、在一个实施例中,该方法的以动态模拟执行形式,对电力物联网终端中的固件程序进行面向程序覆盖率和面向程序脆弱性的插桩测试的步骤,包括:

12、利用可疑代码位置信息记录文件,计算各函数、各基本块和可疑代码位置的距离,在面向程序覆盖率的插桩测试代码基础之上添加可疑代码导向信息,以完成面向程序脆弱性的插桩测试。

13、在一个实施例中,该方法的以动态污点分析形式,对固件程序进行漏洞分析,漏洞分析包括离线动态污点分析和在线动态污点分析的步骤,包括:

14、利用基于动态二进制插桩方法记录固件程序的运行时信息,重放运行时信息并实施污点传播和分析,利用污点的分析信息逆向分析输入数据格式约束,以构造模糊测试初始种子,完成离线动态污点分析。

15、在一个实施例中,该方法的利用基于动态二进制插桩方法记录固件程序的运行时信息的步骤,包括:

16、对固件程序中的系统调用周围插入回调函数以检查系统调用的参数,收集当前基本块中内存操作数的地址或者用于计算地址所必须的上下文信息,以完成运行时信息的记录。

17、在一个实施例中,该方法的利用污点的分析信息逆向分析输入数据格式约束的步骤,包括:

18、对污点数据的偏移进行划分,划分后需要抽取出格式约束中值为恒定的部分,通过划分和抽取得到输入数据以字节为单位的各个位置是否受到程序中格式检查的约束和约束在程序中的位置。

19、在一个实施例中,该方法的以动态污点分析形式,对固件程序进行漏洞分析,漏洞分析包括离线动态污点分析和在线动态污点分析的步骤,包括:

20、通过模糊测试驱动的污点推断进行污点分析,利用污点分析指导测试器种子变异,以触及未探索的程序分支,完成在线动态污点分析。

21、在一个实施例中,该方法的根据面向程序脆弱性的插桩测试,通过深度学习对固件程序中的脆弱点进行定位,并引导模糊测试器对脆弱点进行定向测试的步骤,包括:

22、基于图嵌入模型,将程序分析中的函数属性控制流图映射到嵌入向量,并使用存在脆弱点和安全点的二进制函数样本进行训练,以对脆弱点的相关特征进行学习。

23、在一个实施例中,该方法的根据面向程序脆弱性的插桩测试,通过深度学习对固件程序中的脆弱点进行定位,并引导模糊测试器对脆弱点进行定向测试的步骤,包括:

24、选择模糊测试种子,通过面向程序覆盖率和面向程序脆弱性的插桩测试进行模糊测试种子的探索,通过离线动态污点分析、在线动态污点分析和粒子群算法利用模糊测试种子并进行种子生成,以引导模糊测试器对脆弱点进行定向测试。

25、根据本专利技术实施例的第二方面,提供了一种电力物联网终端模糊测试系统。

26、在一个实施例中,电力物联网终端模糊测试系统,包括:

27、插桩测试模块,以动态模拟执行形式,对电力物联网终端中的固件程序进行面向程序覆盖率和面向程序脆弱性的插桩测试;

28、污点分析模块,以动态污点分析形式,对固件程序进行漏洞分析,漏洞分析包括离线动态污点分析和在线动态污点分析;

29、混合测试模块,根据面向程序脆弱性的插桩测试,通过深度学习对固件程序中的脆弱点进行定位,并引导模糊测试器对脆弱点进行定向测试。

30、在一个实施例中,该系统的插桩测试模块包括:

31、以系统级别模拟的方式启动固件程序,在执行到特定位置时切换至用户级别进行模拟;当出现系统调用时,切换至系统级别,系统调用完成后恢复至用户级别继续执行。

32、在一个实施例中,该系统的插桩测试模块,包括:

33、利用反编译技术将现有固件程序从二进制机器码转换为tcg中间语言表示,向tcg中间语言表示的代码中插入记录覆盖情况的代码,将动态插桩完成的代码重新编译为宿主机平台代码,以完成面向程序覆盖率的插桩测试。

34、在一个实本文档来自技高网...

【技术保护点】

1.一种电力物联网终端模糊测试方法,其特征在于,包括:

2.根据权利要求1所述的电力物联网终端模糊测试方法,其特征在于,所述以动态模拟执行形式,对电力物联网终端中的固件程序进行面向程序覆盖率和面向程序脆弱性的插桩测试的步骤,包括:

3.根据权利要求2所述的电力物联网终端模糊测试方法,其特征在于,所述以动态模拟执行形式,对电力物联网终端中的固件程序进行面向程序覆盖率和面向程序脆弱性的插桩测试的步骤,包括:

4.根据权利要求3所述的电力物联网终端模糊测试方法,其特征在于,所述以动态模拟执行形式,对电力物联网终端中的固件程序进行面向程序覆盖率和面向程序脆弱性的插桩测试的步骤,包括:

5.根据权利要求1所述的电力物联网终端模糊测试方法,其特征在于,所述以动态污点分析形式,对所述固件程序进行漏洞分析,所述漏洞分析包括离线动态污点分析和在线动态污点分析的步骤,包括:

6.根据权利要求5所述的电力物联网终端模糊测试方法,其特征在于,所述利用基于动态二进制插桩方法记录所述固件程序的运行时信息的步骤,包括:

7.根据权利要求6所述的电力物联网终端模糊测试方法,其特征在于,所述利用所述污点的分析信息逆向分析输入数据格式约束的步骤,包括:

8.根据权利要求1所述的电力物联网终端模糊测试方法,其特征在于,所述以动态污点分析形式,对所述固件程序进行漏洞分析,所述漏洞分析包括离线动态污点分析和在线动态污点分析的步骤,包括:

9.根据权利要求1所述的电力物联网终端模糊测试方法,其特征在于,所述根据所述面向程序脆弱性的插桩测试,通过深度学习对所述固件程序中的脆弱点进行定位,并引导模糊测试器对所述脆弱点进行定向测试的步骤,包括:

10.根据权利要求1所述的电力物联网终端模糊测试方法,其特征在于,所述根据所述面向程序脆弱性的插桩测试,通过深度学习对所述固件程序中的脆弱点进行定位,并引导模糊测试器对所述脆弱点进行定向测试的步骤,包括:

11.一种电力物联网终端模糊测试系统,其特征在于,包括:

12.根据权利要求11所述的电力物联网终端模糊测试系统,其特征在于,所述插桩测试模块进一步包括:

13.根据权利要求11所述的电力物联网终端模糊测试系统,其特征在于,所述污点分析模块进一步包括:

14.根据权利要求11所述的电力物联网终端模糊测试系统,其特征在于,所述污点分析模块进一步包括:

15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至10任一项所述的方法的步骤。

16.一种计算机可读存储介质,其特征在于,其上存储有计算机程序;所述计算机程序被处理器执行时实现如权利要求1至10任一项所述的方法的步骤。

...

【技术特征摘要】

1.一种电力物联网终端模糊测试方法,其特征在于,包括:

2.根据权利要求1所述的电力物联网终端模糊测试方法,其特征在于,所述以动态模拟执行形式,对电力物联网终端中的固件程序进行面向程序覆盖率和面向程序脆弱性的插桩测试的步骤,包括:

3.根据权利要求2所述的电力物联网终端模糊测试方法,其特征在于,所述以动态模拟执行形式,对电力物联网终端中的固件程序进行面向程序覆盖率和面向程序脆弱性的插桩测试的步骤,包括:

4.根据权利要求3所述的电力物联网终端模糊测试方法,其特征在于,所述以动态模拟执行形式,对电力物联网终端中的固件程序进行面向程序覆盖率和面向程序脆弱性的插桩测试的步骤,包括:

5.根据权利要求1所述的电力物联网终端模糊测试方法,其特征在于,所述以动态污点分析形式,对所述固件程序进行漏洞分析,所述漏洞分析包括离线动态污点分析和在线动态污点分析的步骤,包括:

6.根据权利要求5所述的电力物联网终端模糊测试方法,其特征在于,所述利用基于动态二进制插桩方法记录所述固件程序的运行时信息的步骤,包括:

7.根据权利要求6所述的电力物联网终端模糊测试方法,其特征在于,所述利用所述污点的分析信息逆向分析输入数据格式约束的步骤,包括:

8.根据权利要求1所述的电力物联网终端模糊测试方法,其特征在于,所述以动态污点分析形式,对所述固件程序进行漏洞...

【专利技术属性】
技术研发人员:刘冬兰赵夫慧刘新孙岗赵鹏王勇常英贤马雷王睿张昊许善杰张方哲于灏秦佳峰孙莉莉姚洪磊赵洺哲孙梦谦苏冰金玉辉
申请(专利权)人:国网山东省电力公司电力科学研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1