【技术实现步骤摘要】
基于自动化测试的安卓应用网络行为信息提取系统及方法
本专利技术属于Android移动终端软件安全
,特别是一种基于自动化测试的安卓应用网络行为信息提取系统及方法。
技术介绍
在移动智能终端所搭载的操作系统中,Google公司推出的Android操作系统因为其开放性得到了广泛的应用。随着用户与应用开发者的不断加入,Android应用的数量也出现了爆发式的增长。面对海量的应用,如何保证应用的质量成为了亟待解决的难题。由于互联网技术的发展,人们的生活越来越离不开网络,想要在众多的网络行为中发现恶意网络行为是非常具有挑战性的。对Android应用进行静态分析的方式往往具有较高的误报率,而在用户实际使用时对网络行为进行管理又会占用较多的资源,并且对于网络行为频繁的应用来说,会严重影响用户的使用体验。因此,若果能够在用户使用之前,对应用在实际使用时可能发生的网络行为进行全面的检测,就会可以减少用户使用时发生的安全问题。目前针对Android应用的自动化测试技术主要有三种:随机测试、基于状态模型的测试以及系统测试。随机测试是随机的生成GUI驱动事件来探索应用,在路径过长或路径中约束条件过多时,随机测试不能有效的覆盖,这是因为路径长度未知会使得随机测试产生大量的冗余事件或是因为生成事件太少而导致探索不完全。基于状态模型的测试技术是对程序的状态进行不同粒度的抽象,按照一定策略去探索程序所有可能状态,由于缺乏静态分析,无法根据应用状态描述应用行为,当抽象粒度过细时会遇到状态爆炸的问题,而粒度过粗则不能描述状态细节。系统测试 ...
【技术保护点】
1.一种基于自动化测试的安卓应用网络行为信息提取系统,其特征在于,包括静态分析模块、字符串分析模块、测试用例生成模块和行为监控与信息提取模块;/n所述静态分析模块,用于将Android应用的二进制码转换为Jimple中间码,采用生命周期建模与组件关联分析生成完整的程序调用图,在程序调用图上使用路径搜索算法计算出程序执行路径,采用符号执行技术对路径进行约束收集与事件收集;/n所述字符串分析模块,用于对关键变量值的逆向计算,首先采用符号表达式来表示变量,采用污点传播分析技术不断更新相关变量的符号表达式,然后采用系统函数对表达式中的操作进行模拟还原,计算出最终的变量值;/n所述测试用例生成模块,用于将静态分析所得到的事件序列翻译为可以在移动端实际运行的脚本语言,将事件信息中的源信息、事件类型及事件参数转换为对应的python脚本;/n所述行为监控与信息提取模块,用于在Android应用运行时监控应用状态,当网络行为发生时拦截相关方法并提取出其中参数,网络行为信息用于网络流量分类和是判别否存在恶意行为。/n
【技术特征摘要】
1.一种基于自动化测试的安卓应用网络行为信息提取系统,其特征在于,包括静态分析模块、字符串分析模块、测试用例生成模块和行为监控与信息提取模块;
所述静态分析模块,用于将Android应用的二进制码转换为Jimple中间码,采用生命周期建模与组件关联分析生成完整的程序调用图,在程序调用图上使用路径搜索算法计算出程序执行路径,采用符号执行技术对路径进行约束收集与事件收集;
所述字符串分析模块,用于对关键变量值的逆向计算,首先采用符号表达式来表示变量,采用污点传播分析技术不断更新相关变量的符号表达式,然后采用系统函数对表达式中的操作进行模拟还原,计算出最终的变量值;
所述测试用例生成模块,用于将静态分析所得到的事件序列翻译为可以在移动端实际运行的脚本语言,将事件信息中的源信息、事件类型及事件参数转换为对应的python脚本;
所述行为监控与信息提取模块,用于在Android应用运行时监控应用状态,当网络行为发生时拦截相关方法并提取出其中参数,网络行为信息用于网络流量分类和是判别否存在恶意行为。
2.一种基于自动化测试的安卓应用网络行为信息提取方法,其特征在于,包括以下步骤:
步骤1、静态分析模块通过对Android应用的Apk进行预处理,生成程序调用图;
步骤2、静态分析模块以网络行为作为出发点对程序可能的执行路径进行探索,收集路径上的GUI驱动事件以及事件触发的条件;
步骤3、字符串分析模块对关键变量进行字符串求解,确定关键变量的实际值;
步骤4、测试用例生成模块根据收集的事件序列,生成覆盖网络行为执行路径的测试用例;
步骤5、将测试用例注入Davilk虚拟机,行为监控与信息提取模块在网络行为发生时拦截方法并提取相关信息。
3.根据权利要求2所述的基于自动化测试的安卓应用网络行为信息提取方法,其特征在于,步骤1中所述的静态分析模块通过对Android应用的Apk进行预处理,生成程序调用图,具体如下:
步骤1.1、使用逆向工程将二进制字节码转换为三地址Jimple中间码;
步骤1.2、对中间码进行函数调用分析,构建函数调用图;
步骤1.3、对组件进行关联分析,在函数调用图中添加组件调用关系;
步骤1.4、针对Android特有的生命周期函数进行建模,在组件内部添加生命周期函数间调用关系;
步骤1.5、对动态加载方法进行分析,根据反射调用函数在函数调用图中添加相应边;
步骤1.6、解析Manifest文件中Intent标签中的内容,提取组件调用所需的相关字段对组件进行建模。
4.根据权利要求2所述的基于自动化测试的安卓应用网络行为信息提取方法,其特征在于,步骤1中所述的生成程序调用图时,对于组件内部由于回调函数而产生的Android应用生命周期函数之间的隐式调用进行了建模分析,符合Android应用多入口的特性。
5.根据权利要求2所述的基于自动化测试的安卓应用网络行为信息提取方法,其特征在于,步骤2所述的静态分析模块以网络行为作为出发点对程序可能的执行路径进行探索,收集...
【专利技术属性】
技术研发人员:俞研,惠啸,邓芳伟,付安民,苏铓,张晗,
申请(专利权)人:南京理工大学,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。