收藏 分享(赏)

基于图模式与内存足迹的android恶意应用与行为检测.doc

上传人:无敌 文档编号:26345 上传时间:2018-03-04 格式:DOC 页数:11 大小:141.50KB
下载 相关 举报
基于图模式与内存足迹的android恶意应用与行为检测.doc_第1页
第1页 / 共11页
基于图模式与内存足迹的android恶意应用与行为检测.doc_第2页
第2页 / 共11页
基于图模式与内存足迹的android恶意应用与行为检测.doc_第3页
第3页 / 共11页
基于图模式与内存足迹的android恶意应用与行为检测.doc_第4页
第4页 / 共11页
基于图模式与内存足迹的android恶意应用与行为检测.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、基于图模式与内存足迹的 Android恶意 应用与行为检测 郑忠伟 欧毓毅 广东工业大学计算机学院 摘 要: 现有的各个Android 应用商店大多检查已知的静态恶意应用, 难以检测新颖、 动 态加载的恶意应用与行为, 对此提出一种基于图结构与内存足迹分析的恶意应 用检测系统。 首先, 采集应用的内存信息, 分析应用的足迹与序列号, 检测动态 打包的恶意代码与新颖的恶意应用;然后, 提取应用所请求的共生权限, 将权限 建模为图结构, 并使用图的度量指标分析图的分类模式与中心权限, 根据中心 权限值选择可表示各类的最优图指标;最终, 计算应用的隐私分数与风险阈值, 基于该阈值检测各种恶意软件或恶

2、意行为。 仿真实验结果表明, 本算法对不同类 型的恶意应用均具有较好的效果, 对于未知的恶意应用也具有较好的检测率。 关键词: 软件工程; 智能终端; 数据挖掘; 网络安全; 恶意应用; 作者简介:郑忠伟 (1981-) , 男, 福建福州人, 硕士研究生, 主要研究方向为 信息安全技术 () ; 作者简介:欧毓毅 (1974-) , 女, 副教授, 博士, 主要研究方向为信息系统集 成. 基金:广东省重大科技专项资助项目 (2015B010128014, 2015B010108002) Graph pattern and memory footprint based malware appl

3、ication and behavior detection of Android Zheng Zhongwei Ou Yuyi Faculty of Computer, Guangdong University of Technology; Abstract: The current all Android APP stores only check the known malware APPs and can not detect the new and dynamically loading malware APPs and behaviors. This paper proposed

4、a graph pattern and memory footprint based malware application detection algorithm. Firstly, it acquired memory information of the APP, analyzed the footprint and series number to detect the dynamically packed malware code and new malware APPs. Then, it abstracted the co-occurring permissions requir

5、ed by the APP, and modeled the permissions as graph structure, and used the metrics of graph to analyze the classify pattern and centric permission of the graph. It determined the optimal graph measurement for class representation according to the centric permission. Lastly, it calculated the privac

6、y score and risk threshold of the APPs, and detected malware APPs and behaviors with that risk threshold. Simulation experimental results show that the proposed algorithm performs a high detection ratio to different types of malware APPs and a good detection ration to unknown malware APPs. Keyword:

7、software engineering; smart device; data mining; network security; malware application; 0 引言 Android系统是开源系统, 支持的硬件十分丰富, 且开发较为方便, 目前 Android系统占据了大多数的智能移动设备1。从最早期的Google 应用商店到 现在诸多的第三方应用平台, Android平台应用的数量庞大, 来源也十分多元化, 为用户带来了丰富的选择, 但Android的开放性也为Android系统带来了广泛的 安全问题2。虽然许多的 Android应用商店与平台提供了恶意软件检测机制, 但这

