安卓应用程序隐私权限安全检测方法、装置、设备及介质制造方法及图纸

技术编号:36266785 阅读:58 留言:0更新日期:2023-01-07 10:06
本发明专利技术实施例公开了一种安卓应用程序隐私权限安全检测方法、装置、设备及介质。该方法包括:通过反编译技术对APK和第三方SDK进行解包,得到目标关键类型文件;对所述目标关键类型文件进行扫描,以得到应用程序的静态权限申请列表以及敏感权限的调用位置。本发明专利技术实施例所提供的技术方案,使得对每个SDK的敏感权限以及应用场景分类更清晰,能精确到SDK不同版本的敏感API方法,同时可支持各种终端,无需特定的代码写入,从而增强了对第三方SDK的管控,大大降低了测试人员与开发人员对隐私权限的检测门槛。检测门槛。检测门槛。

【技术实现步骤摘要】
安卓应用程序隐私权限安全检测方法、装置、设备及介质


[0001]本专利技术实施例涉及应用程序开发
,尤其涉及一种安卓应用程序隐私权限安全检测方法、装置、设备及介质。

技术介绍

[0002]移动互联网应用程序(App)的种类和数量呈爆发式增长,App安全和用户信息安全态势愈加严峻。在App产研阶段,由于不了解相关隐私合规风险点,可能设计或开发了存在不合规问题的功能或流程,且在App应用发布前没有有效的手段进行检测排查。另外,App中会引入各种第三方SDK,但存在部分第三方SDK外部程序的安全审查过程缺乏,安全意识薄弱,且排查第三方SDK权限情况需通过开发者人工对编译产物进行排查,会耗费开发者较多的时间,这导致App引入这些SDK功能后存在未知的风险漏洞。
[0003]目前市面上采用一些静态检测手段和动态检测手段,其中常规的静态检测手段包括:加固厂商通过静态解包对APK进行解包,能得到权限调用类,但是无法定位到具体的SDK,对于开发测试来说还需要进一步排查,而且对SDK无法有效进行管理,比较散乱,文档需要用户手动补充,存在遗漏合并等问题,另外检测规则也无法自定义,只能通过第三方厂商定义的规则来进行测试与检测;ASM插桩,维护检测列表需要代码写入,无法快速进行配置,而且门槛较高,需要开发对打包流程有一定的了解。

技术实现思路

