System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机及通信,具体而言,涉及一种机器学习框架的模糊测试方法及相关设备。
技术介绍
1、目前,机器学习框架自身实现日趋复杂,使得其中会隐藏诸多安全风险,由于使用框架的开发者众多,并且开发者发布的产品面向海量的用户,一旦框架出现安全问题,将可能导致严重的危害。
2、随着越来越多的机器学习框架漏洞的披露,现阶段面向框架的检测工具无法覆盖不同的运行场景。
技术实现思路
1、本申请的实施例提供了一种机器学习框架的模糊测试方法及相关设备,进而至少在一定程度上可以克服现有技术的检测工具无法覆盖不同的运行场景。
2、本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
3、根据本申请实施例的一个方面,提供了一种机器学习框架的模糊测试方法,包括:获取机器学习框架的源代码;解析所述源代码,得到测试用例约束,所述测试用例约束有多个,包括硬件环境约束以及运行模式约束;根据各所述测试用例约束,进行模糊测试,得到测试结果。
4、在本申请的实施例中,所述解析所述源代码,得到测试用例约束,具体包括:解析所述源代码,得到算子调用代码;根据所述算子测试代码,得到所述硬件环境约束以及所述运行模式约束。
5、在本申请的实施例中,所述解析所述源代码,得到算子调用代码,具体包括:解析所述源代码,得到算子名称列表;根据所述算子名称列表,进行模式匹配,得到所述算子调用代码。
6、在本申请的实施例中,根据所述算子测试代
7、在本申请的实施例中,所述测试用例约束还包括文件依赖约束,所述解析所述源代码,得到测试用例约束还包括:分析所述算子调用代码,获取算子测试代码;根据所述算子调用代码和所述算子测试代码,监控磁盘文件,得到所述文件依赖约束。
8、在本申请的实施例中,所述分析所述算子调用代码,获取算子测试代码,具体包括:分析所述算子调用代码的文件名和函数名;若所述算子测试代码包含预定的文件名或预定的函数名,则所述算子调用代码为算子测试代码。
9、在本申请的实施例中,所述根据所述算子调用代码和所述算子测试代码,监控磁盘文件,得到所述文件依赖约束,具体包括:使用修饰函数对所述算子调用代码进行插桩,得到插桩结果;执行所述算子测试代码,并监控磁盘文件,得到监控结果;根据所述插桩结果和所述监控结果,得到所述文件依赖约束。
10、在本申请的实施例中,所述根据各所述测试用例约束,进行模糊测试,得到测试结果,具体包括:根据各所述测试用例约束,生成测试用例;执行所述测试用例,进行模糊测试,得到测试结果,所述测试结果包含测试出现的安全问题。
11、根据本申请实施例的一个方面,提供了一种机器学习框架的模糊测试装置,所述机器学习框架的模糊测试装置包括:代码获取模块,用于获取机器学习框架的源代码;代码解析模块,用于解析所述源代码,得到测试用例约束,所述测试用例约束有多个,包括硬件环境约束以及运行模式约束;模糊测试模块,用于根据各所述测试用例约束,进行模糊测试,得到测试结果。
12、在本申请的实施例中,所述代码解析模块具体包括:代码解析子模块,用于解析所述源代码,得到算子调用代码;环境约束子模块,用于根据所述算子测试代码,得到所述硬件环境约束以及所述运行模式约束。
13、在本申请的实施例中,所述代码解析子模块具体包括:代码解析单元,用于解析所述源代码,得到算子名称列表;模式匹配单元,用于根据所述算子名称列表,进行模式匹配,得到所述算子调用代码。
14、在本申请的实施例中,所述环境约束子模块具体包括:抽象语法树单元,用于对所述算子测试代码进行解析,构建抽象语法树;规则匹配单元,用于根据预定匹配规则对所述抽象语法树进行匹配,提取所述硬件环境约束以及所述运行模式约束。
15、在本申请的实施例中,所述测试用例约束还包括文件依赖约束,所述代码解析模块还包括:代码筛选子模块,用于分析所述算子调用代码,获取算子测试代码;依赖约束子模块,用于根据所述算子调用代码和所述算子测试代码,监控磁盘文件,得到所述文件依赖约束。
16、在本申请的实施例中,所述代码筛选子模块具体包括:代码分析单元,用于分析所述算子调用代码的文件名和函数名;代码确定单元,用于若所述算子测试代码包含预定的文件名或预定的函数名,则所述算子调用代码为算子测试代码。
17、在本申请的实施例中,所述依赖约束子模块具体包括:算子插桩单元,用于使用修饰函数对所述算子调用代码进行插桩,得到插桩结果;代码执行单元,用于执行所述算子测试代码,并监控磁盘文件,得到监控结果;依赖约束单元,用于根据所述插桩结果和所述监控结果,得到所述文件依赖约束。
18、在本申请的实施例中,所述模糊测试模块具体包括:测试用例生成子模块,用于根据各所述测试用例约束,生成测试用例;测试用例执行子模块,用于执行所述测试用例,进行模糊测试,得到测试结果,所述测试结果包含测试出现的安全问题。
19、根据本申请实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的机器学习框架的模糊测试方法。
20、根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的机器学习框架的模糊测试方法。
21、在本申请的一些实施例所提供的技术方案中,获取机器学习框架的源代码,对源代码中各算子对应的代码进行分析,提取到对应的各种测试用例约束,测试用例包括硬件环境约束以及运行模式约束,然后基于其各种硬件环境约束、各种运行模式约束以及其组合进行模糊测试,即得到各种运行环境下对应的测试结果,实现了多种运行环境的全覆盖。
22、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
本文档来自技高网...【技术保护点】
1.一种机器学习框架的模糊测试方法,其特征在于,所述机器学习框架的模糊测试方法包括:
2.如权利要求1所述的机器学习框架的模糊测试方法,其特征在于,所述解析所述源代码,得到测试用例约束,具体包括:
3.如权利要求2所述的机器学习框架的模糊测试方法,其特征在于,所述解析所述源代码,得到算子调用代码,具体包括:
4.如权利要求2所述的机器学习框架的模糊测试方法,其特征在于,所述根据所述算子测试代码,得到所述硬件环境约束以及所述运行模式约束,具体包括:
5.如权利要求2所述的机器学习框架的模糊测试方法,其特征在于,所述测试用例约束还包括文件依赖约束,所述解析所述源代码,得到测试用例约束还包括:
6.如权利要求5所述的机器学习框架的模糊测试方法,其特征在于,所述分析所述算子调用代码,获取算子测试代码,具体包括:
7.如权利要求5所述的机器学习框架的模糊测试方法,其特征在于,所述根据所述算子调用代码和所述算子测试代码,监控磁盘文件,得到所述文件依赖约束,具体包括:
8.一种机器学习框架的模糊测试装置,其特征
9.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的机器学习框架的模糊测试方法。
10.一种电子设备,其特征在于,包括:
...【技术特征摘要】
1.一种机器学习框架的模糊测试方法,其特征在于,所述机器学习框架的模糊测试方法包括:
2.如权利要求1所述的机器学习框架的模糊测试方法,其特征在于,所述解析所述源代码,得到测试用例约束,具体包括:
3.如权利要求2所述的机器学习框架的模糊测试方法,其特征在于,所述解析所述源代码,得到算子调用代码,具体包括:
4.如权利要求2所述的机器学习框架的模糊测试方法,其特征在于,所述根据所述算子测试代码,得到所述硬件环境约束以及所述运行模式约束,具体包括:
5.如权利要求2所述的机器学习框架的模糊测试方法,其特征在于,所述测试用例约束还包括文件依赖约束,所述解析所述源代码,得到测试...
【专利技术属性】
技术研发人员:邹权臣,刘昭,于恬,王旋,张德岳,杨东东,韩东,于泓凯,徐昌凯,
申请(专利权)人:北京奇虎科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。