安卓应用文件的安全性检测方法技术

技术编号:13234357 阅读:135 留言:0更新日期:2016-05-14 21:54
本发明专利技术公开了一种安卓应用文件的安全性检测方法,主要解决现有安卓应用文件隐私泄露漏洞检测能力不足的问题。其实现步骤是:1.将安卓应用文件中的Dalvik字节码文件进行转换生成Jimple语言;2.从安卓系统文件中提取并分类出与敏感数据有关的输入和输出函数,并对其进行归类,标记出源和输出;3.在Jimple语言上生成虚拟Main函数,根据该函数生成过程间控制流图;4.制定污点传播规则;5.根据过程间控制流图生成污点访问路径;6.根据已标记的源和输出,在污点访问路径上执行污点传播规则,找出数据泄露的路径。本发明专利技术减少隐私泄露漏洞的漏报和误报,提高了安全性防护性能,可用于对安卓应用文件的检测。

【技术实现步骤摘要】

本专利技术涉及计算机安全领域,更进一步涉及一种检测方法,可用于对安卓平台上的应用程序进行安全性检测,避免应用程序中存在的隐私数据泄露。
技术介绍
安卓系统是当前主流的手机操作系统,安卓系统基于Linux操作系统,以Linux2.6内核作为底层架构。安卓系统包括安卓内核、安卓系统库、安卓应用程序框架层和应用程序层。其中安卓内核系统作为软硬件的抽象层,对内存管理、进程管理、网络协议栈和驱动模型等进行封装,并通过显示驱动、USB驱动、摄像头驱动、蓝牙驱动等底层驱动模块为上层应用提供服务。安卓系统库主要功能是完成对生命周期、堆栈、线程、垃圾回收、安全和异常的管理。安卓应用程序框架层作为应用程序开发的基础,为上层开发提供了丰富的接口。在安卓平台上,开发人员通过访问该层提供的API框架,来编写应用程序。应用程序层提供一些核心的应用程序包,包括电子邮件、短信、地图、浏览器等通用的软件功能。除此之外,开发者所开发的诸如游戏之类的应用程序也是属于该层范围。其中安卓应用程序中的文件,包括XML布局文件、可执行代码的Dex文件以及manifest文件中定义的安卓四大组件。其中Dex文件中主要用于执行的Dalvik字节码。在计算机安全领域中,将不同的安卓恶意软件进行分类,发现这些恶意软件所引起的一个主要的威胁就是将用户隐私信息泄露给攻击者,这些用户隐私信息包括位置信息、手机联系人信息、图片、SMS手机短信等等。即使应用软件是非恶意的,并且编程方面也注意到安全性的问题,但仍可能会有隐私泄露的威胁,比如说,当这些应用软件包含广告库,为了显示特定的内容信息,这些广告库通常会读取诸如用户位置之类的信息,这样就极易引起用户隐私信息的泄露。目前用于检测用户隐私信息泄露的方法主要是污点分析,即通过分析应用程序,将可能的恶意数据流向提交给用户分析,或者将检测数据提交给自动化恶意软件检测工具。污点追踪的通常做法是,给定预先设置的源和输出,跟踪敏感的“污点”数据,最终给出这些敏感的“污点”数据何时被污染,何时引起数据泄露。由于安卓应用程序具有多个入口点和回调函数的特点,使得在安卓应用文件上执行污点分析时较为困难,在污点分析过程中常出现漏报和误报的情况,影响分析的准确性。
技术实现思路
本专利技术的目的在于针对上述现有方法的不足,提供一种,以减少隐私泄露漏洞的漏报和误报,为用户准确的提供安全性防护依据。为实现上述目的,本专利技术的技术方案包括如下步骤:(I)使用源插件Dexpler将安卓应用文件中的Dalvik字节码文件进行转换生成JimpIe语言;(2)根据自学习算法从安卓系统文件中提取并分类出与敏感数据有关的输入和输出函数,再对提取出的函数进行归类,标记出源和输出;(3)在Jimple语言上生成虚拟Main函数:3a)根据安卓应用文件中Activity组件的生命周期状态转换关系,在Jimple语言上添加虚拟判断语句和跳转语句,生成初步的虚拟Main函数;3b)在初步的虚拟Main函数中加入Activity组件中已注册的回调函数,生成最终的虚拟Main函数;(4)根据最终的虚拟Main函数生成过程间控制流图:4a)从安卓应用文件中的xml布局文件和manifest配置文件中提取出入口点;4b)根据最终的虚拟Main函数,先利用静态程序分析工具Soot生成过程内控制流图,并通过Hero解析器在过程内控制流图上再生成调用图;4c)根据4a)得到的入口点和4b)得到过的程内控制流图、调用图,生成过程间控制流图;(5)制定污点传播规则;5a)将程序中的语句分为普通语句、调用语句、返回语句和调用返回语句;5b)按语句类型分别对普通语句上的污点传播、调用语句上的污点传播、返回语句上的污点传播及调用返回语句上的污点传播进行规范;(6)根据过程间控制流图进行数据流分析,找出数据泄露的路径:6a)在步骤(4)中已生成的过程间控制流图基础上,对被分析文件进行数据流分析,在数据流分析过程中生成污点访问路径;6b)根据步骤(5)中已制定的污点传播规则和步骤(2)中已标记的源和输出,在步骤6a)中的污点访问路径上进行污点追踪;6c)根据污点追踪结果,分析筛选出敏感数据的泄露路径。本专利技术与现有技术相比具有以下优点:第一,本专利技术使用自学习算法从安卓系统文件中提取并标记出源和输出,这些源和输出也可以用于其他污点分析工具,应用广泛,并且如果安卓系统文件版本发生改变,只需重新执行该算法,就可以标记出新的源和输出,操作简单。第二,本专利技术通过对安卓应用文件中Activity组件生命周期状态转换关系和回调函数的特殊处理,建立了一种虚拟Main函数,克服了现有技术存在的对安卓应用文件分析的困难。第三,本专利技术通过制定污染传播规则,并在污点访问路径上执行这些规则,能够准确的模拟污点传播路径,克服现有技术中存在的对污点信息传递路径不明确引起的污点信息的丢失和误加,从而造成的敏感数据泄露的漏报和错报。【附图说明】图1为本专利技术的实现总流程图;图2为本专利技术中提取源和输出的工作原理图;图3为本专利技术中涉及的Activity组件的生命周期状态转换关系图;图4为本专利技术中生成虚拟Main方法的流程图;图5为本专利技术中生成过程间控制流图的流程图;图6为本专利技术中生成数据泄露路径的流程图。【具体实施方式】参照图1,本专利技术的实现步骤如下:步骤I,将安卓应用文件中的Dalvik字节码文件进行转换生成Jimple语言。目前将安卓应用文件中的Dalvik字节码文件进行转换生成Jimple语言主要有两种方式:一种是先将Dalvik字节码转化为Java字节码,再将Java字节码转化为Jimple语言,但是这种方法易引起信息的丢失;另一种方法是将Dalvik字节码直接状化为Jimple,当前支持这种转换的唯一工具是Dexpler工具,本专利技术就是利用Dexpler工具完成对Dalvik字节码文件的转换。步骤2,从安卓系统文件中提取并标记出源和输出。目前从安卓系统文件中提取并标记出源和输出的方法,通常是通过人工逐个检查的方法识别出文件中的源和输出,这种方法需要大量的人工参与,对人员相关经验要求较高,本专利技术提出了一种基于自学习的自动化分析方法,分析方法的工作原理图参照如图2,其具体执行过程如下:2a)将安卓系统文件中的应用程序接口作为数据划分为训练数据集合和测试数据集合,配置特征数据库;2b)通过训练数据集合和特征数据库生成训练矩阵,通过测试数据集合和特征数据库生成测试矩阵;2c)使用训练矩阵训练分类器;2d)使用训练好的分类器对测试矩阵中的记录进行分类,提取出输入和输出函数;2e)将已提取出的输入和输出函数再放入测试数据集合中,进行归类,标记出源和输出。步骤3,生成Activity组件的虚拟Main函数。参照图4,本步骤的具体实现如下:3a)生成Activity组件初步的虚拟Main函数:本步骤的实现是基于图3所示的现有安卓应用文件中Activity组件的生命周期状态转换执行流程图进行,通过在执行流程图上添加虚拟操作,实现在Jimple语言上添加虚拟判断语句和跳转语句,生成初步的虚拟Main函数具体执行过程如下:3al)执行onResumeO方法之后,添加虚拟判断操作,根据用户操作决定执行不同的分支流程:如果当前第1页1&本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/CN105550594.html" title="安卓应用文件的安全性检测方法原文来自X技术">安卓应用文件的安全性检测方法</a>

