[发明专利]一种Android系统内置应用漏洞挖掘方法有效
申请号: | 201611263238.9 | 申请日: | 2016-12-30 |
公开(公告)号: | CN106650452B | 公开(公告)日: | 2020-01-24 |
发明(设计)人: | 姜伟;吴贤达;庄俊玺;王晓茜;潘邵芹;田原 | 申请(专利权)人: | 北京工业大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 11203 北京思海天达知识产权代理有限公司 | 代理人: | 刘萍 |
地址: | 100124 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 android 系统 内置 应用 漏洞 挖掘 方法 | ||
1.一种Android系统内置应用漏洞挖掘方法,其特征在于:
S1,建立一个Android漏洞库;将漏洞分为以下8类:拒绝服务漏洞,跨站脚本攻击漏洞,输入验证漏洞,缓冲区溢出漏洞,敏感信息泄露漏洞,组件/权限暴露漏洞,SQL注入漏洞,其他;详细分析每一类的漏洞的特点,为每一类的漏洞整理出该类漏洞规则,并根据每类漏洞的威胁度附以不同的权值;
S2,将目标APK文件进行反编译,得到包括Manifest文件、资源文件和代码文件的文件;将反编译后的Manifest文件和资源文件进行解析,获取应用的权限申请、组件声明和类函数调用等信息;再对相应的可执行文件进行反汇编,对反汇编代码进行切片并进行汇集;
S3,将汇集后的反汇编代码通过语法词法分析、危险API分析、控制流、数据流分析,得到目标APK文件的行为特性,生成特征数据;对反编译后得到的smali代码进行词法分析和语法分析,获取危险函数调用信息;
S4,引入IDA工具对.so文件静态分析;通过一段python代码,实现从指定APP中提取所有的.so文件;将提取的.so文件导入IDA,反汇编.so文件得到二进制代码,通过二进制代码中静态分析的地址和.so文件在内存中的基址来定位目标函数;将二进制代码转换为C语言代码,利用IDA的功能模块Graph View查看目标APK的设计流程;
S5,漏洞匹配;针对不同种类的Android漏洞,通过编码构建相应的漏洞检测器,对静态分析得到的特征数据进行匹配检测,判断应用是否存在相应的漏洞;
S6,将S5中得到的漏洞类别以及对应的权值和S4中.so文件分析结果,对目标APK进行整体风险评估,生成静态分析报告;
S7,在开始动态检测前,获取指定APK文件静态报告中的威胁,监测应用程序API函数的调用;
S8,引入IDA对.so文件动态分析;使用IDA工具打开.so文件,找到指定的native层函数;结合S4中APK的设计流程和IDA中的快捷键,得到函数的执行流程;调试.so文件,将DA目录中的android_server拷贝到设备的指定目录下,修改android_server的运行权限,用Root身份运行android_server;使用adb forward进行端口转发,让远程调试端IDA可以连接到被调试端;使用IDA连接上转发的端口,查看设备的所有进程,找到需要调试的进程;再次打开.so文件,找到需要调试的函数的相对地址,然后在调试页面使用Ctrl+S找到.so文件的基地址,相加之后得到绝对地址,使用G键,跳转到函数的地址处,下好断点后运行;触发native层的函数,利用单步调试,查看寄存器中的值;
S9,过集成Drozer动态分析框架,在命令行中输入各种测试命令,确定攻击面;针对可攻击的地方,运用渗透手段进行测试;
S10,结合静态检测和动态检测结果,生成检测报告。
2.如权利要求1所述一种Android系统内置应用漏洞挖掘方法,其特征在于,
步骤S3及S4之间还能存在以下步骤:
S31,生成目标APK调用可视化文件,具体到目标APK中类方法调用关系,将表示其调用关系的类调用图采用YiFan Hu算法进行可视化美化;并在第三方软件Gephi中Filters选项设置相应的Class_name,对实现可视化图形进行筛选;在DataLabortatory对Nodes节点筛选包含指定类和方法调用;最终以gexf格式存储;
S32,分析应用组件的生命周期函数和事件回调函数;根据类调用图模拟应用中函数调用的情况,得到控制流图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611263238.9/1.html,转载请声明来源钻瓜专利网。