欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

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

来源:本站整理 作者:runner 时间:2016-03-08 TAG: 我要投稿

0x00 前言


前段时间在乌云知识库上面看到一篇比较有意思的文章利用机器学习进行恶意代码分类 。这篇文章对Kaggle上的一个恶意代码分类比赛中冠军队伍所采用的方法进行了介绍,展现了机器学习在安全领域的应用与潜力。但是这个比赛的主题是恶意代码的分类,没有进一步实现恶意代码的检测;其次比赛的代码只是针对Windows平台的PE格式,缺少对移动应用的研究。受此启发,尝试利用机器学习方法在Android平台对恶意代码进行检测,最终得到了一定的检测效果。

0x01 背景知识


安卓恶意代码检测方法

目前恶意软件检测方法主要有基于特征代码(signature-based)的检测方法和基于行为(behavior-based)的检测方法。基于特征代码的检测方法,通过检测文件是否拥有已知恶意软件的特征代码(如一段特殊代码或字符串)来判断其是否为恶意软件。它的优点是快速、准确率高、误报率低,但是无法检测未知的恶意代码。基于行为的检测方法,则依靠监视程序的行为与已知的恶意行为模式进行匹配,以此判断目标文件是否具备恶意特征。它的优点可以检测未知的恶意代码变种,缺点是误报率较高。

基于行为的分析方法又分为动态分析方法和静态分析方法。动态分析方法是指利用“沙盒或模拟器”来模拟运行程序,通过监控或者拦截的方式分析程序运行的行为,但是很消耗资源和时间。静态分析方法则是通过逆向手段抽取程序的特征,分析其中指令序列等。本文采用静态分析的方法进恶意行代码检测。

Weka与机器学习的分类算法

Weka(Waikato Environment for Knowledge Analysis),是一款免费的,非商业化基于JAVA环境下开源的机器学习(machine learning)以及数据挖掘(data minining)软件。Weka存储数据的格式是ARFF(Attribute-Relation File Format)文件,是一种ASCII文本文件。本文就是将特征数据生成ARFF格式的文件,利用Weka自带的分类算法进行数据训练与模型测试。

[1] [2] [3] [4] [5] [6]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载