8、些平台的检测效果并不理想3,4。 近期许多研究人员从不同的角度提出了恶意软件的检测方案, 其中大多数通过 应用的权限分析应用的行为, 从而检测出恶意的应用与攻击。文献5在 Android权限机制的基础上提出了基于行为的 Android系统资源访问控制方案, 对应用程序访问系统资源的行为进行规范, 防止系统资源被滥用而破坏系统安 全。文献6提出一种基于类别以及权限的 Android恶意程序检测方法, 以 Google Play划分的类为依据, 统计每一个类别应用程序权限使用情况, 利用应 用程序的访问权限计算该类别恶意阈值。文献7通过分析恶意应用与正常应用之间的对比模式, 将恶意应用与正常应用分

9、类, 该方案效果优于使用单一权限 分析的方案。 上述基于行为分析的恶意软件检测方案可分析出已知的大多数恶意 应用。文献8提取了 Android 程序中的权限、API调用序列、组件、资源以及 APK结构构建特征向量, 应用相似性度量算法检测已知恶意代码家族的恶意代 码样本, 该方案提取的特征极为全面, 获得了较好的效果。文献9则设计了系 统命令的分析工具, 通过系统命令检测恶意软件。 综上所述, 目前的恶意检测方 案通过检测应用的权限、API调用序列、利用的资源与调用的系统命令来提取应 用的特征, 通过特征将应用进行分类, 最终通过相似性分析出恶意软件。 近期, 应用开发商为了防止竞争者分析其代

10、码, 广泛地采用了代码打包技术 10, 该技术可有效地防止反汇编、防止调试、防止窜改代码等。许多恶意应用 也利用了该机制通过动态地加载应用来防止应用商店与许多静态安全机制的检 测, 而目前尚未引起研究人员的重视11。 针对上述问题, 本文设计了一个多层 的Android 恶意软件分析系统, 本系统包含:a) 序列号的检查规则, 将应用的 序列号与恶意软件家族进行比较, 判断应用是否为恶意软件;b) 测试伪造文件 的系统命令, 检查应用使用的系统命令中是否包含了伪造的文件;c) 检测应用 是否隐藏了SMS的通知, 这种恶意应用的目标是捕获用户订阅的服务信息;d) 检测短信诈骗应用的规则, 这种恶

11、意应用捕获正常的短信并修改为诈骗短信;e) 检查应用请求的权限分析, 使用基于图模式的恶意应用与行为决策进行权限分 析, 检测出恶意的应用。 本系统通过对内存的足迹分析可检测出动态加载的恶意 代码, 基于权限图模式的机制分析了共生的权限, 提高了对恶意行为的检测准 确率。 1 系统总体框架 1.1 总体架构 图1所示是本文防恶意软件系统的总体结构框图, 系统由一个客户端组件与服 务器端组件组成。客户端组件位于移动设备中, 主要的分析处理在服务器端。客 户端采集应用的信息, 将信息发送至服务器端, 服务器端对应用的信息进行分 析, 判断是否为恶意软件。服务器端包含数据库和分析器两个模块。客户端将

12、应 用的信息发送至数据库, 数据库检索是否为已知的恶意软件, 如果是, 则返回 结果;否则, 传递至分析器作进一步的分析与判断。分析器主要包含足迹提取与 行为分析两个模块。 1.2 足迹提取 足迹提取程序 (内存采集模块 (MAM) ) 。在应用级将 APK文件分解为 meta-data、classes.dex 等, 其中classes.dex 是Dalvik虚拟机上的可执行程 序, Dalvik的可执行程序 (DEX) 一般未被优化, 在应用安装的过程中才针对安 装的系统架构对dex 文件进行优化, 于是会在/data/dalvik-cache 文件夹中生成一个Odex文件。如果某个应用中调

