本说明书涉及计算机应用,具体地说,涉及计算机应用下的可信固件技术,更具体地说,涉及一种模糊测试方法及相关装置。
背景技术:
1、模糊测试(fuzz testing)是一种软件测试技术,用于发现软件中的漏洞、错误和安全问题。模糊测试通过向软件输入大量的、随机生成的数据或指令序列来检测软件的健壮性和安全性。这种方法可以有效地检测出未预见的缺陷和安全漏洞,尤其是在软件的边界条件和异常情况下。
2、现有的模糊测试工具大多运行于操作系统环境下,用于对操作系统环境中的用户应用进行模糊测试,无法实现对可信固件的模糊测试。
技术实现思路
1、本说明书实施例提供了一种模糊测试方法及相关装置,以实现对bl31固件的模糊测试的目的。
2、为实现上述技术目的,本说明书实施例提供了如下技术方案:
3、第一方面,本说明书的一个实施方式提供一种模糊测试方法,应用于片上系统,所述片上系统包括富执行环境子系统ree和可信执行环境子系统tee,所述ree用于运行测试用例应用、第一应用和ree操作系统,所述ree操作系统包括代理非安全驱动,所述tee用于运行第二应用、bl32固件和bl31固件,所述bl32固件包括代理安全驱动,所述bl31固件包括覆盖率应用;所述模糊测试方法包括:
4、所述第一应用响应于携带有测试用例的测试请求,通过目标路径,将所述测试请求传递给所述bl31固件;
5、所述目标路径包括:第一路径,或者,第二路径;所述第一路径包括:所述第一应用调用所述代理非安全驱动,利用所述代理非安全驱动通过安全监控模式调用smc将所述测试请求传递给所述bl31固件;所述第二路径包括:所述第一应用将所述测试请求传递给所述第二应用,通过所述第二应用调用所述代理安全驱动,利用所述代理安全驱动通过所述smc将所述测试请求传递给所述bl31固件;
6、所述测试请求用于指示所述bl31固件执行所述测试用例以进行模糊测试,并指示所述覆盖率应用将所述测试用例的代码覆盖信息返回给所述测试用例应用,所述测试用例由所述测试用例应用基于所述代码覆盖信息生成,所述代码覆盖信息包括代码覆盖率,所述代码覆盖率用于表征所述测试用例调用的代码占bl31固件的代码比例。
7、第二方面,本说明书的一个实施方式提供一种片上系统,包括:处理器,所述处理器用于构建富执行环境子系统ree和可信执行环境子系统tee,所述ree用于运行测试用例应用、第一应用和ree操作系统,所述ree操作系统包括代理非安全驱动,所述tee用于运行第二应用、bl32固件和bl31固件,所述bl32固件包括代理安全驱动,所述bl31固件包括覆盖率应用;其中,
8、所述处理器被配置为:通过所述第一应用响应于携带有测试用例的测试请求,通过目标路径,将所述测试请求传递给所述bl31固件;
9、所述目标路径包括:第一路径,或者,第二路径;所述第一路径包括:所述第一应用调用所述代理非安全驱动,利用所述代理非安全驱动通过安全监控模式调用smc将所述测试请求传递给所述bl31固件;所述第二路径包括:所述第一应用将所述测试请求传递给所述第二应用,通过所述第二应用调用所述代理安全驱动,利用所述代理安全驱动通过所述smc将所述测试请求传递给所述bl31固件;
10、所述测试请求用于指示所述bl31固件执行所述测试用例以进行模糊测试,并指示所述覆盖率应用将所述测试用例的代码覆盖信息返回给所述测试用例应用,所述测试用例由所述测试用例应用基于所述代码覆盖信息生成,所述代码覆盖信息包括代码覆盖率,所述代码覆盖率用于表征所述测试用例调用的代码占bl31固件的代码比例。
11、第三方面,本说明书的一个实施方式还提供了一种计算设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的模糊测试方法。
12、第四方面,本说明书的一个实施方式还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的模糊测试方法。
13、第五方面,本说明书实施例提供了一种计算机程序产品或计算机程序,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中;所述计算机设备的处理器从所述计算机可读存储介质读取所述计算机程序,所述处理器执行所述计算机程序时实现上述的模糊测试方法的步骤。
14、从上述技术方案可以看出,本说明书实施例提供的模糊测试方法基于包括ree和tee的片上系统实现,ree用于运行测试用例应用、第一应用和ree操作系统,且ree操作系统包括tee驱动,tee用于运行第二应用、bl32固件和bl31固件,所述bl32固件包括代理安全驱动,所述bl31固件包括覆盖率应用,在该方法实施时,通过第一应用响应于携带有测试用例的测试请求,通过目标路径,将测试请求传递给bl31固件,其中,目标路径包括通过ree侧传输给bl31固件的第一路径和通过tee侧传输给bl31固件的第二固件,以满足不同测试用例的传输需求,保障对bl31固件的全面测试;此外,所述测试请求用于指示bl31固件执行所述测试用例以进行模糊测试,并指示所述覆盖率应用将所述测试用例的代码覆盖信息返回给所述测试用例应用,所述测试用例由所述测试用例应用基于所述代码覆盖信息生成,所述代码覆盖信息包括代码覆盖率,所述代码覆盖率用于表征所述测试用例调用的代码占bl31固件的代码比例,如此,通过覆盖率指导测试用例的生成,避免生成的测试用例相同而导致对bl31固件同一功能或同一段代码的重复测试,在保障对bl31固件的全面测试的基础上,有利于提高测试效率。
1.一种模糊测试方法,其特征在于,应用于片上系统,所述片上系统包括富执行环境子系统ree和可信执行环境子系统tee,所述ree用于运行测试用例应用、第一应用和ree操作系统,所述ree操作系统包括代理非安全驱动,所述tee用于运行第二应用、bl32固件和bl31固件,所述bl32固件包括代理安全驱动,所述bl31固件包括覆盖率应用;所述模糊测试方法包括:
2.根据权利要求1所述的方法,其特征在于,所述测试用例应用基于所述代码覆盖信息生成所述测试用例的过程包括:
3.根据权利要求2所述的方法,其特征在于,所述基于所述代码覆盖信息对所述种子进行变异包括:
4.根据权利要求2所述的方法,其特征在于,所述基于所述代码覆盖信息对所述种子进行变异,以得到所述测试用例之后,还包括:
5.根据权利要求2所述的方法,其特征在于,所述基于所述代码覆盖信息对所述种子进行变异包括:
6.根据权利要求1~5任一项所述的方法,其特征在于,所述第一应用响应于携带有测试用例的测试请求,通过目标路径,将所述测试请求传递给所述bl31固件包括:
7.根据权利要求1~5任一项所述的方法,其特征在于,所述片上系统还包括:共享内存,所述共享内存作为所述ree与所述tee之间的通信媒介,所述覆盖率应用将所述测试用例的代码覆盖信息返回给所述测试用例应用包括:
8.一种片上系统,其特征在于,包括:处理器,所述处理器用于构建富执行环境子系统ree和可信执行环境子系统tee,所述ree用于运行测试用例应用、第一应用和ree操作系统,所述ree操作系统包括代理非安全驱动,所述tee用于运行第二应用、bl32固件和bl31固件,所述bl32固件包括代理安全驱动,所述bl31固件包括覆盖率应用;其中,
9.一种计算设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1~7任一项所述的模糊测试方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1~7任一项所述的模糊测试方法。