CN109918297B - 一种终端模糊测试方法及装置 - Google Patents
一种终端模糊测试方法及装置 Download PDFInfo
- Publication number
- CN109918297B CN109918297B CN201910126338.4A CN201910126338A CN109918297B CN 109918297 B CN109918297 B CN 109918297B CN 201910126338 A CN201910126338 A CN 201910126338A CN 109918297 B CN109918297 B CN 109918297B
- Authority
- CN
- China
- Prior art keywords
- certificate
- terminal
- test
- abnormal
- fuzzy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种终端模糊测试方法及装置,所述方法包括:根据被检测终端证书的类型,生成相应类型的模糊测试异常证书;抽取被检测终端校验证书模块的API;根据所述API,将所述模糊测试异常证书导入所述被检测终端并运行;监控并记录被检测终端产生的异常参数信息并输出报告。应用本发明能高效地对证书校验模块的安全性进行全方位的评估,可以广泛应用于智能终端和物联网设备的安全性检测,该测试工具不仅可以实时准确地捕捉异常的产生,更具有高度自动化、运行灵活、易于移植等特点。
Description
技术领域
本发明涉及终端测试技术领域,尤其涉及一种终端模糊测试方法及装置。
背景技术
模糊测试(Fuzzing Test)是一种自动或半自动化地提供非预期的输入,并通过监视异常结果来发现实际的软件实现的漏洞。模糊测试的概念最早是由University ofWisconsin Madison的Professor Barton Miller和他的学生提出的,他在高级操作系统课程上,实现了一个简单原始的模糊器(fuzzer)来测试UNIX系统的健壮性。2006年开始,模糊测试技术在软件检测领域得到了长足的发展,2007年,team509安全团队的wushi通过模糊测试技术发现了QQ的一个溢出漏洞,wushi本着“负责任的漏洞披露过程”将漏洞细节告知了腾讯安全团队。为此,腾讯还专门发布了一个安全公告。2008年Godefroid等人,利用Fuzzing工具SAGE发现大型Windows应用程序中二十多个未知漏洞。近几年一些开源的模糊器和模糊测试框架渐渐走向成熟,例如American fuzzy lop,Peach,Sulley等,在发现软件漏洞这一领域,均取得了不俗的成果。模糊测试显然已经成为发现软件漏洞的重要手段与测试方式之一,然而高效地生成模糊数据,实时准确地监控异常的监控模块一直是实现模糊测试工具的难点。
可信执行环境TEE(Trusted Execution Environment)是一个与移动智能终端设备上富执行环境REE(Rich Execution Environment)并存的操作系统,它提供了一个与Rich OS(通常是Android)隔离的运行环境,为移动支付、数字版权保护、身份验证和敏感信息存储等保驾护航。目前基于TEE+SE架构的人脸识别,语音识别,手机盾,TEE-SIM等方案已在手机终端及物联网领域广泛落地,随之也带来的新的安全问题与挑战。
数字证书就是互联网通讯中标志通讯各方身份信息的一系列数据,提供了一种在Internet上验证身份的方式。它是由一个由权威机构-----CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。一般情况下证书中还包括密钥的有效时间,发证机关(证书授权中心)的名称,该证书的序列号等信息,证书的格式遵循ITUT X.509国际标准。证书校验不仅用于互联网通讯各方身份的验证,也在手机、物联网等移动智能终端中广泛使用,例如在安全启动、固件更新等关键步骤,通过对证书的校验保证其镜像加载、升级等关键步骤的安全性。
TEE精巧的框架设计如图1所示,应用最小权限原则,实行严格的权限管理,尽量降低了CA、TA的权限,有效地降低了攻击面,这就使得TEE安全启动、安全更新的可靠性显得至关重要。
发明内容
本发明主要通过应用证书模糊测试技术,解决了针对TEE安全方案、物联网设备中证书校验模块的安全评估问题,此外该方案能准确监控异常、生成详细的测试报告以及原始记录,可以轻易复现异常,通过分析测试结果同样有助于对被测终端操作系统开展后续的渗透测试。
一方面,本发明实施例提供了一种终端模糊测试方法,所述方法包括:
根据被检测终端证书的类型,生成相应类型的模糊测试异常证书;
抽取被检测终端校验证书模块的API;
根据所述API,将所述模糊测试异常证书导入所述被检测终端并运行;
监控并记录被检测终端产生的异常参数信息并输出报告。
在一实施例中,在生成相应类型的模糊测试异常证书时,对模糊测试异常证书中的每个字段分别生成模糊数据。
在一实施例中,所述模糊数据包括异常的边界值、异常的特殊值和随机的非法数据。
在一实施例中,在同一个模糊测试异常证书中,包括各个字段对应的模糊数据的所有排列组合。
另一方面,本发明实施例还提供了一种终端模糊测试装置,所述装置包括:
异常证书生成器,用于根据被检测终端证书的类型,生成相应类型的模糊测试异常证书;
API抽取单元,用于抽取被检测终端校验证书模块的API;
调度单元,用于根据所述API,将所述模糊测试异常证书导入所述被检测终端并运行;
监控单元,用于监控并记录被检测终端产生的异常参数信息并输出报告。
在一实施例中,所述异常证书生成器在生成相应类型的模糊测试异常证书时,对模糊测试异常证书中的每个字段分别生成模糊数据。
在一实施例中,所述模糊数据包括异常的边界值、异常的特殊值和随机的非法数据。
在一实施例中,在同一个模糊测试异常证书中,包括各个字段对应的模糊数据的所有排列组合。
本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述的终端模糊测试方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行所述终端模糊测试方法的计算机程序。
应用该检测方案能高效地对证书校验模块的安全性进行全方位的评估,可以广泛应用于智能终端和物联网设备的安全性检测,该测试工具不仅可以实时准确地捕捉异常的产生,更具有高度自动化、运行灵活、易于移植等特点。此外,自动输出的测试报告不仅有直观的检测结果,同时也包含了导致异常的模糊测试异常证书,出错的详细代码行数,便于被测厂商进行异常重现,定位代码实现问题。该工具松耦合的软件架构可快速高效地添加新的测试例或修改现有测试例,以便对被测终端进行后续的软件渗透测试等。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为TEE框架示例图;
图2为本发明实施例提供的终端模糊测试方法的流程示意图;
图3为本发明提供的一证书模糊测试方案的实施例;
图4为本发明提供的一证书模糊测试流程示意图;
图5为本发明提供的一生成异常证书模块的实施例;
图6为本发明提供的一执行模糊测试程序的代码实施例;
图7为本发明实施例提供的终端模糊测试装置的结构示意图;
图8为本发明实施例提供的一用于终端模糊测试的计算机设备结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一个通过模糊测试技术,对移动终端的操作系统证书校验模块进行安全评估的方案,基于该方案的证书模糊测试工具可高度自动化的运行,并能实时监控并记录异常的产生,以及自动生成详细的原始记录,以备后续漏洞分析与渗透测试。
图2为本发明实施例提供的终端模糊测试方法的流程示意图。如图2所示,该方法主要包括以下步骤:
步骤S1、根据被检测终端证书的类型,生成相应类型的模糊测试异常证书。
步骤S2、抽取被检测终端校验证书模块的API。
在模糊测试异常证书生成完成后,对终端校验证书模块的API(ApplicationProgramming Interface,应用程序编程接口)进行抽取,以便于根据该API将模糊测试异常证书送入被检测终端进行测试。
步骤S3、根据所述API,将所述模糊测试异常证书导入所述被检测终端并运行。
步骤S4、监控并记录被检测终端产生的异常参数信息并输出报告。
在将模糊测试异常证书不断的导入被检测终端进行测试时,监控并记录终端产生异常的所有参数信息,例如在出现异常时,监控并记录下发生当前异常的证书中的字段、报错的代码行数等运行信息,一遍测试人员分析导致异常的原因,也更易于复现此类异常。
在一个实施例中,生成相应类型的模糊测试异常证书时,需要对模糊测试异常证书中的每个字段分别生成模糊数据。上述的模糊数据包括异常的边界值(例如,证书里面的使用日期等)、异常的特殊值和随机的非法数据等。
在同一个模糊测试异常证书中,包括各个字段对应的模糊数据的所有排列组合。即,在生成相应类型异常证书的过程中,针对证书的每个字段分别生成模糊数据后对这些模糊数据进行排列组合,从而提高异常证书在模糊测试时的代码覆盖率。生成的模糊测试异常证书应考虑终端操作系统中证书校验模块的具体实现,对其可能导致异常的关键比对操作进行重点关注。
图3为本发明提供的一证书模糊测试方案的实施例。如图3所示,首先基于TEE架构的证书模糊测试方案,审阅被检测终端的证书校验方案,根据相应的证书类型,生成模糊测试异常证书生成模块,异常证书应对其中的每个字段进行模糊数据的生成。在异常证书生成完成后,对终端校验证书模块的API进行抽取,开发出证书模糊测试工具。最终将证书模糊测试工具移植到目标测试设备,运行该模糊测试工具进行测试,该工具的运行流程如图4所示。在图4中,调度模块主要负责整体把控模糊测试工具的运行,不断地将模糊测试异常证书送入测试模块,而监控模块负责掌控异常的处理,监控并记录下产生异常的所有参数信息。最后根据输出报告信息,再结合原始记录信息等,进行更深一步的渗透测试来判断其异常的可利用性。
应用本发明实施例所提供模糊测试方案的模糊测试工具已成功在两个TEE环境上移植并成功检测,对其证书校验模块的安全性高效地进行了全面的检测。该检测步骤如下:
1)首先通过仔细审阅被检测终端的证书校验模块,根据被检测终端的证书类型,利用Mbedtls库生成相应的模糊测试异常证书。图5给出了一生成异常证书模块的实施例。
2)通过抽取被测终端证书校验模块的API来编写证明模糊测试工具,将该模糊测试工具移植到被测目标设备上。在移植时,可能需要被检测终端的SDK等,对该模糊测试工具进行重新编译。
3)成功编译后,通过ADB(Android Debug Bridge)工具的adb push语句等方式将编译好的模糊测试程序导入到开发板中的指定路径下。
4)执行该模糊测试工具,在模糊测试启动后,调度模块将自动地将异常证书不断传入到证书测试模块中,证书测试模块不停地调用校验证书的API进行测试。图6给出了一执行模糊测试程序的代码实施例,具体实施时,可以根据实际情况对该段代码进行修改或替换,该段代码并不用于限制本发明,而仅用于对本发明方案进行说明。
5)利用步骤1)~4)完成了对终端的模糊测试,在整个测试过程中,监控模块可以实时地监控该模糊器的运行状态,并在故障、崩溃或异常情况时对所有运行数据进行记录,并在运行完成后对记录的所有信息进行分类汇总、输出,并生成可读的EXCEL文件,整个运行过程高度自动化。
6)输出结果可以清晰地反映出各异常证书的测试情况,结合详细原始记录数据能高效地重现异常,还可以此为依据继续编写相应的程序,进行后续的渗透测试,以便确定其潜在漏洞的可利用性。
应用该检测方案能高效地对证书校验模块的安全性进行全方位的评估,可以广泛应用于智能终端和物联网设备的安全性检测,该测试工具不仅可以实时准确地捕捉异常的产生,更具有高度自动化、运行灵活、易于移植等特点。此外,自动输出的测试报告不仅有直观的检测结果,同时也包含了导致异常的模糊测试异常证书,出错的详细代码行数,便于被测厂商进行异常重现,定位代码实现问题。该工具松耦合的软件架构可快速高效地添加新的测试例或修改现有测试例,以便对被测终端进行后续的软件渗透测试等。
基于与图2所示的终端模糊测试方法相同的发明构思,本发明实施例还提供了一种装置,如下面实施例所述。由于该装置解决问题的原理与图2中终端模糊测试方法相似,因此该装置的实施可以参见图2的终端模糊测试方法的实施,重复之处不再赘述。
在另一实施例中,本发明还提供了一种终端模糊测试装置,其结构如图7所示,该装置包括:异常证书生成器10、API抽取单元20、调度单元30和监控单元40。
其中,异常证书生成器10用于根据被检测终端证书的类型,生成相应类型的模糊测试异常证书。API抽取单元20用于抽取被检测终端校验证书模块的API。调度单元30用于根据所述API,将所述模糊测试异常证书导入所述被检测终端并运行。监控单元40用于监控并记录被检测终端产生的异常参数信息并输出报告。
在一实施例中,异常证书生成器10在生成相应类型的模糊测试异常证书时,对模糊测试异常证书中的每个字段分别生成模糊数据。
在一实施例中,模糊数据包括异常的边界值、异常的特殊值和随机的非法数据。
在一实施例中,在同一个模糊测试异常证书中,包括各个字段对应的模糊数据的所有排列组合。
图8为本发明另一实施例提供的用于终端模糊测试的计算机设备结构示意图。如图8所示,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序。所述计算机程序在被所述处理器运行时执行图2所示的步骤。
另外,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行图2所示步骤的计算机程序。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种终端模糊测试方法,其特征在于,所述方法包括:
根据被检测终端证书的类型,生成相应类型的模糊测试异常证书;
抽取被检测终端校验证书模块的API;
根据所述API,将所述模糊测试异常证书导入所述被检测终端并运行;
监控并记录被检测终端产生的异常参数信息并输出报告,所述异常参数信息包括所述模糊测试异常证书中的字段和报错的代码行数;
在生成相应类型的模糊测试异常证书时,对模糊测试异常证书中的每个字段分别生成模糊数据。
2.根据权利要求1所述的终端模糊测试方法,其特征在于,所述模糊数据包括异常的边界值、异常的特殊值和随机的非法数据。
3.根据权利要求2所述的终端模糊测试方法,其特征在于,在同一个模糊测试异常证书中,包括各个字段对应的模糊数据的所有排列组合。
4.一种终端模糊测试装置,其特征在于,所述装置包括:
异常证书生成器,用于根据被检测终端证书的类型,生成相应类型的模糊测试异常证书;
API抽取单元,用于抽取被检测终端校验证书模块的API;
调度单元,用于根据所述API,将所述模糊测试异常证书导入所述被检测终端并运行;
监控单元,用于监控并记录被检测终端产生的异常参数信息并输出报告,所述异常参数信息包括所述模糊测试异常证书中的字段和报错的代码行数;
所述异常证书生成器在生成相应类型的模糊测试异常证书时,对模糊测试异常证书中的每个字段分别生成模糊数据。
5.根据权利要求4所述的终端模糊测试装置,其特征在于,所述模糊数据包括异常的边界值、异常的特殊值和随机的非法数据。
6.根据权利要求4所述的终端模糊测试装置,其特征在于,在同一个模糊测试异常证书中,包括各个字段对应的模糊数据的所有排列组合。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至3任一项权利要求所述的方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至3任一项权利要求所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910126338.4A CN109918297B (zh) | 2019-02-20 | 2019-02-20 | 一种终端模糊测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910126338.4A CN109918297B (zh) | 2019-02-20 | 2019-02-20 | 一种终端模糊测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109918297A CN109918297A (zh) | 2019-06-21 |
CN109918297B true CN109918297B (zh) | 2022-07-19 |
Family
ID=66961718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910126338.4A Active CN109918297B (zh) | 2019-02-20 | 2019-02-20 | 一种终端模糊测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109918297B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110554965B (zh) * | 2019-09-05 | 2021-08-17 | 腾讯科技(深圳)有限公司 | 自动化模糊测试方法及相关设备、计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106828362A (zh) * | 2017-02-20 | 2017-06-13 | 北京奇虎科技有限公司 | 汽车信息的安全测试方法及装置 |
CN108182359A (zh) * | 2017-12-29 | 2018-06-19 | 中国信息通信研究院 | 一种测试可信环境下api安全性的方法、装置及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8136095B2 (en) * | 2007-12-19 | 2012-03-13 | Microsoft Corporation | Relations in fuzzing data |
-
2019
- 2019-02-20 CN CN201910126338.4A patent/CN109918297B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106828362A (zh) * | 2017-02-20 | 2017-06-13 | 北京奇虎科技有限公司 | 汽车信息的安全测试方法及装置 |
CN108182359A (zh) * | 2017-12-29 | 2018-06-19 | 中国信息通信研究院 | 一种测试可信环境下api安全性的方法、装置及存储介质 |
Non-Patent Citations (2)
Title |
---|
《DRLgencert: Deep Learning-Based Automated Testing of Certificate Verification in SSL/TLS Implementations》;Chao Chen;《 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)》;20181112;第1-11页 * |
《模糊测试技术在可信执行环境安全评测中的应用》;詹鹏翼;《移动通信》;20171218;第42卷(第21期);第1-5页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109918297A (zh) | 2019-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10878106B2 (en) | Firmware verification | |
CN112134761B (zh) | 基于固件分析的电力物联网终端脆弱性检测方法及系统 | |
CN108182359B (zh) | 一种测试可信环境下api安全性的方法、装置及存储介质 | |
Mahmood et al. | A whitebox approach for automated security testing of Android applications on the cloud | |
US11748487B2 (en) | Detecting a potential security leak by a microservice | |
CN108268371B (zh) | 面向Android应用的智能模糊测试方法 | |
KR101972825B1 (ko) | 하이브리드 분석 기술을 이용한 임베디드 기기 취약점 자동 분석 방법, 장치 및 그 방법을 실행하는 컴퓨터 프로그램 | |
CN112286828B (zh) | 一种区块链智能合约的测试方法和系统 | |
CN112527674B (zh) | Ai框架的安全评测方法、装置、设备及存储介质 | |
CN105550585A (zh) | 一种应用程序安全性测试方法、装置和系统 | |
CN114021142A (zh) | 一种安卓应用程序漏洞检测方法 | |
Amar et al. | Using finite-state models for log differencing | |
CN104699617A (zh) | 一种游戏用自动化测试方法 | |
Espada et al. | Performance Analysis of Spotify® for Android with Model‐Based Testing | |
CN114969760A (zh) | 漏洞检测方法及装置、计算机可读介质和电子设备 | |
CN109918297B (zh) | 一种终端模糊测试方法及装置 | |
WO2022271339A1 (en) | Detection of supply chain-related security threats to software applications | |
CN110287700B (zh) | 一种iOS应用安全分析方法及装置 | |
Ghorbani et al. | DeltaDroid: Dynamic delivery testing in Android | |
CN114282226B (zh) | 单次多漏洞代码检测方法及系统 | |
Choudhari et al. | CRYScanner: Finding cryptographic libraries misuse | |
Baheux et al. | DroidSecTester: Towards context-driven modelling and detection of Android application vulnerabilities | |
Shahrokni et al. | Towards a framework for specifying software robustness requirements based on patterns | |
Lo et al. | Software specification discovery: A new data mining approach | |
CN114741316A (zh) | 一种自动化测试脚本的控制系统、方法和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |