安卓应用运行时的Activity推断方法技术

技术编号:15392019 阅读:72 留言:0更新日期:2017-05-19 05:04
本发明专利技术提出了一种推断运行中安卓应用Activity的方法。主要解决现有技术需要申请危险权限和在移动终端上推断率低的问题。其实现步骤是:1)提取应用的所有Activity名称;2)通过进程的共享内存的大小变化,推断应用的Activity转换事件;3)确定标记应用的Activity特征信息;4)根据应用运行时标记应用的Activity特征信息,建立应用的Activity签名数据库;5)根据该签名数据库推断应用运行的Activity界面。本发明专利技术无需申请任何危险权限,避开了现有的安全检查机制,提高了移动终端Activity推断的正确率,可用于对安卓应用的安全分析。

Activity inference method for Android application runtime

The invention provides a method for inferring Android application Activity in operation. The utility model mainly solves the problems that the prior art needs to apply the dangerous authority and the inference rate is low on the mobile terminal. The method comprises the following steps: 1) extracting all the Activity application name; 2) by sharing the changes in the size of the memory process, the application of inference Activity conversion events; 3) to determine the Activity characteristics of information marker; 4) according to the characteristics of Activity channel application runtime markers used information to establish the Activity signature database application; 5) according to the signature database inference applications running Activity interface. The invention does not need to apply any dangerous authority, avoids the existing security check mechanism, improves the accuracy of the Activity inference of the mobile terminal, and can be used for the security analysis of the Android application.

【技术实现步骤摘要】
安卓应用运行时的Activity推断方法
本专利技术属于移动终端安全领域,更进一步涉及一种前台应用运行时Activity推断方法,可用于对安卓应用的安全分析。
技术介绍
推断前台应用运行时Activity的研究源于移动终端应用的边信道攻击研究工作,其特点是利用应用运行时所暴露的进程信息,分析进程信息的变化和Activity转换时的关系,收集Activity转换时进程信息并建立应用Activity转换的签名,在应用运行时收集前台进程信息并与所建立的数据库进行对比推断前台应用Activity。目前,前台应用Activity的推断基本都需要向系统申请各种危险权限,而这种方式是很容易被安全程序所检测的,并且Activity推断可以作为Activity劫持攻击、用户隐私窃取方面的基础。阿里巴巴集团控股有限公司在其申请的专利“一种Android系统Activity劫持风险检测方法及装置”(专利申请号201310195684.0,公开号CN104182686A)中公开了一种Android系统Activity劫持风险检测方法及装置。该方法包括在目标Activity进入激活状态之前,获取当前处于激活状态的Activity的特征信息;根据所获取的特征信息,判断所述当前处于激活状态的Activity是否符合预设的安全特征;如果否,则确定系统存在Activity劫持风险。上述方案可以在不改变Android系统运行机制的前提下,直接通过扩展系统函数的方式实现,不仅实现简单,而且通用性强。SumanJanaandVitalyShmatikov在其发表的论文“Memento:LearningSecretsfromProcessFootprints”(IEEESymposiumonSecurityandPrivacy,2012)中提出利用应用运行时所暴露的边信道信息发起攻击的方法。该方法通过应用运行时进程的内存变化信息,对浏览的网页建立特征数据库,然后通过实时监测浏览器应用的内存变化推断用户正在访问的网页。该方法的不足在于其主要是针对传统的桌面应用所实施的推断方法,而在移动终端方面,由于其所采用标记应用的特征标识单一,内存分配机制的不同造成其准确率并不是很高。AntonioBianchi,JacopoCorbetta,LucaInvernizzi,YanickFratantonio,ChristopherKruegel,GiovanniVigna在其发表的论文“WhattheAppisThat?DeceptionandCountermeasuresintheAndroidUserInterface”(IEEESymposiumonSecurityandPrivacy,2015)中提出利用应用运行时系统日志的方式来判断前台正在运行的应用Activity,进而发起Activity劫持攻击。该方法主要步骤包括:检测前台应用运行界面的Activity;推断用户正在进行的何种操作;劫持当前Activity。该方案虽说在实现Activity推断及劫持方面有挺高的正确率,但是读取系统日志需要申请root权限,而从Android4.0后root权限基本不对第三方应用开放,即使申请到root权限,安全软件也很容易检测到其恶意行为。
技术实现思路
本专利技术的目的在于克服上述现有技术的不足,提出一种安卓应用运行时的Activity推断的方法,提升推断者的隐蔽性,提高推断Android应用运行时前台Activity的正确率。为实现上述目的,本专利技术的技术方案包括如下:(1)提取应用的所有Activity名称:对所选取的安卓应用使用ApkTools进行反编译得到AndroidManifest.xml文件,然后通过定制脚本从该文件中提取应用的所有Activity名称;(2)推断Android应用运行时的Activity转换活动:通过监测应用进程的/proc/<pid>/statm文件计算共享内存的大小变化,即应用进程所占虚拟内存空间减去私有虚拟内存空间,推断应用的Activity转换事件;(3)确定标记应用的Activity特征信息:(3a)根据内存大小变化标记Activity转换的ContentProvider查询和释放事件;(3b)通过监测CPU的使用时间,区分Activity转换的不同类型;(3c)将应用接收数据包的大小作为标记Activity转换的网络活动;(4)根据应用运行时标记应用的Activity特征信息,建立应用的Activity签名数据库:(5)推断应用运行的Activity界面:(5a)从正在运行的应用中提取特征数据Sm、Sn、Sc,其中Sm表示内存特征数据集合Sn表示网络特征数据集合,Sc表示CPU使用时间特征数据集合;(5b)对建立的Activity数据库中每个文件分别计算每个特征的相似性系数,然后,以各特征的相似性系数的乘积作为运行中应用Activity数据库中Activity相似性度量值,并将该值以(Sign,Sigc)集合的格式添加到数据集R中,其中Sign表示数据库中Activity的名称,Sigc表示Sign与运行中应用Activity的相似性度量值;(5c)对数据集R中的集合,按Sigc的值进行由大到小的排序,选取前5个作为推断的Activity。本专利技术与现有技术相比存在以下优点:第一,由于本专利技术中采用了应用运行时进程所暴露的边信道信息,使攻击者在攻击时不需要申请任何危险权限就可以推断出前台应用Activity,相较于通过提取日志来推断Activity行为,无需申请危险权限,避开现有的安全检查机制,提高了推断行为的隐蔽性。第二,由于本专利技术采用了多种特征信息作为Activity转换活动数据签名,相较于仅通过浏览器内存变化来推断用户浏览网站的行为,使原本单一的推断项更加完善,克服了现有技术中在移动终端方面推断率不高和应用范围比较局限的问题。附图说明图1为本专利技术的实现总流程图图2为本专利技术中推断Android应用运行时Activity的转换活动子流程图;具体实施方式下面结合图对本专利技术做进一步的详细描述。参照图1,对本专利技术的具体实施步骤做进一步的详细描述。步骤1.提取应用的所有Activity名称。对所选取的应用使用ApkTools反编译Android应用,通过定制脚本从AndroidManifest.xml中提取该应用的所有Activity名称。在本专利技术步骤1中的实施例中,以国内某银行应用为例,通过AndroidManifest.xml文件,所提取的Activity数量为878个。步骤2.推断Android应用运行时Activity的转换活动。Activity的转换活动包括创建一个新的Activity和销毁当前Activity,对于Android应用,当一个Activity发生转换时,应用程序和SurfaceFlinger进程的共享内存大小就会发生变化。通过对Android源码的分析发现,共享内存的变化对应着绘制Activity界面过程中GraphicBuffer内存的分配和回收。由于对于特定的window其GraphicBuffer的大小是固定的,故可通过读取保存应用内存信息的进程文件/proc/<pid>本文档来自技高网
...
安卓应用运行时的Activity推断方法