【技术保护点】
一种安卓应用文件的安全性检测方法,包括如下步骤:(1)使用源插件Dexpler将安卓应用文件中的Dalvik字节码文件进行转换生成Jimple语言;(2)根据自学习算法从安卓系统文件中提取并分类出与敏感数据有关的输入和输出函数,再对提取出的函数进行归类,标记出源和输出;(3)在Jimple语言上生成虚拟Main函数:3a)根据安卓应用文件中Activity组件的生命周期状态转换关系,在Jimple语言上添加虚拟判断语句和跳转语句,生成初步的虚拟Main函数;3b)在初步的虚拟Main函数中加入Activity组件中已注册的回调函数,生成最终的虚拟Main函数;(4)根据最终的虚拟Main函数生成过程间控制流图:4a)从安卓应用文件中的xml布局文件和manifest配置文件中提取出入口点;4b)根据最终的虚拟Main函数,先利用静态程序分析工具Soot生成过程内控制流图,并通过Hero解析器在过程内控制流图上再生成调用图;4c)根据4a)得到的入口点和4b)得到过的程内控制流图、调用图,生成过程间控制流图;(5)制定污点传播规则;5a)将程序中的语句分为普通语句、调用语句、返回语句和调用返回语句;5b)按语句类型分别对普通语句上的污点传播、调用语句上的污点传播、返回语句上的污点传播及调用返回语句上的污点传播进行规范;(6)根据过程间控制流图进行数据流分析,找出数据泄露的路径:6a)在步骤(4)中已生成的过程间控制流图基础上,对被分析文件进行数据流分析,在数据流分析过程中生成污点访问路径;6b)根据步骤(5)中已制定的污点传播规则和步骤(2)中已标记的源和输出,在步骤6a)中的污点访问路径上进行污点追踪;6c)根据污点追踪结果,分析筛选出敏感数据的泄露路径。...

【技术特征摘要】

【专利技术属性】
技术研发人员:张邦元杨超孙聪马建峰王旭纪倩金方圆张鹏
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西;61

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

1