论文研究-基于双重遍历的Android恶意应用检测方法 .pdf

所需积分/C币:6 2019-08-16 12:58:52 540KB .PDF

基于双重遍历的Android恶意应用检测方法,肖强,伍淳华, 在Android恶意代码动态检测的过程中,行为触发技术是影响检测结果的一项关键技术。为了有效的对Android恶意代码进行动态检测,本文提
山国武花论文在丝 执行路径。经过对大量样本的分析, 应用程序的恶意行为,可通过操作界面、 系统广播以及系统的某一特定状态触发。无论如何,应用的恶意行为均发生在应用的各组件 之中。对此,本文提出了双重遍历行为触发器一 。该触发器核心为遍历引 擎及组件遍历引擎。其中,遍历引擎根据基于控件的遍厉算法模拟用户操作,组件遍 历保证应用的 和 的触发。 双重遍历行为触发器 触发器组成 双重遍历行为触发器由部分组成,分别为主控、历引擎,组件遍历引蘩。觚发器 结构如图所示: U|遍历引擎 温泪去 Android 组件遥历引擎 图双重遍历行为触发器结构图 主控用于负责控制应用程序的安装卸载,以及遍历引擎和组件遍历引擎的协同工作。 同时需对行为触发过程中的异常进行处理 遍厉引擎负责模拟亼工操作,对应用程序的交互界面进行遍历。该引擎使用基于控件 的遍历算法完成对应用交互界面的煸历。 组件遍历引擎负责启动应用稈序在遍历时未触发的 以及发送各类广 双重遍历行为触发器以遍历引擎为主,组件遍历引擎为辅,基于 平台下自 动化测试框架 完成对应用的自动化测试。在遍历的过程中,组件遍历引擎 会记录下该应用程序已被启动过的 和 在遍历引擎结束操作后,组件遍 历引擎会依次将这些未启动 及 组件启动,若出现新的界面交由遍历引擎 继续模拟操作。同时组件遍历引擎负责在遍历引擎工作中,遍历发送各类广播以及变更 某些系统状态,以触发可能由广播引起的恶意行为。 基于控件的遍历算法 组件用」与用户交互。一般而言一个 组件显示一个界面。因此传统的 方法大多以一个 代表一个界面来构建遍历模型。然而随着应用程序界面布局越来越 复个 组件可进行多个界面切换。若仍以 为基础建立遍历模型则粒度 不够细,从而降低遍历的效果。因此本文的遍历算法建立在界面中控件的基础之上,以控件 元素作为遍历对象,构建遍历规则。控件之间关系如下图所示: 山国武技论文在丝 控件0 控件 控件2 控件3 控件4 控件5 控件6 图控件树 随着应用界面变得复杂,界面的变化不一定是通过 的跳转实现。局部内容的置 换冋样会改变当前的界面。若操作控件使得界面岀现新控件和控件,则控件,为 控件的」控件,为其父控件。控件,可以出现在当前 对话框、或是不同于 当前的 中。无论 是否出现跳转,只要有新的控件产生,就将当前界面标 为个新的界面。为使得控件的遍历能够顺利实现,需要为每个可操作控件记录·些信息 每个控件对象所包含的主要信息如下衣所示: 表控件主要信息列表 名称 描述 名称 描述 控件的唯一标识 控件在界面中层级 父控件的哐一标识 控件凵访问次数 控件所属界面的唯 控件孩子数 标识 控件所属类 已访问孩子」数 控件丛标 控件文本信息 控件所属 子控件集合 用以唯一标识一个控件,木文通过 Activity名 ”来标识一个控件 用以记录该控件的父控件,首页岀现的控件其记为。用以标识控件所属的界面 界面的唯·性通过其内部包含的所有控件及控件的空间结构共同决定,也就是说只有当两个 界面所包含的控件数量种类以及空间排布完全相同时,才认为是同一个界面。 记录该控件已被访问次数,每操作一次该控件,则 加,若 等于, 表示该控件尚未被访问。 用以记录控件的孩子数量。用来记录控件所在层级 即为一个控件所在当前界面视图中的层级,外层父容器越多则该值越人 用以记录该控件已被访问的孩子数量。当 人于 ,表示该控作还 有子控件未被访问。只有当 等于 时,才说明该控件访问完仝。 山国武花论文在丝 为避免大量的重复操作,控件树以深度优先进行遍历。算法流程如图所示: 启动应用 获取界面信息 新界面 记录界面并添加新 控件 更新上个控什的孩 子等信息 选择需访问控件 存在>否「控件挨索 或退出 操作该控件 图基于搾件的的谝历算法 在遍历完当前已经记录的所有控件后,需进行控件深度探索。为了更好的进行控件探索 在遍厉时需对记录下來的界面构建界面树。控件深度探索采用深度优先的算法遍历界面 树,在各界面上尝试进行左右以及上下滑动等操作,将可能隐藏的控件暴露出米。尝试若干 次探索后,若依然未发现新控件,则结朿遍历。 对于该算法,还有以下几点需要说明 对于不具备可操作性的控件,不将其加入掉件列表中 当待操作控件不可见时,可通过操作其可见的父控件使其可见; 控件筛选 为提髙行为触发的效率,缩短行为触发过程的操作时间,有必要对需操作控件进行筛选。 例如图,该图左侧所展示的是一款名为科盾的恶意软件的界面截图,右侧是通过 工具对其界面的解析。从解析的可以看出,手机防盗这一窗格山两个 和 组成,如果将这两个控件均添加至控件树,则在遍历过程中需 分别点击,这显然是不必要的。因此,在获取到应用界面后,需对界面进行分析,对于这种 具备组合性质的控件,以其父控件为操作控件,加入控件树。 山国武花论文在丝 手机防盗」备份还原手机体检 Y(O)LinearLayout [0, 110[768, 1184 v0 Grid View0,158]768,10151 V()R 来电归属地黑名单过滤黑手侦测 () pageView[41,170211331] (1) Textvicw:手机防盗[0331]204384] v(1) RelativeLayout [268, 170 497, 384 (0) pageView[295,170465,331 Ooo (1) Textview:备份还原05,331458384] v(2) RelatlveLayout [521, 170[751, 384 扣费记录系统管理 关于 (a) pageView[549,170[72033 (1) Textview:于机体检[59331]713384] Node detail index 图芥面及解析 组件遍历 应用程序无论如何变化,其依然由基本组件构成,恶意行为也必然存在于各组件之中 组件遍历依赖于前面预处理所提取到的应用组件信息。在遍历的执行期间,会实时荻取 组件的启动情况,在遍历结束后,对启动过的组件进行触发。前面说到,应用程序的恶 意行为有可能会被系统状态的变化而触发。因此,组件谝历除了保证应用的 以及 组件均被触发外,同时需要完成对系统某些状态的改变。这些变化包 括:系统时间, 状态,蓝牙状态等 实验验证 实验设计了两组测试,第一组测⊥要用于对比 和本文提出的 对恶意代码的触发效果。实验样本库来自于国外站点 样本数量 共 ,实验挑选了其中个用于木组实验。其恶意行为涵盖移动支付、资费消耗 隐私窃取以及远程控制。实验首先对这个样本进行反编译,提取每个样本的所包含的关 键,记为然后使用 和 分别对样木进行自 动化测试。实验统汁了在和行为触发方式卜,平均函数覆盖率 和恶意行为的触发率 ,其中为测试样本总 数量。 第个应用运行时调用的关键数量; 第个应用所包含的关键数量; 山国武花论文在丝 恶意行为被触发的应用总数; 实验结果如图所示 100 70 50 40 30 LO 函数覆盖塞 恶意行为触发率 ■ Monkey■ Monkey Runner■ Traversalrigger 图三种行为触发效果对比 第二组测试用」验证基」双重遍历动态检测系统的检测效果。实验选取样木库中的个恶 意应用,以及从 下载的个安全应用作为木组实验的良性样木,将其分为两 组,其中个(个恶意应用及个良性应用)用作分类器的训练样本,剩余 个用于分类器的检测样本。实验选取恶意应用的调用、网络行为以及权限作 为特征向量,使用算法进行分类训练。最后用训练后的分类器对个检测样 本进行判别。实验结果如下表所示: 表样本检测结果 样本 恶意 正常 准确率 误报率 恶意样本() 良性样本() 综合两组实验结果分析,木文所提出的行为触发方法能够更为全面的覆盖应用程序的执行路 径,提高应用恶意行为的触发率。结合算法的判别,使得检测具有较髙的可靠性 结论 本文深入研究了 恶意软件动态检测过程中的自动测试技术,分析了当前行为触发方 式的不足,提出了基于双重遍历的行为触发器一 该触发器双引擎协同工作, 通过遍历及应用组件来提高软件恶意行为触发率。在对应用行为分析中采用算法 对应用的恶意性进行鉴别。实验结果表明,本文提出的方法,能有效的检测 恶意应 用。 山国武技论文在丝 参考文献 胡文君赵双陶敬等一种针对 平台恶意代码的检测方法及系统实现西安交通大学学报 路程 平台恶意软件检测系统的设计与实现北京邮电人学 张国印曲家兴付小晶等一种基丁组合事件行为触发的 忐意行为检测方法计算机科学 彭国军李晶雯孙润康等 恶意软件检测研究与进展武汉大学学报理学版

...展开详情
img
  • 至尊王者

    成功上传501个资源即可获取

关注 私信 TA的资源

上传资源赚积分,得勋章
相关内容推荐