【技术保护点】
安卓应用运行时的Activity推断方法,包括:(1)提取应用的所有Activity名称:对所选取的安卓应用使用ApkTools进行反编译得到AndroidManifest.xml文件,然后通过定制脚本从该文件中提取应用的所有Activity名称;(2)推断Android应用运行时的Activity转换活动:通过监测应用进程的/proc/<pid>/statm文件计算共享内存的大小变化,即应用进程所占虚拟内存空间减去私有虚拟内存空间,推断应用的Activity转换事件;(3)确定标记应用的Activity特征信息:(3a)根据内存大小变化标记Activity转换的ContentProvider查询和释放事件;(3b)通过监测CPU的使用时间,区分Activity转换的不同类型;(3c)将应用接收数据包的大小作为标记Activity转换的网络活动;(4)根据应用运行时标记应用的Activity特征信息,建立应用的Activity签名数据库:(5)推断应用运行的Activity界面:(5a)从正在运行的应用中提取特征数据Sm、Sn、Sc,其中Sm表示内存特征数据集合Sn表示网络特征数据集合,Sc表示CPU使用时间特征数据集合;(5b)对建立的Activity数据库中每个文件分别计算每个特征的相似性系数,然后,以各特征的相似性系数的乘积作为运行中应用Activity数据库中Activity相似性度量值,并将该值以(Sig...

【技术特征摘要】
1.安卓应用运行时的Activity推断方法,包括:(1)提取应用的所有Activity名称:对所选取的安卓应用使用ApkTools进行反编译得到AndroidManifest.xml文件,然后通过定制脚本从该文件中提取应用的所有Activity名称;(2)推断Android应用运行时的Activity转换活动:通过监测应用进程的/proc/<pid>/statm文件计算共享内存的大小变化,即应用进程所占虚拟内存空间减去私有虚拟内存空间,推断应用的Activity转换事件;(3)确定标记应用的Activity特征信息:(3a)根据内存大小变化标记Activity转换的ContentProvider查询和释放事件;(3b)通过监测CPU的使用时间,区分Activity转换的不同类型;(3c)将应用接收数据包的大小作为标记Activity转换的网络活动;(4)根据应用运行时标记应用的Activity特征信息,建立应用的Activity签名数据库:(5)推断应用运行的Activity界面:(5a)从正在运行的应用中提取特征数据Sm、Sn、Sc,其中Sm表示内存特征数据集合Sn表示网络特征数据集合,Sc表示CPU使用时间特征数据集合;(5b)对建立的Activity数据库中每个文件分别计算每个特征的相似性系数,然后,以各特征的相似性系数的乘积作为运行中应用Activity数据库中Activity相似性度量值,并将该值以(Sign,Sigc)集合的格式添加到数据集R中,其中Sign表示数据库中Activity的名称,Sigc表示Sign与运行中应用Activity的相似性度量值;(5c)对数据集R中的集合,按Sigc的值进行由大到小的排序,选取前5个作为推断的Activity。2.根据权利要求1所述的方法...

【专利技术属性】
技术研发人员:杨力张冬冬王利军田亚平王小琴韦腾
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

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

1