13、用了打包处理或者动态加载处理, 则在解 包或动态加载完成后将 Odex文件加载到内存区。 MAM拷贝包含目标应用的 volatile内存区, 通过strazzere NDK代码实现了 Android动态脱壳程序, 该动态脱壳程序不依赖编译器 GDB。MAM拷贝应用中包 含动态加载功能的 volatile内存区, MAM内存采集的处理步骤如下:a) MAM 使用 应用名检索应用的进程 ID (PID) , 为了防止被 Ptrace追踪调试, MAM 克隆该进 程 (PID) 的内存区;b) MAM通过proc/PID/maps检索进程PID的内存边界, 检查是否使用了打包或者动态加载处理;c)

14、MAM 从/proc/PID/maps 拷贝签名 为“dey”的内存分布。最终将 Odex文件传递至行为分析引擎中。 1.3 行为分析模块 行为分析模块 (BPM) 从META-INF文件夹提取其序列号。 为了提高搜索与分析的 效率, BPM仅搜索组件名字相同的文件与文件夹, 本系统将分析的组件按升序排 列。如果一个目标应用调用了动态的加载函数, BPM则需要检索所有的 SMALI文 件, 因为恶意软件代码可能隐藏于动态加载的文件中, 然后BPM检索 Android Manifest.xml文件中的包名、请求的权限、组件名与 intent, 根据组件名从 SMALI代码中提取有效的特征。此外,

15、 系统检查文件夹 (如assets, res 与lib 文件夹) 中是否存在伪造的文件。BPM获取目标应用的足迹, 并建立目标应用的 足迹profile (分布图) , 将它传至检测模块。本文为恶意应用的权限问题设计 了基于图模式的权限分析方案, 如第2章所述。 2 基于图模式的恶意应用与行为决策 基于图模式的权限分析方案主要有三步:a) 为目标应用请求的权限建立一个分 类模式;b) 根据应用的分类选出相关性最高的模式;c) 计算应用的隐私分数与 风险指数。 2.1 采集应用商店的数据集 从国内的几个应用商店采集共 4 000个应用, 共有35个应用分类, 应用数据集 中包含了应用包名、应用描

16、述与请求的权限列表。为了降低计算复杂度, 过滤掉 数据集中旧版本与拼写错误的权限, 仅保留 Android 4.4系统的权限列表。 2.2 建立分类的模式 按照应用的功能将各应用分类, 假设同一类的应用应当需要相似的权限集。 本文 并未单独地分析每个权限, 而是研究共生的权限并建立权限图;然后, 采用图的 分析指标来建立较大的模式。 图 2所示是模式识别算法的总体结构 (图中加粗的 线表示Z-score值较高) 。 a) 建立模式对。如果一个应用的 Android Manifest 文件中同时出现两个模式, 则将这两个模式连接。为每一类模式建立一个图, 表示为GC (NC, EC) , 其中节

17、 点NC的集合代表权限集, 边EC的集合代表该类中同时出现的一对权限 (两个) 。 b) 计算边的权重。为了防止过度表示的权限对, 例如AC-CESS_NETWORK_STATE 与 INTERNET 权限, 本文通过均值与标准偏差估计一对权限对其所属类的重要性, 计算每个类中每对权限的 Z-score (标准分数) 。Z-score不仅体现了出现频率 最高的共生权限, 而且指出了类的代表性权限。 将 Z-score值作为图中边的权重, 定义为下式: 其中:pp 是一对权限 (ppNCat) , Fpp是类C 中权限对pp的频率, pp与pp分 别是权限对pp对所有类的均值与标准偏差。 c)

18、根据出现均值过滤一些权限对。为了防止模式建立步骤中含有的异常应用与 无意义的权限, 忽略平均出现次数低于1的权限对。 最终, 根据边的权重过滤最 终的模式图, 仅保持与类相关性最高的权限。 d) 根据权重过滤一些权限对。如果一个类中权限对的频率低于平均值, 则 Z-score 为负值;如果计算的频率值略高于均值, 则Z-score等于1;如果权限对 的频率明显地高于均值, 则Z-score大于1。过滤分类的图, 仅保留权值高于 1 的边, 并过滤掉未连接的节点。将最终一个类获得的图作为一个参考模式。 将类C 的模式定义为 e) 计算图的分析指标。对于 NC中的每个节点, 计算以下的图分析指标:

