[发明专利]一种安卓应用程序中不可信第三方库访问权限控制方法有效
申请号: | 201810387894.2 | 申请日: | 2018-04-26 |
公开(公告)号: | CN108763924B | 公开(公告)日: | 2022-04-22 |
发明(设计)人: | 曾庆凯;胡静 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F21/54 | 分类号: | G06F21/54 |
代理公司: | 南京钟山专利代理有限公司 32252 | 代理人: | 戴朝荣 |
地址: | 210046 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用程序 不可信 第三 访问 权限 控制 方法 | ||
1.一种安卓应用程序中不可信第三方库访问权限控制方法,其特征在于,包括如下步骤:
步骤1、对第三方库的权限进行分配;
步骤2、对第三方库的不可调用API集合进行分析,根据第三方库被分配的权限,结合权限与API的映射关系,分析得出第三方库的不可调用API集合;
步骤3、对第三方库的系统API调用安全性进行分析,根据第三方库不可调用的权限API集合、及涉及敏感信息访问的非权限API集合,分析记录第三方库中涉及这两类API的调用信息,具体过程包括如下步骤:
步骤3.1、输入第三方库文件classFiles、不可调用的权限API集合illegalAPISet、可疑的非权限API集合susAPISet;
步骤3.2、初始化分析结果非法权限API调用记录needReplaceAPISet、可疑非权限API调用记录needInstruAPISet;
步骤3.3、取出classFiles的字节码文件classFileItem_i进行分析;
步骤3.4、利用反编译工具javap对选取出来的字节码文件classFileItem_i文件进行反编译,得到class文件的中间码格式文件,并提取中间码中常量池的内容;
步骤3.5、取出常量池中的所有方法引用,并保存在类方法引用集合methodRefSet_i中;
步骤3.6、遍历methodRefSet_i中的元素,即对class文件中出现的方法引用methodRefItem_j逐一分析;
步骤3.7、对于字节码常量池中出现的方法引用methodRefItem_j是否属于不可调用的权限API集合illegalAPISet进行判断,若是,则进入步骤3.8;若不是,则进入步骤3.9;
步骤3.8、第三方库出现的方法引用methodRefItem_j是属于不可调用的权限API集合illegalAPISet的,调用行为是非法的权限API调用行为,则需要将当前classFileItem_i和methodRefItem_j记录到needReplaceAPISet中;
步骤3.9、由于字节码常量池中出现的引用字节码文件methodRefItem_j不属于illegalAPISet,则需要进一步判断引用字节码文件methodRefItem_j是否属于可疑的非权限API集合susAPISet的,如果是,则进入步骤3.10,如果不是,则进入步骤3.11;
步骤3.10、如果引用字节码文件methodRefItem_j属于可疑的非权限API集合susAPISet,则将当前classFileItem_i和methodRefItem_j记录到needInstruAPISet中;
步骤3.11、判断当前class文件的所有方法引用是否完成安全性分析,如果是,则进入步骤3.12,如果剩余方法引用未完成完全性分析,则跳转到步骤3.6;
步骤3.12、安全性结果保存,即保存needReplaceAPISet、needInstruAPISet两部分内容,以供字节码重构模块使用;
步骤4、根据代码安全性分析结果,在第三方库代码中加入访问控制策略,所述访问控制策略包括:
对第三方库的权限API不合法调用行为进行替换,根据代码安全性分析结果中关于第三方库中出现的权限API不合法行为,对其进行替换操作;
对第三方库的非权限API可疑调用行为进行插桩,根据代码安全性分析结果中关于第三方库中出现的非权限API可疑调用行为,对其进行插桩操作。
2.根据权利要求1所述的安卓应用程序中不可信第三方库访问权限控制方法,其特征在于,步骤1具体包括如下步骤:
步骤1.1、根据第三方库的附加说明信息提取出第三方库申请的访问权限;
步骤1.2、根据库功能依次对第三方库申请的访问权限的合理性进行分析;
步骤1.3、为某条权限申请是否为合理性判定过程,如果为不合理的权限申请,则直接跳转到步骤1.5,如果为合理的权限申请,则进入步骤1.4;
步骤1.4、将合理的权限申请条目加入第三方库权限配置文件ThirdLib_Permissions.xml文件中,并进入步骤1.5;
步骤1.5、判断是否对所有的第三方库权限申请条目分析完成,如果存在权限申请条目未进行分析,则跳转到步骤1.2继续进行分析;如果已完成对所有的权限申请条目合理性分析,则结束权限分配流程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810387894.2/1.html,转载请声明来源钻瓜专利网。