买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:内蒙古电力集团蒙电信息通信产业有限责任公司
摘要:本发明涉及软件安全测试的技术领域,公开了一种执行路径主动覆盖的软件安全测试方法,所述方法包括:采集非结构化测试样本并进行数据清洗;利用非结构化测试样本语义表达模型对非结构化测试样本数据进行样本数据语义向量表示;对样本数据语义向量进行特征降维提取;构造执行路径主动覆盖样本生成模型生成执行路径覆盖的测试样本集;利用执行路径覆盖的测试样本集对软件进行安全性测试。本发明基于样本标签下样本数据语义向量的散度矩阵特征分解结果对样本数据语义向量进行降维处理,进而基于样本数据语义向量进行样本数据生成,实时统计当前所生成样本数据对软件执行路径的覆盖程度,选取覆盖程度较好的样本数据对软件进行安全性测试。
主权项:1.一种执行路径主动覆盖的软件安全测试方法,其特征在于,所述方法包括:S1:采集非结构化测试样本并进行数据清洗得到高质量的非结构化测试样本数据;S2:构建非结构化测试样本语义表达模型,利用非结构化测试样本语义表达模型对高质量的非结构化测试样本数据进行样本数据语义向量表示;S3:对样本数据语义向量进行特征降维提取得到降维后的样本数据语义向量;S4:构造执行路径主动覆盖样本生成模型生成执行路径覆盖的测试样本集,所述执行路径主动覆盖样本生成模型将降维后的样本数据语义向量作为执行路径主动覆盖样本生成模型的输入,生成执行路径覆盖的测试样本集;S5:利用执行路径覆盖的测试样本集对软件进行安全性测试,得到安全性测试结果;所述S1步骤中采集非结构化测试样本并进行数据清洗,包括:采集非结构化测试样本,所述非结构化测试样本的数据类型为文本形式,对所采集非结构化测试样本进行数据清洗,其中数据清洗的流程为:对非结构化测试样本进行样本格式提取,将所提取的样本格式同预设的标准样本格式进行格式比对,将格式比对不合格的非结构化测试样本进行删除处理,对所保留的非结构化测试样本添加样本标签,构成高质量的非结构化测试样本数据X: ;其中: 表示数据清洗后的第i组非结构化测试样本;N表示清洗得到的非结构化测试样本总数; 表示第i组非结构化测试样本的样本标签,,表示非结构化测试样本为用于测试软件运行流程的正常样本,表示非结构化测试样本为用于测试软件异常运行表现的异常样本,表示非结构化测试样本为用于设计软件的示例样本;所述S2步骤中构建非结构化测试样本语义表达模型,包括:构建非结构化测试样本语义表达模型,所述非结构化测试样本语义表达模型以非结构化测试样本数据中数据清洗后的非结构化测试样本为输入,以非结构化测试样本对应的样本数据语义向量为输出,其中非结构化测试样本语义表达模型包括输入层、分词层以及样本数据语义向量转换层;输入层用于接收非结构化测试样本数据中数据清洗后的非结构化测试样本;分词层用于对非结构化测试样本进行分词处理,得到非结构化测试样本的分词序列;样本数据语义向量转换层用于对分词序列进行语义特征提取,得到样本数据语义向量;所述S2步骤中利用非结构化测试样本语义表达模型对高质量的非结构化测试样本数据进行样本数据语义向量表示,包括:利用非结构化测试样本语义表达模型对高质量的非结构化测试样本数据进行样本数据语义向量表示,得到非结构化测试样本数据中非结构化测试样本的样本数据语义向量,其中利用非结构化测试样本语义表达模型对非结构化测试样本进行样本数据语义向量表示的流程为:S21:输入层接收非结构化测试样本数据中数据清洗后的非结构化测试样本;S22:分词层采用jieba分词程序对非结构化测试样本进行分词处理,并对分词处理结果进行停用词匹配以及去停用词处理,得到非结构化测试样本的分词序列: ;其中: 表示去停用词处理后非结构化测试样本中的第个分词结果,表示去停用词处理后非结构化测试样本的分词结果总数;S23:样本数据语义向量转换层对分词序列进行语义特征提取,得到样本数据语义向量,其中语义特征提取公式为: ; ; ; ;其中: 表示分词结果的语义特征提取结果; 表示分词结果的one-hot编码结果; 表示的上下文one-hot编码结果,s表示上下文参数,将s设置为2; 表示以自然常数为底的指数函数; 表示存在one-hot编码结果的情况下,同时存在的上下文one-hot编码结果的非结构化测试样本的出现频率; 表示存在one-hot编码结果的情况下,同时存在的上下文one-hot编码结果的非结构化测试样本的数量; 表示非结构化测试样本的样本数据语义向量,对于样本数据语义向量中的任意语义特征提取结果,满足等式;所述S3步骤中对样本数据语义向量进行特征降维提取,包括:对样本数据语义向量进行特征降维提取,形成降维后的样本数据语义向量,其中样本数据语义向量的特征降维提取流程为:S31:分别构成不同样本标签的样本数据语义向量集合: ; ; ;其中: 表示样本标签为-1的样本数据语义向量集合,表示样本数据语义向量集合中第组样本数据语义向量,表示中样本数据语义向量的总数; 表示样本标签为1的样本数据语义向量集合,表示样本数据语义向量集合中第组样本数据语义向量,表示中样本数据语义向量的总数; 表示样本标签为0的样本数据语义向量集合,表示样本数据语义向量集合中第组样本数据语义向量,表示中样本数据语义向量的总数;S32:计算得到散度矩阵: ; ; ;其中: 表示N组样本数据语义向量的均值; 表示样本数据语义向量集合中的样本数据语义向量均值,其中;T表示转置; 表示同一样本标签下的样本数据语义向量散度矩阵,表示不同样本标签下的样本数据语义向量散度矩阵; 表示样本标签Y下的样本数据语义向量散度矩阵;S33:计算得到散度矩阵的乘积矩阵S: ;S34:对乘积矩阵S进行特征分解,得到N个最大特征值和对应的特征向量,将特征向量构成特征向量矩阵: ;其中: 表示对乘积矩阵S进行特征分解得到的第i个特征值所对应的特征向量;S35:利用特征向量矩阵对样本数据语义向量进行降维处理,其中样本数据语义向量的降维处理公式为: ;其中: 表示样本数据语义向量的降维处理结果;所述S4步骤中构造执行路径主动覆盖样本生成模型,包括:构造执行路径主动覆盖样本生成模型,所述执行路径主动覆盖样本生成模型将降维后的样本数据语义向量作为执行路径主动覆盖样本生成模型的输入,生成执行路径覆盖的测试样本集,其中执行路径主动覆盖样本生成模型包括变异能量计算层、解码层、执行路径覆盖目标函数以及输出层;变异能量计算层用于计算降维后的样本数据语义向量的变异能量,并基于变异能量对降维后的样本数据语义向量排序;解码层用于按照降维后的样本数据语义向量排序结果,将降维后的样本数据语义向量解码为样本数据;执行路径覆盖目标函数用于度量样本数据对软件中程序执行路径的覆盖程度;输出层用于选取符合覆盖程度标准的样本数据构建为执行路径覆盖的测试样本集;所述S4步骤中将降维后的样本数据语义向量作为执行路径主动覆盖样本生成模型的输入,生成执行路径覆盖的测试样本集,包括:将降维后的样本数据语义向量作为执行路径主动覆盖样本生成模型的输入,生成执行路径覆盖的测试样本集,其中基于执行路径主动覆盖样本生成模型以及降维后样本数据语义向量的测试样本集生成流程为:S41:变异能量计算层计算降维后的样本数据语义向量的变异能量,其中样本数据语义向量的变异能量计算公式为: ;其中: 表示样本数据语义向量的变异能量; 表示样本数据语义向量所对应去停用词处理后非结构化测试样本的分词结果总数; 表示软件运行非结构化测试样本的时长; 表示软件运行非结构化测试样本的调用程序数目;按照变异能量降序对降维后的样本数据语义向量进行排序,得到排序后的样本数据语义向量: ;其中: 表示排序后的第i组样本数据语义向量;S42:解码层按照样本数据语义向量排序结果,将降维后的样本数据语义向量解码为样本数据,其中样本数据语义向量的解码方式为: ;其中: 表示样本数据语义向量的解码结果,即为基于样本数据语义向量所生成的样本数据;w表示解码层中的参数向量;S43:利用执行路径覆盖目标函数度量样本数据对软件中程序执行路径的覆盖程度,其中样本数据的执行路径覆盖目标函数结果为: ; ;其中: 表示样本数据的执行路径覆盖目标函数结果; 表示软件运行样本数据的调用程序路径节点集合,表示中调用程序路径节点的总数; 表示中相同调用程序路径节点的数目;S44:若样本数据的执行路径覆盖目标函数结果高于预设阈值,则将样本数据添加至执行路径覆盖的测试样本集中,令,返回步骤S43。
全文数据:
权利要求:
百度查询: 内蒙古电力集团蒙电信息通信产业有限责任公司 一种执行路径主动覆盖的软件安全测试方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。