一种应用程序安全性测试方法、装置和系统的制作方法

文档序号:9787713阅读:421来源:国知局
一种应用程序安全性测试方法、装置和系统的制作方法
【技术领域】
[0001]本发明涉及通信技术领域,特别涉及一种应用程序安全性测试方法、装置和系统。
【背景技术】
[0002]不可否认,手机应用无论是在个人领域还是企业应用领域都变得举足轻重,而其中,安卓(Android)的份额最大。但是Android应用一直以来都有一个为用户所垢病的问题,就是其安全性,因而构建一款成功的Android应用程序,安全的重要性不言而喻。
[0003]针对Android应用程序的安全性测试现有实现中采用静态特征代码检测方案,SP反编译安卓安装包(AndroidPackage,APk)。
[0004]由于静态扫描出来的代码在实际运行时并不一定被执行,因此会产生漏报和误报;并且静态特征代码检测依赖于反编译APk,而市面上很多经过加壳或特殊处理的APk无法被反编译,因此,该种测试方式也存在很大的局限性。

【发明内容】

[0005]有鉴于此,本申请提供一种应用程序安全性测试方法、装置和系统,以提高应用程序安全性测试的准确性。
[0006]为解决上述技术问题,本申请的技术方案是这样实现的:
[0007]—种应用程序安全性测试方法,应用于安装应用程序的终端设备上,该方法包括:
[0008]该终端设备安装Hook程序,所述Hook程序配置需监控的调用函数;
[0009]在运行应用程序的同时,运行Hook程序;
[0010]当在应用程序运行过程中,通过Hook程序监控到与配置的调用函数匹配的调用函数时,记录该调用函数的调用信息;该调用信息包括:输入参数,和/或返回值;
[0011]当遍历完所述应用程序中的所有控件时,确定在记录的调用函数的调用信息中是否存在与配置的匹配参数匹配的信息,如果是,确定该应用程序存在安全漏洞;否则,确定该应用程序安全。
[0012]—种应用程序安全性测试方法,应用于包括测试设备和被测设备的系统中,
[0013]所述被测设备安装应用程序和Hook程序,所述Hook程序配置需监控的调用函数;在运行应用程序的同时,运行Hook程序;当在应用程序运行过程中,通过Hook程序监控到与配置的调用函数匹配的调用函数时,记录该调用函数的调用信息,并发送给所述测试设备;直到遍历完所述应用程序中的所有控件;该调用信息包括:输入参数,和/或返回值;
[0014]所述测试设备接收并存储所述被测设备发送的调用函数的调用信息;当所述被测设备遍历完所述应用程序中的所有控件时,确定在存储的调用函数的调用信息中是否存在与配置的匹配参数匹配的信息,如果是,确定该应用程序存在安全漏洞;否则,确定该应用程序安全。
[0015]—种应用程序安全性测试装置,应用于安装应用程序的终端设备上,该装置包括:安装单元、运行单元、监控单元、记录单元和确定单元;
[0016]所述安装单元,用于安装Hook程序,所述Hook程序配置需监控的调用函数;
[0017]所述运行单元,用于在运行安装的应用程序的同时,运行所述安装单元安装的Hook程序;
[0018]所述监控单元,用于所述运行单元运行应用程序过程中,通过Hook程序监控配置的调用函数;
[0019]所述记录单元,用于当所述监控单元通过Hook程序监控到与配置的调用函数匹配的调用函数时,记录该调用函数的调用信息;该调用信息包括:输入参数,和/或返回值;
[0020]所述确定单元,用于当所述运行单元遍历完所述应用程序中的所有控件时,确定在记录的调用函数的调用信息中是否存在与配置的匹配参数匹配的信息,如果是,确定该应用程序存在安全漏洞;否则,确定该应用程序安全。
[0021]一种应用程序安全性测试系统,该系统包括:测试设备和被测设备;
[0022]所述被测设备,用于安装应用程序和Hook程序,所述Hook程序配置需监控的调用函数;在运行应用程序的同时,运行Hook程序;当在应用程序运行过程中,通过Hook程序监控到与配置的调用函数匹配的调用函数时,记录该调用函数的调用信息,并发送给所述测试设备;直到遍历完所述应用程序中的所有控件;该调用信息包括:输入参数,和/或返回值;
[0023]所述测试设备,用于接收并存储所述被测设备发送的调用函数的调用信息;当所述被测设备遍历完所述应用程序中的所有控件时,确定在存储的调用函数的调用信息中是否存在与配置的匹配参数匹配的信息,如果是,确定该应用程序存在安全漏洞;否则,确定该应用程序安全。
[0024]由上面的技术方案可知,本申请中通过配置的Hook程序,在应用程序运行时,记录Hook程序中配置的调用函数的调用信息,通过记录的调用信息确定该应用程序是否存在安全漏洞。通过该技术方案能够提高应用程序安全性测试的准确性。
【附图说明】
[0025]图1为本申请实施例一中应用程序安全性测试流程示意图;
[0026]图2为本申请实施例一中自动化测试流程示意图;
[0027]图3为本申请实施例一中UI上的控件示意图;
[0028]图4为已生成的UI路径示意图;
[0029]图5为本申请实施例二中应用程序安全性测试流程示意图;
[0030]图6为本申请实施例中安全性测试装置结构示意图;
[0031]图7为本申请具体实施例中应用程序安全性测试的终端设备的硬件架构组成示意图;
[0032]图8为本申请实施例中应用程序安全性测试系统示意图。
【具体实施方式】
[0033]为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并举实施例,对本发明的技术方案进行详细说明。
[0034]本申请实施例中提供一种应用程序安全性测试方案,通过配置的钩子(Hook)程序,在应用程序运行时,记录Hook程序中配置的调用函数的调用信息,通过记录的调用信息确定该应用程序是否存在安全漏洞。通过该技术方案能够提高应用程序安全性测试的准确性。
[0035]在具体实现时,需预先编写Hook程序,在Hook程序中配置需监控的调用函数,具体配置哪些调用函数,根据实际要测试的应用程序确定,即测试一应用程序的安全性时,需要监控哪些调用函数来确定应用程序是否存在漏洞,则配置哪些调用函数。
[0036]如,针对a n d r ο i d应用程序,配置的调用函数如:org.apache.http.conn, ssl.SSLSocketFactory类setHostnameVerif ier函数等。
[0037]在终端设备上安装待测试的应用程序,以及配编写的Hook程序。本申请实施例中,可以仅使用终端设备完成应用程序的安全性测试,也可以使用测试设备配合终端设备完成应用程序的安全测试,此时,终端设备可以被称为被测设备。这里的终端设备为应用程序安装使用的设备,如手机、平板等;测试设备可以为有计算处理能力的设备,如PC等。
[0038]下文通过多个实施例来详细说明本申请提供的应用程序安全性测试方案。
[0039]实施例一
[0040]本实施例以仅使用终端设备完成应用程序安全性测试为例。
[0041]参见图1,图1为本申请实施例一中应用程序安全性测试流程示意图。具体步骤为:
[0042]步骤101,终端设备在运行应用程序的同时,运行Hook程序。
[0043]本步骤中终端设备可以通过自动化测试、手工测试,或使用该应用程序使该应用程序运行
[0044]无论在使用应用程序还是在测试应用程序,都需遍历整个应用程序中的所有控件,即所对应的所有用户界面(User Interface,UI);当然如果仅需要确定应用程序中的某个部分是否存在安全漏洞,只运行程序的某个部分即可。
[0045]当对应用程序进行自动化测试时,可以使用现有实现中的各种自动化测试方式。本申请实施例中为了简化测试中的遍历的逻辑,提高遍历效率,给出如下自动化测试方案:
[0046]参见图2,图2为本申请实施例一中自动化测试流程示意图。具体步骤为:
[0047]步骤201,终端设备根据测试脚本运行应用程序,获取所述应用程序当前运行UI上控件的控件信息,并计算各控件的特征值。
[0048]测试脚本根据要测试的应用程序预先编写,测试脚本的具体编写不作限制,只要在执行测试脚本时,能够使待测试的应用程序遍历所需要测试的UI即可,如可以按照深度优先的原则遍历,也可以按照广度优先的原则遍历。
[0049]终端设备获取的UI上控件的控件信息包括:控件类型、位置、大小、文字、是否可点击、是否禁止、资源ID等。
[0050]当一个UI界面上存在多个控件,分别计算各控件的特征值,在计算各控件的特征值时,可以根据各控件的控件信息按照预设规则计算特征值,如使用哈希、求平均等规则,使用计算出的特征值唯一标识一个控件。
[0051]终端设备在计算UI上的控件的特征值时,若任一控件对应动态生成的子控件,则在生成该控件的特征时,不使用该控件的子控件的控件信息,且不生成子控件的特征值。
[0052]如存在控件ListView、GridView、Webview的UI,忽略掉其对应的子控件。
[0053]参见图3,图3为本申请实施例一中UI上的控件示意图。在图3中控件ListView对应7个子控件,在进行UI上
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1