基于攻击树模型的Android软件混合检测方法

文档序号:9350281阅读:287来源:国知局
基于攻击树模型的Android软件混合检测方法
【技术领域】
[0001] 本发明涉及移动安全领域,特别是涉及一种软件静态检测和动态检测相结合的混 合检测技术,以攻击树为基础可以检测出恶意软件。
【背景技术】
[0002] Android系统是由Google公司基于Linux整合开发的开源手机操作系统,该平台 是第一个可以完全定制、免费、开放的手机平台。最近几年,Android系统凭借良好的用户 体验和较高的开放性,被越来越多的手机厂商所采用。最近的研究表明:Android系统现在 占据了智能手机市场75%的市场份额,在2013年保持了 51. 3%的高增长率。
[0003] 智能手机的出现便利了人们的生活,但是随之而来的安全问题却也日益凸显,尤 其是手机中往往存放着用户大量的个人及隐私信息,用户面临着越来越大的安全风险,个 人隐私泄露以及病毒诈骗已经成为社会性问题。2013年被称为"恶意软件之年",McAfee报 告指出,2013年第一季度新增恶意软件数量达到14000例。近年来,移动终端恶意软件急剧 增多。恶意软件往往会欺骗用户,让用户安装在手机上,并会获取手机上的数据、破坏手机 设备或者造成恶意扣费等。恶意软件还经常窃取个人隐私信息,如手机所处的地理位置、短 信内容和通讯录信息等。目前在AndroidMarket上发现的恶意软件有GIRLFRIENDTEXT MESSAGEVIEWER、SMSMESSAGESPYPR0/LITE、THEFTAWARE等。随着移动网络、Wi-Fi、以 及SMS和MMS服务的使用,恶意软件的传播更加便利,给手机用户造成了很大的危害。
[0004] 移动安全问题引起了广泛的关注,相关研究工作取得许多有益的进展,研究人员 提出一些威胁检测方案并开发出检测工具。如Kirin工具根据安全规则检测存着威胁的 权限组合;CrowDroid采用众包的方式从Android社区收集系统调用日志,通过聚类算法分 析检测恶意软件;TaintDroid在Dalvik虚拟机中设置标记,在运行时实时获取系统调用情 况,可以监测到调用参数和返回值。现有的Android恶意软件检测方案可以根据所选特征 分为静态分析和动态分析两种类型,但是两种检测方法都有各自的不足,静态分析通过反 向工程分析APK文件,执行效率高,但是难以覆盖所有运行时状态,无法分析运行时才能确 定的程序行为;动态分析根据运行时特征进行检测,例如电量消耗和系统调用等,动态分析 相对准确,但是面临恶意代码段未执行的问题,同时全面的检测会造成很大的系统开销。针 对上述问题,提出新型的、有效的Android软件混合检测方法有很强实用价值和现实意义。

【发明内容】

