组件测试方法和装置的制造方法

文档序号:9471856阅读:493来源:国知局
组件测试方法和装置的制造方法
【技术领域】
[0001] 本发明涉及测试领域,具体而言,涉及一种组件测试方法和装置。
【背景技术】
[0002] 随着移动终端平台的兴起,人们的生活越来越依赖移动智能设备,移动平台涌现 出成千上万各式各样的应用程序(即,app)。由于系统的开放性,Amlroidapp的安全性受 到越来越多的关注和研究。组件是Amlroidapp的基础,用于构建app的各类功能和服务, 其中活动组件(即,Activity组件)用于可视化界面展现,广播接收器组件(即,Broadcast Receiver组件)用于接收并响应广播,服务组件(即,Service组件)用于实现后台服务, 内容提供者组件(即,ContentProvider组件)用于数据访问,可在a卵之间共享数据。
[0003]An化oid系统提供了一套独有的组件间通信机制,用于a卵组件间的调用和交互。 在同一个app之中或不同app之间,Activity组件、化oadcastReceiver组件和Service 组件使用Intent相互调用,使用系统提供的接口ContentResolver访问ContentProvider 组件,共同实现app的功能。
[0004] 组件间的通信由于An化oidManifest文档配置不规范或代码实现不严谨存在两 类安全问题;Intent劫持和组件暴露。Intent劫持指组件通过Intent调用其他组件时,由 于没有显式地指定接收组件导致Intent可能逃出当前app而被其他app恶意劫持,如图1 所示,组件A发送一个Intent消息,在多个目标组件都可W响应的情况下,系统W随机顺序 或让用户选择的方式决定哪个组件响应,恶意app的组件B可能先被响应,从而导致钓鱼、 信息泄漏等安全风险;组件暴露指组件访问权限完全对外开放,第H方a卵不需要任何特 殊权限就可随时调用暴露组件,如图1中的组件C若是暴露的,恶意app的组件D可随时调 用组件C执行相关逻辑,从而导致拒绝服务、数据泄漏或被污染、能力或权限泄漏等安全风 险。目标组件(被调用者)不可信导致Intent劫持安全风险,源组件(调用者)不可信导 致组件暴露安全风险,图2为组件暴露导致a卵接收到特定消息即崩溃的示意图,其中,*** 表示app的名称,在图2中示意性W字符代替。
[0005] 针对组件权限安全问题,现有技术中已提出若干技术方案,有的采用静态分析 An化oidManifest.xml文档和反编译的smali代码完成安全分析,其中,smali代码为APK 反编译生成的文件格式,是Amlroid系统的虚拟机指令语言;有的则通过生成测试a卵模拟 发送特定Intent消息进行动态安全测试。目前业界已有几款组件安全分析工具,如静态分 析工具Co血roid、C肥X和Woodpecker等,动态测试工具IntentF'uzzer、Drozer等。
[0006]Co血roid静态检查APK的An化oidManifest.xml文档中组件属性和smali代码 中发送Intent的代码点,判定是否存在隐式发送的Intent、隐式启动的Activity组件和 Service组件及用于接收系统广播的化oadcastReceiver组件;CHEX静态分析app的所有 可用入口,采用数据流分析并获取可用的路径,判定是否存在组件劫持问题,如权限泄漏、 Intent劫持和私有数据泄漏等安全风险;Woo化ecker静态检测a卵暴露的组件,模拟数据 流分析,识别可能的执行路径并确定可用路径,判定app是否存在使用敏感权限的行为。
[0007] Intent化zzer是一款动态组件权限安全测试工具,Wapp形式提供可视化测试界 面,通过界面点击选择a卵的某一组件,自动发送空Intent消息,并观察被测a卵是否存在 崩溃或其他异常现象。
[0008]Drozer(原Mer州ry)是一款开源的An化oid动态安全评估框架,由运行在 PC任ersonalComputer,简称PC)上的客户端和运行在An化oid设备上的服务端代理两个模 块组成,通过客户端命令行发送不同指令进行安全测试。Drozer首先进行攻击面分析,静态 检查app中的暴露组件,然后采用命令行指令依次测试每个暴露的组件W确认是否出现应 用崩溃、数据泄漏及能力泄漏等安全风险。
[0009] 现有技术方案从静态和动态两个不同侧面进行组件权限安全分析。静态分析方 案通过检查An化oidManifest.xml文档和反编译的代码,分析app中存在的Intent劫持、 能力泄漏及数据泄漏等安全问题,现有静态分析方案可自动化完成,但存在大量误报,且对 组件暴露的检查不全面;动态分析工具Intent化zzer和化ozer需额外安装app到设备, Intent化zzer未对非暴露组件进行过滤,且需人工选择点击,效率和准确性较低;Drozer 测试框架整体较繁重,在PC客户端远程控制An化oid设备,组件暴露的判定规则仍有遗漏, 且对每个暴露组件需人工命令行指令逐一测试。
[0010] 现有技术主要采用静态分析配置文档和反编译的源码判定app中的暴露组件,手 工选择或命令行指令对每个暴露组件逐一进行安全测试,并由测试人员观察是否存在安全 风险,存在W下缺点:
[0011] (1)对组件暴露的判定规则不完备;
[0012] (2)静态分析方案存在大量误报,影响安全测试效率;
[0013] (3)动态测试方案需额外安装app到An化oid设备;
[0014] (4)动态测试方案需大量人工参与,未实现自动化测试和异常识别。
[0015] 针对相关技术中无法对应用程序进行自动化测试的问题,目前尚未提出有效的解 决方案。

