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

文档序号:9787713阅读:来源:国知局
单元601,用于安装Hook程序,所述Hook程序配置需监控的调用函数;
[0108]运行单元602,用于在运行安装的应用程序的同时,运行安装单元601安装的Hook程序;
[0109]监控单元603,用于运行单元602运行应用程序过程中,通过Hook程序监控配置的调用函数;
[0110]记录单元604,用于当监控单元603通过Hook程序监控到与配置的调用函数匹配的调用函数时,记录该调用函数的调用信息;该调用信息包括:输入参数,和/或返回值;
[0111]确定单元605,用于当运行单元602遍历完所述应用程序中的所有控件时,确定在记录单元604记录的调用函数的调用信息中是否存在与配置的匹配参数匹配的信息,如果是,确定该应用程序存在安全漏洞;否则,确定该应用程序安全。
[0112]较佳地,该装置进一步包括:测试单元606;
[0113]测试单元606,用于通过自动化测试该应用程序使该应用程序运行时,根据测试脚本运行所述应用程序,获取所述应用程序当前运行UI上控件的控件信息;计算各控件的特征值;根据该UI上的各控件的特征值确定在对应路径上是否存在与该UI匹配的UI,其中,所述路径为从启动该应用程序的UI到当前UI的最短路径;如果是,则在所述路径末端添加该UI节点,并为该UI分配唯一标识,记录该UI上的各控件的特征值;否则,将生成该UI的控件标记为结束状态,并更新UI路径;遍历该应用程序中的所有UI,直到所有UI上的所有控件都标记为结束状态,结束对该应用程序的测试。
[0114]较佳地,
[0115]所述测试单元,用于计算各控件的特征值时,若任一控件对应动态生成的子控件,则在生成该控件的特征时,不使用该控件的子控件的控件信息,且不生成子控件的特征值。
[0116]较佳地,
[0117]所述测试单元,具体用于根据该UI上的各控件的特征值确定在对应路径上是否存在与该UI匹配的UI时,将该UI上的各控件与对应路径上每个UI上的控件的特征值进行比较;当所述路径上存在与该UI的控件的特征值不同的个数小于预设阈值的UI时,确定在对应路径上存在与该UI匹配的UI;当所述路径上不存在与该UI的控件的特征值不同的个数小于预设阈值的UI时,确定在对应路径上不存在与该UI匹配的UI。
[0118]较佳地,
[0119]记录单元604,记录的调用信息还包括:调用时间和调用类;
[0120]确定单元605,进一步用于若确定该应用程序存在安全漏洞,进一步确定与配置的匹配参数匹配的信息对应的调用函数的调用时间和调用类,并根据确定的调用时间和调用类查找到所述应用程序中存在安全漏洞的位置。
[0121]上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
[0122]本申请各实施例中的各单元可以以机械方式或电子方式实现。例如,一个硬件模块可以包括专门设计的永久性电路或逻辑器件(如专用处理器,如FPGA或ASIC)用于完成特定的操作。硬件模块也可以包括由软件临时配置的可编程逻辑器件或电路(如包括通用处理器或其它可编程处理器)用于执行特定操作。至于具体采用机械方式,或是采用专用的永久性电路,或是采用临时配置的电路(如由软件进行配置)来实现硬件模块,可以根据成本和时间上的考虑来决定。
[0123]以上对本申请具体实施例中的应用程序安全性测试装置进行了说明,下面给出本申请具体实施例中终端设备的硬件架构组成,该设备是可以软硬件结合的可编程设备,具体参见图7,图7为本申请具体实施例中应用程序安全性测试的终端设备的硬件架构组成示意图。该终端设备可包括:处理器710,存储器720,端口 730以及总线740。处理器710和存储器720通过总线740互联。处理器710可通过端口 730获取和输出数据;其中,
[0124]安装601被处理器710执行时可以为:用于安装Hook程序,所述Hook程序配置需监控的调用函数;
[0125]运行单元602被处理器710执行时可以为:在运行安装的应用程序的同时,运行安装单元601安装的Hook程序;
[0126]监控单元603被处理器710执行时可以为:运行单元602运行应用程序过程中,通过Hook程序监控配置的调用函数;
[0127]记录单元604被处理器710执行时可以为:用于当监控单元603通过Hook程序监控到与配置的调用函数匹配的调用函数时,记录该调用函数的调用信息;该调用信息包括:输入参数,和/或返回值;
[0128]确定单元605被处理器710执行时可以为:用于当运行单元602遍历完所述应用程序中的所有控件时,确定在记录单元604记录的调用函数的调用信息中是否存在与配置的匹配参数匹配的信息,如果是,确定该应用程序存在安全漏洞;否则,确定该应用程序安全。
[0129]测试单元606被处理器710执行时可以为:当运行单元602在对所述应用程序运行过程为,对该应用程序进行自动化测试的过程时,根据测试脚本运行所述应用程序,获取所述应用程序当前运行UI上控件的控件信息;计算各控件的特征值;根据该UI上的各控件的特征值确定在对应路径上是否存在与该UI匹配的UI,其中,所述路径为从启动该应用程序的UI到当前UI的最短路径;如果是,则在所述路径末端添加该UI节点,并为该UI分配唯一标识,记录该UI上的各控件的特征值;否则,将生成该UI的控件标记为结束状态,并更新UI路径;遍历该应用程序中的所有UI,直到所有UI上的所有控件都标记为结束状态,结束对该应用程序的测试。
[0130]由此可以看出,当存储在存储器720中的指令模块被处理器710执行时,可实现前述技术方案中安装单元、运行单元、监控单元、记录单元、确定单元和测试单元的各种功能。
[0131]另外,本发明的实施例中可以通过由设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本发明。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和/或内存)中执行。因此,这样的存储介质也构成了本发明。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如⑶-ROM等)、磁光存储介质(如MO等)等。
[0132]因此,本发明还公开了一种存储介质,其中存储有数据处理程序,该数据处理程序用于执行本发明上述技术方案。
[0133]需要说明的是,图7所示的终端设备只是一个具体的例子,也可以通过其他的与本实施例描述不同结构实现,例如,执行上述指令代码时所完成的操作,也可以由特定应用专用集成电路(ASIC)实现。另外,上述的处理器710可以是一个或多个,如果是多个,则由多个处理器共同负责读取和执行所述指令代码。因此,本申请对终端设备的具体结构不作具体限定。
[0134]基于同样的发明构思,本申请还提出一种应用程序安全性测试系统。参见图8,图8为本申请实施例中应用程序安全性测试系统示意图。该系统包括:测试设备和被测设备;
[0135]被测设备,用于安装应用程序和Hook程序,所述Hook程序配置需监控的调用函数;在运行应用程序的同时,运行Hook程序;当在应用程序运行过程中,通过Hook程序监控到与配置的调用函数匹配的调用函数时,记录该调用函数的调用信息,并发送给所述测试设备;直到遍历完所述应用程序中的所有控件;该调用信息包括:输入参数,和/或返回值;
[0136]测试设备,用于接收并存储所述被测设备发送的调用函数的调用信息;当所述被测设备遍历完所述应用程序中的所有控件时,确定在存储的调用函数的调用信息中是否存在与配置的匹配参数匹配的信息,如果是,确定该应用程序存在安全漏洞;否则,确定该应用程序安全。
[0137]较佳地,
[0138]测试设备,用于在所述测试设备对该应用程序进行自动化测试的过程中运行所述应用程序,在对该应用程序进行自动化测试的过程中,所述测试设备根据预先存储的测试脚本通知所述被测设备运行所述应用程序;获取所述被测设备上应用程序当前运行用户界面UI上控件的控件信息;计算各控件的特征值;根据该UI上的各控件的特征值确定在对应路径上是否存在与该UI匹配的UI,其中,所述路径为从启动该应用程序的UI到当前UI的最短路径;如果是,则在所述路径末端添加该UI节点,并为该UI分配唯一标识,记录该UI上的各控件的特征值;否则,将生成该UI的控件标记为结束状态,并更新UI路径;遍历该应用程序中的所有UI,直到所有UI上的所有控件都标记为结束状态,结束对该应用程序的测试;
[0139]被测设备,用于接收所述测试设备的通知并根据通知的内容运行所述应用程序。
[0140]综上所述,本申请通过配置的Hook程序,在应用程序运行时,记录Hook程序中配置的调用函数的调用信息,通过记录的调用信息确定该应用程序是否存在安全漏洞。通过该技术方案能够提高应用程序安全性测试的准确性。
[0141]并且通过提供一种自动化测试方法运行应用程序,提高自动化测试的效率。
[0142]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【主权项】
1.一种应用程序安全性测试方法,应用于安装应用程序的终端设备上,其特征在
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1