19、节点的 度 (D) 、加权的度 (WD) 、中介中心 (B) 、亲近中心 (CC) 、PageRank 分数 (FR) 、中心型分数 (Hub) 与权威性分数 (Auth) 。假设一个权限对于某个类的 重要性为已知, 上述的指标可提高重要性度量的效果。 以下描述了各个图分析指 标的意义与计算方法: (a) 节点的度。与该节点相关联的边的条数。 其中:ai, j是二进制邻接矩阵 A的第i行、j 列的元素。 (b) 节点加权度。本文中强度表示为 Z-score, 加权度可以显示节点是否为高分 或者低分相关的节点对。 其中:wi, j是节点i与 j之间的权重。 (c) 中介中心。最短路径上节点的中介

20、中心性分数较高。 其中:s, t (i) 是 s与i之间最短路径的数量, s, t是s与t之间最短路径的 数量。 (d) 亲近中心。该点与图中所有其他点的最短距离之和。 其中:d (j, i) 是节点 i与j之间的距离。 (e) PageRank, 传播影响力。 其中: , 是一个预定义的残留概率, 一般设为0.85。 (f) 中心型与权威性。 上式的初始化条件为 。 将图的指标集合定义为 将权限pNC的各个指标mM计算公式抽象为m (p) 函数, 建立分类模式之后, 获得每个类的权限列表, 其中每个权限均有七个图分析指标。 2.3 特征提取 本文的每个类有一个对应的模式, 为了将各模式相关的

21、数据分类, 需要建立不 同的特征方法。 通过将目标应用所需的权限列表与各类的模式进行比较, 建立应 用的相似性特征, 表示为 sim。 将应用A请求的权限集合设为 Aperms, 将属于类 C中模式的权限集设为 NC。 第一个 特征是一个给定的应用与一个模式之间存在大量的共同权限, 将该特征定义为 Perm Count, 其相似性指数定义为 计算一个应用与一个模式之间相同权限的图指标, 作为其他的特征。定义指标 m 的相似性特征, 根据应用的权限列表与类 C 中模式的归一化相似性计算而来, 计算公式为 其中:mM。 为每个应用的每个类与每个图指标之间建立一个相似性特征, 图3所示是一个 指标的

22、特征集实例。应用“游戏” (PID=244) 类需要三个权限:P1、P2、P3, 将 这个权限列表与每个类模式的权限进行比较, 图中显示了游戏、社交、购物三个 类的模式。游戏模式包含三个权限:P1、P3、P6, 其中权限P1、P3与应用 (PID=244) 的权限相同, 社交类模式仅包含一个共同的权限 P1, 其相似性等于 3/10, 购物 类的相似性分数为 2/10。 2.4 隐私分数与风险指数 使用识别最优的模式建立一个隐私分数。 隐私分数基于以下三个假设:a) 应用与 模式越相似, 隐私分数越高;b) 如果应用请求模式的中心权限, 其分数应当较 高;c) 如果应用请求的权限不存在模式中,

23、 其分数应当较低。 使用请求权限的数量对应用与类的相似性进行加权处理, 因为上述步骤获得了 两个代表性的模式指标, 所以将一个应用与模式之间的相似性定义为结合两个 指标相似性的最终相似性 LN, 计算方法为 其中: (m1, m2) M 与0, 1是一个调节参数, 用于平衡各指标的重要性。 式中m1表示图的间接中心, m2表示加权的度。 隐私分数定义为下式: 其中:R 是风险阈值的调节参数, LN0是最小的相似性。 一个理想的应用应当完全地服从对应的模式, 如果一个应用仅请求 n个权限, 则选择模式中最高的 n个权限。 真实的应用使用的权限较为广泛, 不可能与模式 的权限完全吻合, 所以将与模

