[发明专利]Android应用升级包本地存储安全性检测方法有效
申请号: | 201611263337.7 | 申请日: | 2016-12-30 |
公开(公告)号: | CN108268773B | 公开(公告)日: | 2021-12-28 |
发明(设计)人: | 俞研;邱煜;吴家顺;胡恒伟;黄兴远;付安民;苏铓;黄婵颖 | 申请(专利权)人: | 南京理工大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F21/57 |
代理公司: | 南京理工大学专利中心 32203 | 代理人: | 王玮 |
地址: | 210094 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | android 应用 升级 本地 存储 安全性 检测 方法 | ||
1.一种Android应用升级包本地存储安全性检测方法,包括如下步骤:
1)对待检测Android应用进行反编译操作,获取该应用的字节码文件,这些字节码文件存放该应用所有的功能代码;
2)对步骤1)中获取的字节码文件进行解析,对该Android应用进行建模分析;分析所有的字节码文件,从中获取到该应用中所有方法调用关系、方法内控制流信息和系统函数调用,保存这些信息;
3)使用升级包存储特征规则标记出待检测应用中所有需要检测的特征变量和疑似漏洞点;所述标记的具体步骤如下:遍历逆向处理得到的字节码文件,将所有文件输出流的对象创建的关键API作为疑似漏洞点,从该疑似漏洞点中获取到所操作文件句柄作为特征变量;
所述的升级包存储特征规则是标记出字节码中存在的所有文件输出流的关键API和该API操作的参数,其中关键API为文件写操作;
4)将步骤3)中获取到的疑似漏洞点作为漏洞检测的入口点,结合步骤2)中存储的方法调用信息,构建出与漏洞检测的入口点相关的所有的执行路径信息;
5)遍历步骤4)中每一条构建的路径,对其进行程序切片,切分出所有与特征变量相关的语句;
6)对步骤5)中切片的语句进行逆向数据流分析,使用不安全存储漏洞检测方法来对升级包存储的安全性进行判断,将检测结果保存下来;所述的不安全存储漏洞检测方法包括如下步骤:
(1)判断文件句柄操作的文件类型是否为Android应用安装包类型,仅当是应用安装包
类型才继续检测;
(2)判断文件内容来源是否是从网络下载,仅当文件数据是通过网络下载才继续检测;
其中网络下载操作包括TCP网络访问操作和HTTP网络访问操作;
(3)仅当步骤(1)和步骤(2)都满足时,判断文件存储路径是否可以被其他应用程序访问,从而得出是否存在升级包不安全存储漏洞;
7)当步骤4)中所有的疑似漏洞点已经全部完成分析,使用检测中保存的信息来生成相应的漏洞检测报告。
2.根据权利要求1所述的Android应用升级包本地存储安全性检测方法,其特征在于:在步骤1)中,使用现有的Android应用程序逆向分析技术将待检测的应用程序进行逆向处理,将Android应用程序代码逻辑还原为字节码文件。
3.根据权利要求1所述的Android应用升级包本地存储安全性检测方法,其特征在于:步骤2)中所述的方法调用关系包含直接调用关系和间接调用关系;直接调用关系直接从字节码中查找到,间接调用关系包含Android应用事件处理函数调用、Handler消息传递函数调用和异步任务函数调用。
4.根据权利要求1所述的Android应用升级包本地存储安全性检测方法,其特征在于:所述的执行路径信息是能够执行到该漏洞检测的入口点的所有程序路径信息,可表现为字节码中的语句序列。
5.根据权利要求1所述的Android应用升级包本地存储安全性检测方法,其特征在于:所述的程序切片的过程是选取步骤3)中获取到的特征变量作为切片的源头,将该执行路径信息中所有和源头变量相关的指令全部取出,其中指令包含变量赋值、变量初始化、计算。
6.根据权利要求1所述的Android应用升级包本地存储安全性检测方法,其特征在于:所述的逆向数据流分析的过程是遍历字节码代码和漏洞检测同时进行的过程;遍历代码的过程对字节码语句指令语义进行分析,获取文件类型和文件内容来源;其中数据流分析方法包含污点分析方法、符号执行方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京理工大学,未经南京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611263337.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:恶意样本的筛选方法及系统
- 下一篇:攻击请求的判定方法和装置