[发明专利]一种基于机器学习的安卓恶意程序检测方法有效
申请号: | 201810116416.8 | 申请日: | 2018-02-06 |
公开(公告)号: | CN108304720B | 公开(公告)日: | 2020-12-11 |
发明(设计)人: | 何春凤;崔渊博;聂嘉贺;阿曼太;王宇;金红;杨满智;刘长永 | 申请(专利权)人: | 恒安嘉新(北京)科技股份公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 北京市万慧达律师事务所 11111 | 代理人: | 黄玉东 |
地址: | 100191 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 机器 学习 恶意程序 检测 方法 | ||
本发明公开了一种基于机器学习的安卓恶意程序检测方法,所述方法包括:对黑白样本进行特征提取;使用样本集进行模型训练;待检测样本通过训练好的模型识别;如识别为恶意样本,则对该样本进行家族分类,如识别为白样本,则进行异常检测,判别是否是新的恶意样本;将识别结果反馈至样本库保存;对识别错误的样本加入训练集,重新训练模型。本发明使用机器学习算法和在线学习方法解决了现有的检测方法漏检率高、恶意程序的识别准确率低的问题。
技术领域
本发明涉及移动安卓程序网络安全领域,具体地说,是一种基于机器学习的安卓恶意程序检测方法。
背景技术
目前已经有基于签名、启发式、行为式等几种检测恶意代码的方法,应用最广泛也是最成熟的当属基于签名的检测技术,当前研究的热点是能够检测未知恶意代码的基于数据挖掘和机器学习的检测技术。
但是,现有技术方案通常存在如下缺点:1.漏检率较高2.新的恶意样本很难识别出来3.识别效率较低4.使用数据挖掘和机器学习技术会出现当前训练集上有效,对于出现新的恶意程序不能及时发现。
发明内容
本发明的目的是,提供一种基于机器学习的安卓恶意程序检测方法,以解决现有的检测方法漏检率高、恶意程序的识别准确低的和新的恶意程序不能及时发现的问题。
本发明采用的技术方案如下:
一种基于机器学习的安卓恶意程序检测方法,所述方法包括:
对黑白样本进行特征提取;
使用样本集训练模型,样本包括黑样本和白样本;
待检测程序提取特征后通过训练的模型识别;
待检测程序若被识别为黑样本,则该样本进行家族分类,如识别为白样本,则进行异常检测,判别是否是新的恶意样本;
将识别结果反馈至样本库保存。
进一步地,对样本特征提取的方法包括:
静态特征提取和动态特征提取;其中,
所述静态特征提取包括:
行为特征提取和权限特征提取;
将提取到的静态的行为特征、静态的权限特征和动态特征构成一条特征向量。
进一步地,所述行为特征提取的方法包括:使用API引擎,采用静态分析方法获取函数调用和命令,获取静态的行为特征;所述权限特征提取的方法包括:对AndriodManifest.xml配置文件进行分析,获取静态的APP权限特征。
进一步地,提取的所述动态特征向量包括:使用模拟器获取宏观行为特征、API调用特征、Dalvik指令特征、系统调用特征、ARM指令特征,其中,宏观行为特征模拟基于应用程序的攻击、API调用特征和Dalvik指令特征模拟基于系统核心程序的攻击、系统调用特征模拟基于linux内核的攻击、ARM指令特征模拟基于硬件的特征。
进一步地,还包括在线更新模型的过程,使用黑白分类模型引识别错误的样本,添加到原来的训练样本重新训练新的模型,在新的模型召回率和准确率都满足条件的时候替换掉原来的模型。
进一步地,所述动态特征向量的提取通过基于定制ROM的动态沙箱来检测获取,所述动态沙箱分别在应用层、框架层、运行环境层及内核层加入检测代码,并编译生成系统镜像,然后和载入的样本共同写入虚拟机或真机,并输出结果。
进一步地,所述模型训练采用xgboost算法。
进一步地,所述异常检测采用Isolation Forest算法。
进一步地,对黑样本进行家族的分类采用卷积神经网络算法和K-means算法综合实现。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于恒安嘉新(北京)科技股份公司,未经恒安嘉新(北京)科技股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810116416.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:Android恶意代码分析与检测算法
- 下一篇:一种恶意代码检测系统