[0005] 为了克服上述现有技术的问题,本发明提出了一种基于攻击树模型的Android软 件混合检测方法,通过研究Android平台恶意软件样本,划分攻击类型,并分析每种攻击类 型的实现途径和检测方法;基于攻击树模型的、结合静态分析和动态分析方法的Android 软件检测方案;实现恶意软件检测原型工具,通过实验验证方法的有效性。
[0006] 本发明提出了一种基于攻击树模型的Android软件混合检测方法,该方法包含以 下步骤:
[0007] 首先,在实际检测之前建立攻击树模型,使用攻击树模型对各种恶意软件攻击类 型进行分析,建立起攻击目标和软件基本能力之间的联系,并针对每一条攻击路径制定一 系列动态行为检测规则;
[0008] 然后,进行包含静态分析和动态分析的混合检测,其中:所述静态分析提取待分析 软件的权限、API和组件信息,根据软件基本行为能力对攻击树进行标记,并依据标记情况 实现过滤正常软件并确定可疑软件可能的攻击途径;所述动态分析根据待测软件攻击能力 检测的结果选择软件运行时的检测点,加载及组合行为规则,通过组件信息模拟系统事件 触发程序的待测软件行为,强制待测软件充分运行,再依据行为规则进行待测软件行为检 验,识别恶意软件。
[0009] 所述待测软件攻击能力检测的步骤,具体包括以下处理:
[0010] 首先使用基于Python的Androguard工具,将APK文件中的dex文件、类和方法等 都映射为python的对象。然后通过大量的预定义的方法提取相关信息,例如将APK文件 路径作为参数调用反向工程函数并将结果赋予一个变量,便可以通过该变量调用方法获取 APK的大量信息;get_permissions()函数可以获取权限列表;get_activities()函数可以 获取所有活动组件等。最后根据提取到的权限和API信息,借助攻击树模型,通过结点标记 的方法确定攻击目标是否可以实现。对攻击树进行标记后,如果存在根结点被标记为"P", 则待检测软件存在潜在威胁,如果所有攻击树的根结点标记为"I",则待检测软件为正常软 件。
[0011] 所述待测模拟系统事件触发程序的待测软件行为的步骤,具体包括以下处理:
[0012] 根据静态分析可以获得软件的组件信息,强制软件内所有组件都启动并运行所有 的生命周期阶段以保证完备性,而组件的启动和运行可以通过命令或者事件触发。也就是 说,使用"amstart"命令可以启动活动,服务并发送广播;使用telnet连接Android设备 后可以通过命令模拟环境事件,例如使用"smssend136…TextContent"模拟发送短信, 使用"geofix121. 525. 410"模拟位置变化,还可以模拟来去电,电量变化,硬件事件等;启 动任何活动之后,生成屏幕点击事件和按键事件模拟用户操作。
[0013] 1.如权利要求1所述的基于攻击树模型的Android软件混合检测方法,其特征在 于,所述待测软件行为检测的步骤,具体包括以下处理:
[0014] 首先,在实际动态检测之前需要确定软件对应的行为检测规则集合。即根据静态 分析中记录的攻击路径编号,读取每一个编号对应的行为检测规则集合,将所有的行为检 测规则并在一起。其次,安装软件到TaintDroid系统中,根据LauncherActivity启动应 用程序。然后,需要获取待检测软件的所有攻击路径以及涉及的组件作为输入,并根据攻击 路径的编号为每其加载检测规则。最后根据规则的事件部分模拟系统事件,根据规则的检 测部分进行匹配,只要存在满足的检测项,则该软件为恶意软件,如果检测项都不匹配则为 正常软件。
[0015] 与现有技术相比,本发明给出了攻击树管理检测规则,实现细粒度动态配置。静态 分析过滤掉正常的软件,识别出可能的攻击点,再由动态分析使用有针对性的约简后的规 则集合,进行基于组件的行为触发来检测恶意软件。预期达到以下有益效果:
[0016] 1、扩展了常规攻击树模型,使之适合Android恶意软件检测。攻击树建立攻击能 力和程序基本行为能力之间的关系,并实现一种细粒度、可动态配置的规则管理模式。
[0017] 2、有机结合了静态分析和动态分析方法。静态分析提取程序的权限、关键API和 组件,根据权限和API将软件划分为正常软件和可疑软件;动态分析根据静态分析确定的 程序攻击能力,选择相对应的规则集合进行运行时行为检测。
[0018] 3、基于程序组件的运行时行为触发技术。Android系统是事件驱动的,根据组件信 息模拟系统事件,强制程序充分执行,保证代码覆盖率。
【附图说明】
[0019]图1为混合检测方法的整体框架示意图;
[0020] 图2为"隐私窃取"实施例的恶意攻击的攻击树模型结构示意图。
【具体实施方式】
[0021] 下面将结合附图对本发明的【具体实施方式】进行详细描述,这些实施方式若存在示 例性的内容,不应解释成对本发明的限制。
[0022] 如图1所示,为本发明的基于攻击树模型的Android软件混合检测方法的整体框 架。在实际检测之前建立攻击树模型,使用攻击树模型对各种恶意软件攻击类型进行分析, 建立起攻击目标和软件基本能力之间的联系,并针对每一条攻击路径制定一系列动态行为 检测规则;静态分析过程提取程序的权限、API和组件信息,前两者用于软件攻击能力检 测,后者用于动态分析中的行为触发;动态分析根据软件的攻击能力选择运行时检测点,组 合行为检测规则,根据软件组件信息模拟系统事件,强制程序充分运行,再根据行为检测规 则进行检验,识别恶意软件。
[0023] 以下结合有关"隐私窃取的分析案例"具体描述本发明的技术方案:
[0024] (1)建立隐私窃取的攻击树模型
[0025] 如图2所示,为本发明的隐私窃取恶意攻击类型的攻击树模型示意。因此攻击类 型"隐私窃取Privacy Stealing"作为攻击树的根节点,表示攻击树的最终攻击目标为隐 私窃取。为了实现隐私窃取的攻击目标,需要两个步骤,"获取隐私信息Obtain Privacy" 和"实现泄露方法Leakage Method",两者缺一不可,因此节点关系为"与AND",将其加入 做攻击树中,作为根节点的子节点,设置根节点为AND节点,接下来继续分解子目标"获取 隐私信息",获取的隐私信息可以分为"环境隐私(Environmental Privacy"和"存储隐私 Stored Privacy"种类型:前者包括"录音Recorder"、"拍照Take Photo"、"位置信息Obtain Location";后者包括"设备信息Device Info"和"用户信息User Info","用户信息User Info"包含了"联系人Contacts"、"短消息Read SMS"、"通话记录Call Log"、"账户信息 Accounts"和"SD卡信息Read SD Card"等,这些隐私信息都是需要保护的,任何一种信息 的非法窃取都是危险的,因此这些节点的关系为0R,只要有一种信息被获取则可以实现"获 取隐私"的目标。信息泄露途径也包含了多种程序能力,例如发送短消息,访问网络,写SD 卡等,当攻击目标不断分解直到实现途径为程序基本行为能力时,就如读取联系人或者访 问网络,将其定义为叶节点。
[0026] (2)隐私窃取攻击树的配置文件
[0027] 部分隐私窃取攻击树的配置文件代码摘录如下:
[0028]
[0030] 由于图2所示的攻击树模型结构较
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1