[发明专利]基于静态污点分析的安卓应用程序权限泄露漏洞检测方法在审
申请号: | 201810562762.9 | 申请日: | 2018-06-04 |
公开(公告)号: | CN108846282A | 公开(公告)日: | 2018-11-20 |
发明(设计)人: | 杨超;卢璐;马昊玉;马建峰;李晖 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F21/57 |
代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 陈宏社;王品华 |
地址: | 710071 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提出一种安卓应用程序权限泄露漏洞检测方法,用于解决现有技术中存在的应用程序权限泄露漏洞检测的效率低和检测结果不全面的技术问题。从安卓系统源代码中提取安卓敏感权限对应的每个应用程序编程接口,配置污染源函数和陷入函数;然后对待检测应用程序进行逆向工程,解析得到的资源文件,获取存在权限泄露风险的应用程序组件;接着构建存在权限泄露风险的应用程序组件的静态污点分析的检测流程方法;基于该方法执行静态污点分析,获取待检测应用程序的权限泄露路径列表;最后输出被测应用程序的权限泄露漏洞的检测结果。本发明能够实现全面高效地检测安卓应用程序权限泄露漏洞,可用于安卓应用程序权限泄露漏洞的分析与研究。 | ||
搜索关键词: | 应用程序 泄露 权限 漏洞检测 污点 应用程序组件 检测 检测结果 漏洞 分析 应用程序编程接口 源代码 安卓系统 方法执行 逆向工程 资源文件 构建 可用 解析 污染源 敏感 输出 配置 研究 | ||
【主权项】:
1.一种基于静态污点分析的安卓应用程序权限泄露漏洞检测方法,其特征在于包括如下步骤:(1)获取污染源函数和陷入函数的配置文件SourceSink_File:(1a)将用户配置的能够接收外界数据的每个安卓应用程序编程接口作为污染源函数,得到由多个污染源函数组成的污染源函数集合S0,同时将从安卓系统源代码中提取的安卓敏感权限对应的每个应用程序编程接口作为陷入函数,得到由多个陷入函数组成的陷入函数集合S1;(1b)将污染源函数集合S0中的多个污染源函数和陷入函数集合S1中的多个陷入函数存储到SourceSink_File中,得到污染源函数和陷入函数的配置文件SourceSink_File;(2)建立待检测安卓应用程序A的权限泄露路径列表TP_List;(3)获取待检测安卓应用程序A中存在权限泄露风险的应用程序组件集合DC_Set:(3a)对待检测安卓应用程序A进行逆向工程,得到A的程序源代码和AndroidManifest.xml文件;(3b)对AndroidManifest.xml文件进行xml文件解析,并将解析得到的A中注册的所有安卓应用程序组件加入到集合C_Set中;(3c)将C_Set中的公开组件加入到集合DC_Set中,得到待检测安卓应用程序A中存在权限泄露风险的应用程序组件集合DC_Set;(4)构建静态污点分析的检测流程方法AndroidMain:采用污点分析工具Fowdroid的虚拟主方法构建模块,构建从DC_Set中随机选取的一个应用程序组件的虚拟主方法,并将其作为该应用程序组件的静态污点分析的检测流程方法AndroidMain;(5)给列表TP_List添加待检测安卓应用程序A的权限泄露路径:(5a)采用java程序分析工具soot的控制流图构建功能,构建AndroidMain的控制流图,调用图构建功能,构建AndroidMain的调用图,并将构建的控制流图和调用图存储到运行java程序分析工具soot的设备的内存中;(5b)采用java程序分析工具soot的过程间控制流图构建功能,通过控制流图和调用图构建静态污点分析的检测流程方法AndroidMain的过程间控制流图,并将过程间控制流图存储到运行java程序分析工具soot的设备的内存中;(5c)在静态污点分析的检测流程方法AndroidMain的过程间控制流图中搜索配置文件SourceSink_File中存储的污染源函数,并将搜索到的污染源函数加入到污染源函数集合Source_Set中;(5d)将污染源函数集合Source_Set中的污染源函数作为起始点,调用污点分析工具Fowdroid对AndroidMain的过程间控制流图进行污点分析,并将分析得到的存在污染的陷入函数加入到陷入函数集合Sink_Set中;(5e)采用程序路径求解工具heros的路径求解功能,求解陷入函数集合Sink_Set中存在污染的陷入函数的路径,并将该路径添加到待检测安卓应用程序A的权限泄露路径列表TP_List中;(6)判断步骤(3c)得到的DC_Set是否为空,若是,把步骤(5e)中的TP_List作为最终的待检测安卓应用程序A的权限泄露路径列表TP_List,并执行步骤(7),否则执行步骤(4);(7)获取安卓应用程序A的权限泄露漏洞的检测结果:判断最终的待检测安卓应用程序A的权限泄露路径列表TP_List是否为空,若是,则安卓应用程序A不存在权限泄露漏洞,否则,安卓应用程序A存在权限泄露漏洞,并输出TP_List中的安卓应用程序A的权限泄露路径。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810562762.9/,转载请声明来源钻瓜专利网。