[0004]本专利技术实施例提供一种安卓应用程序隐私权限安全检测方法、装置、设备及介质,以增强对第三方SDK的管控,降低隐私权限的检测门槛。
[0005]第一方面,本专利技术实施例提供了一种安卓应用程序隐私权限安全检测方法,该方法包括:
[0006]通过反编译技术对APK和第三方SDK进行解包,得到目标关键类型文件;
[0007]对所述目标关键类型文件进行扫描,以得到应用程序的静态权限申请列表以及敏感权限的调用位置。
[0008]可选的,所述目标关键类型文件包括:AndroidManifest.xml配置文件和dex代码文件组。
[0009]可选的,所述对所述目标关键类型文件进行扫描,以得到应用程序的静态权限申请列表以及敏感权限的调用位置,包括:
[0010]对所述AndroidManifest.xml配置文件进行扫描,得到所述应用程序的基础信息、版本信息和所述静态权限申请列表。
[0011]可选的,所述对所述目标关键类型文件进行扫描,以得到应用程序的静态权限申请列表以及敏感权限的调用位置,包括:
[0012]通过dex转jar技术对所述dex代码文件组进行处理,得到对应的jar包;
[0013]通过java ASM框架获取所述jar包中jar方法每个类的组成结构;
[0014]对所述组成结构进行遍历,并通过方法名和类名,与预设敏感权限规则表进行配对,以得到所述调用位置。
[0015]可选的,所述方法还包括:
[0016]通过Gradle编译流程将所述应用程序的资源文件打包为apk;
[0017]在所述Gradle编译流程的Transform流程中,使用自定义的Gradle插件,根据预设敏感权限规则表检测源数据中的敏感method、敏感string和敏感field,并在所述敏感method、所述敏感string和所述敏感field的访问之前插入一段日志字节码;所述日志字节码衍生有一个上传包装类,用于获取当前代码调用栈。
[0018]可选的,所述通过Gradle编译流程将所述应用程序的资源文件打包为apk,包括:
[0019]打包资源文件,生成R.java文件;
[0020]将AIDL文件编译成java文件;
[0021]将所述R.java文件和所述java文件通过javac命令编译成class文件;
[0022]将所述class文件打包成dex文件;
[0023]通过apkbuilder工具将所述dex文件和所述资源文件打包成apk并进行签名。
[0024]可选的,所述上传包装类还用于获取自身的特征值,所述方法还包括:
[0025]根据所述特征值以及所述静态权限申请列表和所述调用位置将所述APK对所述第三方SDK进行匹配和标记。
[0026]第二方面,本专利技术实施例还提供了一种安卓应用程序隐私权限安全检测装置,该装置包括:
[0027]关键类型文件获取模块,用于通过反编译技术对APK和第三方SDK进行解包,得到目标关键类型文件;
[0028]敏感权限调用扫描模块,用于对所述目标关键类型文件进行扫描,以得到应用程序的静态权限申请列表以及敏感权限的调用位置。
[0029]第三方面,本专利技术实施例还提供了一种计算机设备,该计算机设备包括:
[0030]一个或多个处理器;
[0031]存储器,用于存储一个或多个程序;
[0032]当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术任意实施例所提供的安卓应用程序隐私权限安全检测方法。
[0033]第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本专利技术任意实施例所提供的安卓应用程序隐私权限安全检测方法。
[0034]本专利技术实施例提供了一种安卓应用程序隐私权限安全检测方法,首先通过反编译技术对APK和第三方SDK进行解包,得到目标关键类型文件,再对目标关键类型文件进行扫描,从而得到应用程序的静态权限申请列表以及敏感权限的调用位置。本专利技术实施例所提供的安卓应用程序隐私权限安全检测方法,通过上述的静态检测方法,使得对每个SDK的敏感权限以及应用场景分类更清晰,能精确到SDK不同版本的敏感API方法,同时可支持各种终端,无需特定的代码写入,从而增强了对第三方SDK的管控,大大降低了测试人员与开发人员对隐私权限的检测门槛。
附图说明
[0035]图1为本专利技术实施例一提供的安卓应用程序隐私权限安全检测方法的流程图;
[0036]图2为本专利技术实施例二提供的安卓应用程序隐私权限安全检测装置的结构示意图;
[0037]图3为本专利技术实施例三提供的计算机设备的结构示意图。
具体实施方式
[0038]下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。
[0039]在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
[0040]实施例一
[0041]图1为本专利技术实施例一提供本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种安卓应用程序隐私权限安全检测方法,其特征在于,包括:通过反编译技术对APK和第三方SDK进行解包,得到目标关键类型文件;对所述目标关键类型文件进行扫描,以得到应用程序的静态权限申请列表以及敏感权限的调用位置。2.根据权利要求1所述的安卓应用程序隐私权限安全检测方法,其特征在于,所述目标关键类型文件包括:AndroidManifest.xml配置文件和dex代码文件组。3.根据权利要求2所述的安卓应用程序隐私权限安全检测方法,其特征在于,所述对所述目标关键类型文件进行扫描,以得到应用程序的静态权限申请列表以及敏感权限的调用位置,包括:对所述AndroidManifest.xml配置文件进行扫描,得到所述应用程序的基础信息、版本信息和所述静态权限申请列表。4.根据权利要求2所述的安卓应用程序隐私权限安全检测方法,其特征在于,所述对所述目标关键类型文件进行扫描,以得到应用程序的静态权限申请列表以及敏感权限的调用位置,包括:通过dex转jar技术对所述dex代码文件组进行处理,得到对应的jar包;通过java ASM框架获取所述jar包中jar方法每个类的组成结构;对所述组成结构进行遍历,并通过方法名和类名,与预设敏感权限规则表进行配对,以得到所述调用位置。5.根据权利要求1所述的安卓应用程序隐私权限安全检测方法,其特征在于,所述方法还包括:通过Gradle编译流程将所述应用程序的资源文件打包为apk;在所述Gradle编译流程的Transform流程中,使用自定义的Gradle插件,根据预设敏感权限规则表检测源数据中的敏感method、敏感string和敏感field,并在所述敏感method、所述敏感string和所述敏感fie...

【专利技术属性】
技术研发人员:杨良志白琳汪志新艾德刚潘叶敏颜厥共
申请(专利权)人:彩讯科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1