24、式相似度较高的应用作为该模式的应用。 图4所示是不同值对应的风险阈值, 横坐标表示一个应用的权限数量|Aperms|, 纵坐标表示模式相似性分数 LN (A, C) ;红色实线表示不同 阈值的曲线, 红 色虚线代表最小相似性为LN0的风险阈值, 黑线代表一个理想的相似性分数, 黑 色圈是数据集中的应用, 红色圈是 (1, LN0=0) 条件的应用, 请参见电子版。 当=0, 隐私分数等于相似性分数, 风险阈值会固定为给定的相似性;当=1, 则定义了一个线性分离, 通过应用权限计算的平均相似性分数决定风险阈值;当 1, 风险阈值如图 4所示, 该阈值使相似性低的应用设置高风险值, 即应用 的权限

25、越多, 相似性阈值则越高。 图4 不同 值对应的风险阈值 下载原图 3 检测模块 检测模块基于其行为模式决定目标应用是否是恶意应用。 检测模块包含以下几个 部分:a) 序列号的检查规则, 将应用的序列号与恶意软件家族进行比较, 判断 应用是否为恶意软件;b) 测试伪造文件的系统命令, 检查应用使用的系统命令 中是否包含了伪造的文件;c) 检测应用是否隐藏了 SMS的通知, 这种恶意应用 的目标是捕获用户订阅的服务信息;d) 检测短信诈骗应用的规则, 这种恶意应 用捕获正常的短信并修改为诈骗短信;e) 检查应用请求的权限分析, 使用第2 章“基于图模式的恶意应用与行为决策”进行权限分析, 检测出

26、恶意的应用。 4 实验与结果分析 4.1 实验环境 本文的恶意软件检测系统包含客户端组件与服务器组件。 客户端组件安装在智能 手机上, 操作系统为Android 4.4.2;服务器为Xeon X5660处理器, 8 GB内存, 操作系统为Ubuntu12.04。使用Python 3.2脚本实现服务器端的程序, 服务器端 的Android SDK 为 Android 4.1.2 sdk API16 级。 本文采用的恶意应用样本库来自于美国北卡州立大学 Zhou等人12提供的 ADRD、Anserver Bot 等49个恶意应用家族, 共1 260个恶意应用样本。 4.2 实验结果与分析 将本算法

27、与DroidRanger13、Google AVS14、PApriori15进行比较, 全面 地评估本系统的性能。表 1所示是四种恶意软件检测方案对 1 260个恶意应用样 本的检测结果, 其中 Google AVS的检测率最低, 仅为15.32%;Andro Guard 的检 测率明显地优于Google AVS, 为68.49%;PApriori 的检测率则获得较大提升, 为79.60%;本算法的检测率最优, 为96.19%。PAriori对权限之间的关系进行了 联合分析, 基于权限频繁模式挖掘算法的 Android 恶意应用检测方法设计了能 够挖掘权限之间关联性的权限频繁模式挖掘算法。该算

28、法对 49个恶意应用家族 进行权限频繁模式发现, 得到极大频繁权限项集, 从而构造出权限关系特征库 来检测未知的恶意应用, 该算法对恶意行为的分析效果较好。 本文方案则是一个 多层的恶意软件检测系统, 首先通过足迹分析与序列号分析检测出零时差的恶 意攻击;然后测试了伪造文件的系统命令, 检测应用是否隐藏了 SMS 的通知, 检 测短信诈骗应用的规则;最终基于图的模式技术分析了应用的共生权限, 深入、 有效地分析应用的行为, 同时也保持了较低的计算成本。 表1 四种恶意软件检测方案对 1 260个恶意应用样本的检测结果 下载原 表 4.3 对零时差恶意软件的检测效果 将zero-day恶意软件定

