一种基于安卓的计算器学习的恶意程序检测系统技术方案

技术编号:18458959 阅读:37 留言:0更新日期:2018-07-18 12:46
一种基于安卓的计算器学习的恶意程序检测系统,首次提出了综和APK文件多类特征统一建立N‑gram模型,并应用随机森林算法用于未知恶意程序检测;首先,采用多种方式提取可以反映Android恶意程序行为的3类特征,包括敏感权限、DVM函数调用序列以及OpCodes特征;然后,针对每类特征建立N‑gram模型,每个模型可以独立评判恶意程序行为;最后,3类特征模型统一加入随机森林算法进行学习,从而对Android程序进行检测;基于该方法实现了Android恶意程序检测系统。

A malicious program detection system based on Android's calculator learning

A malware detection system based on Android's calculator learning is proposed for the first time to establish the N gram model of multiple types and APK files, and the random forest algorithm is used to detect unknown malware. First, 3 types of features that can reflect the behavior of Android malicious programs, including sensitive rights, are extracted. The DVM function call sequence and the OpCodes feature, and then establish the N gram model for each type of features, each model can judge the behavior of malicious program independently; finally, the 3 type of feature model joins the random forest algorithm to learn, and then tests the Android program; based on this method, the Android malware detection is detected. System.

【技术实现步骤摘要】
一种基于安卓的计算器学习的恶意程序检测系统
本专利技术使用N-gram模型算法、特征向量选取技术和OpCodes特征技术;属于Android平台技术。
技术介绍
近年来,Android系统手机使用率迅速增加,在给人们带来方便、快捷的同时也不断增加风险;由于Android系统的开放性,也成为了众多黑客攻击的对象;根据阿里移动安全的分析统计,2016年移动恶意代码数量和用户感染量虽然呈现出一定程度的下降趋势,但全年仍有18%的设备感染过病毒,且病毒木马攻击手法的专业性较去年有了明显的提升。
技术实现思路
系统设计与实现:该系统实现了爬虫模块样本收集,特征提取向量,数据统一建立N-gram模型,随机森林与分类,各功能模块全部实现了自动化;1.爬虫模块:爬虫模块实现了基于python语言中urlib库的爬虫功能,通过正则表达式方式匹配应用名称和下载链接,可以从指定的或第三方应用市场中下载Android应用程序;爬虫模块使用配置文件方式,可自由进行配置,定制下载应用类型、搜索起始和停比点、搜索页面深度等,以此满足下载需求;2.提取特征向量:(1)提取权限特征:使用静态分析的方法,对应用程序自身APK文件进行解析分析,提取应用程序在配置文件中申请的敏感权限信息;Androguard是基于python的Android恶意应用程序检测工具,可以提取大量敏感信息,其中androapkinfo.py模块分析并列出应用程序的文件类型、权限、4大组件、是否NDK反射等信息;本系统利用androapkinfo.py提取APK申请的敏感权限,将每个应用的结果汇总为权限特征列表,提交数据统一建模模块;(2)提取smaliAPI调用特征:Android基于Linux内核,在架构上分为5个部分,包括LinuxKernel,AndroidRuntime,Libraries,ApplicationFramework和Application;Android应用程序以APK(AndroidPackage)文件结构发布,APK文件是一个压缩包,META-INF用于存放签名信息,用来保证APK包的完整性;res存储资源文件,包括图片、字符串等;AndroidManifest.xml是应用程序的配置文件,其中声明了应用程序的包名、SDK版本、权限、组件等信息;classes.dex则是dvm字节码文件,可运行于Android虚拟机Dalvik上;(3)提取native代码OpCodes特征:APK文件结构中还包括lib目录,该目录下保存着应用程序通过JNI接口调用的native程序文件即SO文件,虽然不是每个APK文件都包含原生程序,但通过大量分析恶意代码程序发现,存在恶意行为的应用程序一般会使用较为高级的方法实现隐藏等目的,即调用active程序,因此提取该部分代码的OpCodes特征具有一定的检测意义;3.建立N-gram模型:通过特征提取,形成了3类特征的3个特征向量,将3个特征向量分别提交至数据统一建模模块进行N-gram建模;由于敏感权限特征不会在一个APK中反复申请,因此在建立权限模型时,选择n=1,即建立1-gram模型;对于API和OpCodes特征选取n=3,即建立3-gram模型,以OpCodes特征集{STMFD,ADR,BL,MOV,LDMFD}为例,3-gram模型为{STMFD,ADR,BL},{ADR,BL,MOV},{BL,MO从LDMFD};对每个子集出现的次数进行统计计数,并设置一个阈值,选择大于该阈值的特征集合作为机器学习的样本输入;对于每个特征向量进行建模时,将最终的结果调用python的pandas.DataFrame()方法进行数据格式化,最终写入相应的CSV文件;4.随机森林与分类:使用随机森林算法对建立的N-gram模型进行自动机器学习,最终输出分类结果;基本步骤:a)使用python的pandas.merge()方法将提取的特征数据进行合并;b)生成测试矩阵;c)使用cross_validation.train_test_split()将数据分割为训练数据和测试数据;d)设置决策树数量开始训练;e)输出测试集结果,并输出其他多个指标评价模型。本文档来自技高网...

【技术保护点】
1.一种基于安卓的计算器学习的恶意程序检测系统,该系统实现了爬虫模块样本收集,特征提取向量,数据统一建立N‑gram模型,随机森林与分类,各功能模块全部实现了自动化。

【技术特征摘要】
1.一种基于安卓的计算器学习的恶意程序检测系统,该系统实现了爬虫模块样本收集,特征提取向量,数据统一建立N-gram模型,随机森林与分类,各功能模块全部实现了自动化。2.一种基于安卓的计...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:长沙有干货网络技术有限公司
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1