【发明内容】

[0016] 本发明实施例的主要目的在于提供一种组件测试方法和装置,W解决现有技术中 无法对应用程序进行自动化测试的问题。
[0017]为了实现上述目的,根据本发明实施例的一个方面,提供了 一种组件测试方法。
[0018] 根据本发明实施例的组件测试方法包括;获取待测试应用程序中的目标组件的组 件类型,其中,所述目标组件为允许被第H方应用程序访问的组件;获取与所述组件类型对 应的测试指令;发送所述测试指令至安装有所述待测试应用程序的目标设备;获取所述目 标设备对所述测试指令的响应结果;W及根据所述响应结果确定所述目标组件的状态。
[0019] 为了实现上述目的,根据本发明实施例的另一方面,提供了 一种组件测试装置。
[0020] 根据本发明实施例的组件测试装置包括;第一获取单元,用于获取待测试应用程 序中的目标组件的组件类型,其中,所述目标组件为允许被第H方应用程序访问的组件;第 二获取单元,用于获取与所述组件类型对应的测试指令;发送单元,用于发送所述测试指令 至安装有所述待测试应用程序的目标设备;第H获取单元,用于获取所述目标设备对所述 测试指令的响应结果;W及第一确定单元,用于根据所述响应结果确定所述目标组件的状 态。
[0021] 在本发明实施例中,采用获取待测试应用程序中的目标组件的组件类型,其中,所 述目标组件为允许被第H方应用程序访问的组件;获取与所述组件类型对应的测试指令; 发送所述测试指令至安装有所述待测试应用程序的目标设备;获取所述目标设备对所述测 试指令的响应结果;W及根据所述响应结果确定所述目标组件的状态。通过对目标组件的 组件类型进行获取,进而发送与目标组件的组件类型相对应的测试指令至目标设备,实现 了根据不同类型的组件,自动发送相应的测试指令至目标设备,测试过程不需要人工干预, 解决了现有技术中无法对应用程序进行自动化测试的问题,进而达到了提高测试效率的效 果。
【附图说明】
[0022] 构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实 施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0023] 图1是根据相关技术的组件权限安全的示意图;
[0024] 图2是根据相关技术的因组件权限安全导致app崩溃的示意图;
[0025] 图3a和图3b是执行本发明实施例的组件测试方法的计算机的结构框图;
[0026] 图4是根据本发明实施例的组件测试方法的流程图;
[0027] 图5是根据本发明又一实施例的组件测试方法的流程图;
[0028] 图6是根据本发明又一实施例的组件测试方法的流程图;
[0029] 图7是根据本发明又一实施例的组件测试方法的流程图;
[0030] 图8是根据本发明又一实施例的组件测试方法的流程图;
[0031] 图9是图8中步骤S7061的一种【具体实施方式】的流程图;
[0032] 图10是图8中步骤S7061的又一种【具体实施方式】的流程图;
[0033] 图11是图8中步骤S7062的一种【具体实施方式】的流程图;
[0034] 图12是根据本发明实施例的组件测试装置的示意图;
[0035] 图13是根据本发明又一实施例的组件测试装置的示意图;
[0036] 图14是根据本发明又一实施例的组件测试装置的示意图;
[0037] 图15是根据本发明又一实施例的组件测试装置的示意图;
[0038] 图16是根据本发明又一实施例的组件测试装置的示意图;
[0039] 图17是图16中第H确定子单元的一种具体结构的示意图;
[0040] 图18是图16中第H确定子单元的又一种具体结构的示意图;W及
[0041] 图19是图16中第四确定子单元的一种具体结构的示意图。
【具体实施方式】
[0042] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的 附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是 本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术 人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范 围。
[0043] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语"第一"、"第 二"等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解送样使用 的数据在适当情况下可W互换,W便送里描述的本发明的实施例能够W除了在送里图示或 描述的郝些W外的顺序实施。此外,术语"包括"和"具有"W及他们的任何变形,意图在于 覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限 于清楚地列出的郝些步骤或单元,而是可包括没有清楚地列出的或对于送些过程、方法、产 品或设备固有的其它步骤或单元。
[0044] 对本发明实施例所涉及的技术术语介绍如下:
[0045] Amlroid;是一种基于Linux的自由及开放源代码的操作系统,主要用于移动设 备、如智能手机和平板电脑,在智能手机市场占有率达到80%左右;
[0046] App;本文指An化oid平台的应用程序;
[0047] APK;是ApplicationPackageFile的缩写,指An化oid系统的应用程序安装包的 文件格式;
[0048] 组件;指An化iod系统提供给开发者实现app的基础实体,包括活动组件(即, Activity组件)、广播接收器组件(即,BroadcastReceiver组件)、服务组件(即,Service 组件)和内容提供者组件(即,ContentProvider组件)四种组件;
[0049]
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1