29、义为尚未被安全软件检测出、行为可疑的应用。本文选 择KISA16提供的 10个zero-day恶意应用进行实验, 并使用几大著名的安全 工具 (Mc Afee、Avast、360安全卫士) 进行实验, 这三个安全软件无法检测出 KISA的 10个zero-day恶意应用, 而本文方案可成功地检测出 10个恶意应用, 检测率为100%。 4.4 本检测系统的效率 为了评估本系统的检测效率, 选择10个正常应用样本与10个恶意应用样本, 正 常应用的大小为4050 MB, 恶意应用的大小为 620 MB。使用Ubuntu 的vmstat 命令查看系统的CPU 与内存消耗, 使用ifstat 命令查

30、看系统的网络带宽消耗。 将CPU利用率定义为一个应用的运行时间除以总的CPU时间, 内存利用率定义为 一个应用使用的内存除以总的内存量, 网络利用率定义为当前的网络流量除以 网络的最大流量。表 2所示是本系统CPU、内存与网络利用率的平均值, 可看出 对于恶意应用, 本系统消耗的 CPU和内存资源分别为 12.03%和14.31%。为了全面地检测出不同的恶意软件与行为, 本文牺牲了一定的计算效率, 但本系统的 运行成本属于合理的范围。 表2 本系统 CPU、内存与网络利用率的平均值 下载原表 5 结束语 本文系统包含了序列号的检查规则, 将应用的序列号与恶意软件家族进行比较, 判断应用是否为恶

31、意软件;测试伪造文件的系统命令;检测应用是否隐藏了 SMS 的通知;检测短信诈骗应用的规则;检查应用请求的权限分析, 使用基于图模式 的恶意应用与行为决策进行权限分析, 检测出恶意的应用。 本文系统通过对内存 的分析可检测出动态加载的恶意代码, 基于权限图模式的机制分析了共生的权 限, 提高了对恶意行为的检测准确率。 未来将重点研究通过机器学习技术, 自动 地学习新恶意软件的特征, 从而提高对新恶意软件的静态检测能力。 参考文献 1张玉清, 王凯, 杨欢, 等.Android 安全综述J.计算机研究与发展, 2014, 51 (7) :1385-1396. 2许艳萍, 马兆丰, 王中华, 等.

32、Android 智能终端安全综述J.通信学报, 2016, 37 (6) :169-184. 4朱佳伟, 喻梁文, 关志, 等.Android 权限机制安全研究综述J.计算机应 用研究, 2015, 32 (10) :2881-2885. 5雷灵光, 荆继武, 王跃武, 等.一种基于行为的 Android系统资源访问控制 方案J.计算机研究与发展, 2014, 51 (5) :1028-1038. 6张叶慧, 彭新光, 蔡志标.基于类别以及权限的 Android恶意程序检测J. 计算机工程与设计, 2014, 35 (5) :1568-1571. 7Moonsamy V, Rong Jia,

33、Liu Shaowu.Mining permission patterns for contrasting clean and malicious android applicationsJ.Future Generation Computer Systems, 2014, 36 (3) :122-132. 8胡文君, 赵双, 陶敬, 等.一种针对 Android 平台恶意代码的检测方法及系 统实现J.西安交通大学学报, 2013, 47 (10) :37-43. 9李挺, 董航, 袁春阳, 等.基于 Dalvik指令的 Android恶意代码特征描述及 验证J.计算机研究与发展, 2014, 51 (7) :1458-1466. 10樊如霞, 房鼎益, 汤战勇, 等.一种代码碎片化的 Android应用程序防二次 打包方法J.小型微型计算机系统, 2016, 37 (9) :1969-1974. 11张希远, 张刚, 沈立炜, 等.多维度的安卓应用相似度分析J.计算机科学, 2016, 43 (3) :199-205. 15杨欢, 张玉清, 胡予濮, 等.基于权限频繁模式挖掘算法的 Android 恶意应 用检测方法J.通信学报, 2013, 34 (S1) :106-115.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报