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

文档序号:9350281阅读:来源:国知局
为复杂,因此这里只针对窃取用户位置Obtain Location信息的过程进行分析。该过程主要通过获取并泄漏用户位置来完成,故首先定 义三个类型为leaf的叶节点,然后定义普通节点leakage_method,其实现依赖于叶节 点Send_sms和internet,最后定义根节点,其子节点为叶节点GPS和普通节点leakage_ method〇
[0031] (3)静态分析过程
[0032] 首先需要对软件具备的有效行为能力进行计算,这一工作可以通过分析软件的权 限及函数调用等情况后对攻击树叶节点进行标记来完成。具体的标记算法如表1中的算法 1所示:
[0033] 表1、静态分析过程中的软件有效行为能力计算算法
[0034]
[0036]算法1的描述:应用程序的行为能力并不只是由权限和API确定,实际环境下存 在权限提升(俗称Root)和动态加载的现象,这些特性会改变软件在运行中实际具有的权 限,动态加载使软件实际行为能力不受限于API,但是依然受到申请的权限列表的限制,而 权限提升之后的软件不受任何限制,原则上具有最高权限,威胁性极高。因此,在标记节点 时,首先要获得一些软件的基本参数:是否存在权限提升和动态加载的现象(DYNAMIC和 ESCALATION)、该软件具备的权限组合(Permissions)和相关函数调用(APIs)的组合。然后 针对不同情况采用不同的行为能力计算策略,当节点的属性与软件具备的属性相吻合时, 将其标记为P,即表示软件具有此节点的行为能力,主要分为三类情况:第一类,软件不存 在权限提升和动态加载的现象,且节点的权限和API调用都存在于此软件中,标记为P;第 二类,软件动态加载但不存在权限提升现象,且节点的权限是软件拥有的权限的一部分,标 记为P;第三类,软件存在权限提升现象时,节点标记为P。其余情况下节点均标记为I,表 示软件不具备此节点的行为能力。
[0037]算法2的描述:在检测软件的潜在威胁时,如表2中的算法2 (潜在威胁检测)所 示,首先根据权限和API标记所有叶节点,标记过程为如表1所示的算法1 (软件有效行为 能力计算):然后对每个攻击森林中的每个攻击路径,根据叶节点的标记自底向上标记所 有的节点,当节点的子节点完全标记之后,根据节点的"与"、"或"关系确定自身的标记(AND 表示只有当所有子节点都被标记为P时,根节点才能标记为P,其余情况均被标记为I;〇R 表示只有当所有子节点都被标记为I时,根节点才能被标记为I,其余情况均被标记为P), 重复此过程直到根节点被标记。如果存在根节点被标记为"P",则待检测软件存在潜在威 胁,如果所有攻击树的根节点标记为"I",则待检测软件为正常软件。
[0038] 表2、静态分析过程中的潜在威胁检测算法
[0039]
[0040] 根据图2所示的攻击树,如果软件读取用户的SD卡,并且具有访问Internet 的权限,则根据上述算法自下而上标记两条节点线路:ReadSDcard(E_RSDC)-User Info一StoredPrivacy一ObtainedPrivacy一PrivacyStealting和Internet(E_ inte) 一LeakageMethod一PrivacyStealing。
[0041] 这两条线路都标记到根节点PrivacyStealing,并通过相"与"判断将根节点标记 为P,即存在潜在威胁的软件。
[0042] (4)动态分析过程
[0043] 动态分析需要将软件安装包安装到Android系统中,触发其运行,主要分为两个 步骤:运行时软件行为特征获取和软件行为特征分析检测。
[0044] 运行时,软件行为特征获取的具体处理包括:程序运行时的行为特征可以通过 Log获得,本发明在TaintDroid工具基础上做了定制,对提取的函数信息通过配置文件进 行管理,在以TaintDroid为系统镜像的模拟器上运行Android程序时,通过Iogcat可以获 取丰富的软件运行时信息,包括函数调用序列,函数的参数列表和返回值,这些就是动态行 为检测的特征信息。
[0045] 软件行为特征分析检测的具体处理包括:首先安装软件到TaintDroid系统中, 根据LauncherActivity启动应用程序,然后根据上一步骤中准备好的动态行为检测规则 进行行为触发和行为检测,即根据规则的事件部分模拟系统事件,获取此事件触发的行为 日志。最后根据规则的检测部分进行匹配,只要存在满足的检测项(此案例中风险项是窃 取用户私人信息并对其进行不正当操作)则为恶意软件,如果检测项都不匹配则为正常软 件。行为特征分析检测的算法如表3中的算法3所示。
[0046] 表3、动态分析行为检测算法
[0047]
[0048] 算法3的描述:在实际动态检测之前需要确定软件对应的行为检测规则集合。这 个过程主要分为两个步骤,第一步根据静态分析中记录的攻击路径编号,读取每一个编号 对应的行为检测规则集合,将所有的行为检测规则并在一起;第二步从所有行为规则中提 取模拟事件相同的规则,将其合并,得到规则的集合rules。接下来,根据算法3,首先需要 获取待检测软件的所有攻击路径AttackPaths以及涉及的组件Components。然后根据攻击 路径的编号为每其加载检测规则,并模拟组件触发某事件。最后根据规则的事件部分模拟 系统事件,根据规则的检测部分进行匹配,只要check(rule,test)返回true,就表示存在 满足的检测项,则该软件为恶意软件,如果检测项都不匹配则为正常软件。如此反复,直到 所有攻击路径都被检测完为止。
[0049] (5)检验结果
[0050] 由此可以得到,利用上述"静态分析"与"动态分析"混合的检测方法,检测方可以 高效并准确地区分窃取用户隐私的恶意软件和正常软件,为避免隐私泄露和采取下一步措 施提供了基础和前提。
【主权项】
1. 一种基于攻击树模型的Android软件混合检测方法,其特征在于,该方法包含以下 步骤: 首先,在实际检测之前建立攻击树模型,使用攻击树模型对各种恶意软件攻击类型进 行分析,建立起攻击目标和软件基本能力之间的联系,并针对每一条攻击路径制定一系列 动态行为检测规则; 然后,进行包含静态分析和动态分析的混合检测,其中:所述静态分析提取待分析软件 的权限、API和组件信息,根据软件基本行为能力对攻击树进行标记,并依据标记情况实现 过滤正常软件并确定可疑软件可能的攻击途径;所述动态分析根据待测软件攻击能力检测 的结果选择软件运行时的检测点,加载及组合行为规则,通过组件信息模拟系统事件触发 程序的待测软件行为,强制待测软件充分运行,再依据行为规则进行待测软件行为检验,识 别恶意软件。2. 如权利要求1所述的基于攻击树模型的Android软件混合检测方法,其特征在于,所 述待测软件攻击能力检测的步骤,具体包括以下处理: 首先使用基于Python的Androguard工具,将APK文件中的dex文件、类和方法等都映 射为python的对象。然后通过大量的预定义的方法提取相关信息,例如将APK文件路径作 为参数调用反向工程函数并将结果赋予一个变量,便可以通过该变量调用方法获取APK的 大量信息;get_permissions()函数可以获取权限列表;get_activities()函数可以获取 所有活动组件等。最后根据提取到的权限和API信息,借助攻击树模型,通过结点标记的方 法确定攻击目标是否可以实现。对攻击树进行标记后,如果存在根结点被标记为"P",则待 检测软件存在潜在威胁,如果所有攻击树的根结点标记为" I ",则待检测软件为正常软件。3. 如权利要求1所述的基于攻击树模型的Android软件混合检测方法,其特征在于,所 述待测模拟系统事件触发程序的待测软件行为的步骤,具体包括以下处理: 根据静态分析可以获得软件的组件信息,强制软件内所有组件都启动并运行所有的生 命周期阶段以保证完备性,而组件的启动和运行可以通过命令或者事件触发。也就是说,使 用"am start"命令可以启动活动,服务并发送广播;使用telnet连接Android设备后可 以通过命令模拟环境事件,例如使用"sms send 136…Text Content"模拟发送短信,使用 "geo fix 121.5 25.4 10"模拟位置变化,还可以模拟来去电,电量变化,硬件事件等;启动 任何活动之后,生成屏幕点击事件和按键事件模拟用户操作。4. 如权利要求1所述的基于攻击树模型的Android软件混合检测方法,其特征在于,所 述待测软件行为检测的步骤,具体包括以下处理: 首先,在实际动态检测之前需要确定软件对应的行为检测规则集合。即根据静态分析 中记录的攻击路径编号,读取每一个编号对应的行为检测规则集合,将所有的行为检测规 则并在一起。其次,安装软件到TaintDroid系统中,根据Launcher Activity启动应用程 序。然后,需要获取待检测软件的所有攻击路径以及涉及的组件作为输入,并根据攻击路径 的编号为每其加载检测规则。最后根据规则的事件部分模拟系统事件,根据规则的检测部 分进行匹配,只要存在满足的检测项,则该软件为恶意软件,如果检测项都不匹配则为正常 软件。
【专利摘要】本发明公开了一种基于攻击树模型的Android软件混合检测方法,使用攻击树模型对各种恶意软件攻击类型进行分析,并针对每一条攻击路径制定一系列动态行为检测规则;然后,进行包含静态分析和动态分析的混合检测,所述静态分析实现待测软件攻击能力检测、动态分析中的模拟系统事件触发程序的待测软件行为;所述动态分析根据待测软件攻击能力检测的结果选择软件运行时的检测点,加载及组合行为规则;根据组件信息模拟系统事件触发程序的待测软件行为,强制待测软件充分运行,再根据行为规则进行待测软件行为检验,识别恶意软件。与现有技术相比,本发明有机结合了静态分析和动态分析方法实现有效的恶意软件威胁检测。
【IPC分类】G06F21/56
【公开号】CN105069354
【申请号】CN201510468228
【发明人】李晓红, 郭千宇, 赵帅, 饶国政, 陈世展
【申请人】天津大学
【公开日】2015年11月18日
【申请日】2015年7月31日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1