一种基于机器学习的恶意移动应用程序判定方法与流程

文档序号:11951601阅读:257来源:国知局

本发明属于移动互联网安全技术领域,具体涉及一种基于机器学习的恶意移动应用程序判定方法。



背景技术:

随着智能手机越来越普及,各种移动应用程序层出不穷,相应的各类恶意的应用程序也随之出现。很多恶意程序偷偷驻留后台,窃取用户通讯录、短信等用户隐私数据并上传到远程服务端,或者感染成为僵尸木马被控制节点,在用户未知的情况下定时发起DDoS攻击等,对个人隐私,网络安全等都造成了很大的损害。

如何去识别和检测哪些应用程序是恶意的,成为一个难点问题。现在很多检测方法都是根据简单的行为特征来做判断,制定相应的基线策略,如果某个应用程序的行为特征超过了基线,就判定为恶意的。此类方法一般都是针对单个应用程序的检测分析,缺乏全局性的关联分析,没有很好的利用到全局的知识库等。



技术实现要素:

有鉴于此,本发明的目的是提供一种基于机器学习的恶意移动应用程序判定方法,能够在智能手机上判断移动应用程序是否为恶意程序。

一种基于机器学习的恶意移动应用程序判定方法,包括如下步骤:

S1、首先收集若干数量的正常移动应用程序和恶意移动应用程序;

S2、将智能手机连入网络,在该智能手机上依次安装和启动S1获得的各个应用程序,并且通过人工操作触发各应用程序,对网络进行持续的监听,获取到应用程序的所有网络通讯内容,提取出应用程序向远程服务器所发送的请求内容的所有数据信息;

S3、对每一个应用程序所捕获的所有发送请求信息,按排列顺序依次首、尾相连,整合成一个长字符串,记录该长字符串对应的应用程序的类别,即正常移动应用程序或恶意移动应用程序;针对每一个长字符串,设长度用N表示,分别从第1,2,…N个字符开始向后截取长度为M的字符单元,查找重复的字符单元,并记录重复次数;所述M远小于长字符串长度N;

S4、将S3得到的每一个应用程序对应的所有不同的字符单元作为特征空间,字符单元重复次数作为特征值,形成一个样本,根据S3的记录对样本进行类别标记,所有应用程序对应的样本形成训练样本集,并采用机器学习的方法进行二次分类学习训练,得到一个分类器;

S5、对于某个需要判定的移动应用程序,先采用S2的方法,获得该移动应用程序所发送的请求内容的所有数据信息,再采用S3的方法,得到字符串单元和重复次数,最后利用S4得到的分类器判定该移动应用程序是否为恶意移动应用程序。

较佳的,所述S1中的应用程序通过类似中国反病毒网络联盟等行业组织共享的黑名单和白名单应用程序的公开渠道获得。

较佳的,所述机器学习采用支持向量机SVM学习理论。

较佳的,SVM学习中使用的核函数参数为高斯核函数。

较佳的,所述M取值为4或5。

本发明具有如下有益效果:

本发明公开了一种在智能手机上判断移动应用程序是否为恶意程序的方法,通过对该应用程序的联网通讯行为是否为恶意行为进行自动学习和判定,进而判断该应用程序是否是恶意的方法。该方法涉及移动到应用程序检测等领域,可以用来开发类似检测功能的应用程序,单独安装在智能手机上使用,也可以支撑第三方检测机构开发专门的应用程序恶意检测工具包等。

具体实施方式

大部分恶意程序都会有与之相伴的联网行为,会主动向远端服务器发送请求消息,一般通过HTTP协议或者其他私有协议,此类协议数据中一般包含了用户隐私数据或者木马控制等相关信息。本发明提供了一种基于机器学习理论的方法,能够很好的利用这些恶意程序发送的信息,利用支持向量机学习算法学习到相应的模型,对未知的移动程序的联网通信行为进行自动学习和判定,实现判定该应用程序是否为恶意程序的功能;

为解决上述问题,本发明提供了一种基于机器学习对应用程序的联网行为是否恶意进行判定,进而判定应用程序是否恶意的方法,该方法包括步骤如下:

S1、首先收集一定数量的正常移动程序和恶意移动程序,这两类应用程序可以通过类似中国反病毒网络联盟(anva.org.cn)等行业组织共享的黑名单和白名单应用程序等公开渠道获得;

S2、将智能手机连入网络,在该智能手机上依次安装和启动这些应用程序,并且通过人工操作触发该应用程序,在本地网络或者该智能手机的网络端口进行持续的网络监听,通过网络抓包获取到该应用程序的所有网络通讯内容,提取出该应用程序向远程服务器所发送的请求内容的所有数据信息;

S3、对每一个应用程序所捕获的所有发送请求信息,如HTTP请求内容,或者其他API内容等,按排列顺序依次首、尾相连,然后再进行如下处理:

S3.1如果该样本是恶意程序,样本的类别标签标记1;否则,标记为0;

S3.2对每个应用程序样本发送的请求数据,假设其长字符串长度为N,分别从第1,2,…N个字符开始向后截取长度为M的字符串单元,查找重复的字符串单元,并记录重复次数;所述M远小于长字符串长度N;M一般根据经验值选取4或者5;

S3.3将所有样本中的M元字符集元素作为特征空间,每个样本的特征的特征值为该特征对应的M元字符集在该样本中出现的次数

S4、将S3.3得到的每一个应用程序样本的所有不同的M元字符单元作为特征空间,M元字符在该样本中重复出现的次数作为特征值,根据S3的记录对样本进行正常或恶意的类别标记,形成一个样本。将S1中收集的所有应用程序对应的样本形成训练样本集,并采用支持向量机SVM学习理论进行二次分类学习训练,得到一个分类器;

SVM学习中使用的核函数参数为高斯核函数;

S5、对于某个需要判定的移动应用程序,先采用S2的方法,获得该移动应用程序所发送的请求内容的所有数据信息,再采用S3的方法,得到字符串单元和重复次数,最后利用S4得到的分类器判定该移动应用程序是否为恶意移动应用程序。

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1