用机器学习检测Android恶意代码.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用机器学习检测Android恶意代码

原原文文地地址址:/mobile/13428 0x00 前前言言 前段时间在乌云知识库上面看到一篇比较有意思的文章利用机 学习进行恶意代码分类 。这篇文章对Kaggle上的一个恶意代码分类比赛中冠军队伍所采用的 方法进行了介绍,展现了机 学习在安全领域的应用与潜力。但是这个比赛的主题是恶意代码的分类,没有进一步实现恶意代码的检测;其次比赛的代码只 是针对Windows平台的PE格式,缺少对移动应用的研究。受此启发,尝试利用机 学习方法在Android平台对恶意代码进行检测,最终得到了一定的检测效 果。 0x01 背背景景知知识识 安安卓卓恶恶意意代代码码检检测测方方法法 目前恶意软件检测方法主要有基于特征代码(signature-based)的检测方法和基于行为(behavior-based)的检测方法。基于特征代码的检测方法,通过检测文件 是否拥有已知恶意软件的特征代码(如一段特殊代码或字符串)来判断其是否为恶意软件。它的优点是快速、准确率高、误报率低,但是无法检测未知的恶意 代码。基于行为的检测方法,则依靠监视程序的行为与已知的恶意行为模式进行匹配,以此判断目标文件是否具备恶意特征。它的优点可以检测未知的恶意 代码变种,缺点是误报率较高。 基于行为的分析方法又分为动态分析方法和静态分析方法。动态分析方法是指利用“沙盒或模拟 ”来模拟运行程序,通过监控或者拦截的方式分析程序运行的 行为,但是很消耗资源和时间。静态分析方法则是通过逆向手段抽取程序的特征,分析其中指令序列等。本文采用静态分析的方法进恶意行代码检测。 Weka与与机机 学学习习的的分分类类算算法法 Weka (Waikato Environment for Knowledge Analysis),是一款免费的,非商业化基于JAVA环境下开源的机 学习 (machine learning)以及数据挖掘 (data minining)软件。Weka存储数据的格式是A FF (Attribute- elation File Format)文件,是一种ASCII文本文件。本文就是将特征数据生成A FF格式的文件,利用 Weka 自带的分类算法进行数据训练与模型测试。 机 学习中分为有监督学习与无监督学习。有监督学习就是根据训练集,用学习算法学习出一个模型,然后可以用测试集对模型进行评估准确度和性能。分 类算法属于有监督学习,需要先建立模型。常见的分类算法有:随机森林(Random Forest)、支持向量机(SVM)等。 PK的的基基本本格格式式 Wikipedia上面有APK (Android application package)的介绍。 APK文件格式是一种基于ZIP的格式,它与JA 文件的构造方式相似。它的互联网媒体类型是application/vnd.android.package-archive; 一一个个 PK文文件件通通常常包包含含以以下下文文件件:: classes.dex: Dalvik字节码,可被Dalvik虚拟机执行。 AndroidManifest.xml: 一个的Android清单文件,用于描述该应用程序的名字、版本号、所需权限、注册的服务、链接的其他应用程序。该文件使用XML文 件格式。 META-INF 文件夹: 下面有3个文件 MANIFEST.MF: 清单信息 CE T. SA: 保存应用程序的证书和授权信息 CE T.SF: 保存SHA- 1信息资源列表 res: APK所需要的资源文件夹 assets: 不需编译的原始资源文件目录 resources.arsc:编译后的二进制资源文件 lib:库文件目录 所有的文件中需要重点注意的是classes.dex,安卓的执行代码被编译后封装在这个文件中。 Dalvik虚虚拟拟机机与与反反汇汇编编 区别与JAVA虚拟机(JVM),安卓的虚拟机称为Dalvik虚拟机 (DVM)。Java虚拟机运行的是Java字节码,Dalvik虚拟机运行的是Dalvik字节码。Java虚拟机基于 栈架构,Dalvik虚拟机基于寄存 架构。 DVM拥有专属的DEX可执行文件格式和指令集代码。smali和baksmali 则是针对DEX执行文件格式的汇编 和反汇编 ,反汇编后DEX 文件会产生.smali 后 缀的代码文件,smali代码拥有特定的格式与语法,smali语言是对Dalvik 虚拟机字节码的一种解释。 apktool工具是在smali工具的基础上进行封装和改进的,除了对DE

文档评论(0)

sunshaoying + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档