监测终端流量的方法以及系统与流程

文档序号:16514692发布日期:2019-01-05 09:33阅读:302来源:国知局
监测终端流量的方法以及系统与流程
本发明涉及计算机
技术领域
,具体来说,涉及一种监测终端流量的方法以及系统。
背景技术
:目前对终端应用的安全性监测大多是侵入式监测,例如,终端安装监测客户端上传应用特征码到服务器端分析,直接对应用安装包分析,对终端应用程序提取权限信息进行分析等。但是,侵入式监测具有一定的局限性,例如,对终端中应用的流量使用情况难以全方位监测,并且必须要在被监测终端中安装客户端。针对现有终端中不良软件难以监测和识别的问题,目前尚未提出有效的解决方案。技术实现要素:针对相关技术终端中不良软件难以监测和识别的问题,本发明提供了一种监测终端流量的方法以及系统。本发明的技术方案是这样实现的:根据本发明的一个方面,提供了一种监测终端流量的方法,包括:s1,根据特征向量采用id3算法建立决策树模型;s2,根据决策树模型的规则对终端的流量数据进行分类。根据本发明的实施例,步骤s1包括:得到多个维度的特征向量与最终决策的映射关系;其中,通过熵来判别每个维度的向量对最终决策的影响,根据得到的熵得到每个维度的向量的信息增益。根据本发明的实施例,步骤s1还包括:根据信息增益建立决策树模型。根据本发明的实施例,步骤s1还包括:在决策树模型的各个分支节点处,通过信息增益来选择特征向量。根据本发明的实施例,特征包括二级链接数特征、访问时间频次特征、上下行流量特征和总数据流量特征之中的任意一种或多种。根据本发明的实施例,在步骤s1之前还包括:获取终端产生的流量数据;对流量数据进行整理形成建立决策树模型所需的特征向量。根据本发明的另一方面,提供了一种监测终端流量的系统,包括:模型建立模块,用于根据特征向量采用id3算法建立决策树模型;分类模块,用于根据决策树模型对终端的流量数据进行分类。本发明通过采用非侵入式获取终端流量数据,根据特征向量采用id3算法建立决策树模型,再根据此决策树规则对流量数据进行分类。实验结果表明:该方法对终端流量类型的识别准确率在92%以上。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是根据本发明实施例的监测终端流量的方法的流程图;图2是根据本发明实施例的终端流量分析监测结构图;图3是根据本发明实施例的决策树模型图;图4是根据本发明实施例的样本数据的决策树模型图;图5是根据本发明实施例的分类结果正确率与错误率折线图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。如图1所示,本发明提供了一种监测终端流量的方法,包括以下步骤。第一阶段,数据提取。步骤s10,数据提取。也就是获取终端产生的流量数据。对终端所连接的无线网络出口处产生的流量数据抓包,并将格式化后的数据入库进行后续建模和分类操作,对分类后的数据可视化并对对异常流量进行警告。具体流程如图2所示。步骤s20,数据预处理。即,对流量数据进行整理形成建立决策树模型所需的特征向量。具体的,在建模前,先将数据库中所存的数据按照建模所用的向量来进行处理,根据请求来源的mac地址和请求的目标ip地址,进行整理。整理出上行流量总和,下行流量总和,总数据流量,访问的地址所包含的二级链接数等数据。并将数据整理成数据挖掘可读取的格式。其中数据库中的部分数据如表1所示:表1数据库部分样本数据编号所访问ip二级链接访问次数上行流量下行流量11.189.72.17822767204402101.226.129.199205782236763110.246.47.2212687304123.125.80.744211408979………………第二阶段,决策树的建立。步骤s30,提取训练特征向量。在一个实施例中,特征包括二级链接数特征、访问时间频次特征、上下行流量特征和总数据流量特征之中的任意一种或多种。对于页面二级链接数特征:正常软件和木马软件所请求路径的返回结果存在区别,可以根据二者的不同点进行区分,正常网页浏览的页面中一般也包含多级页面,木马软件访问路径与上传下载相似,一般无二级链接或较少。对于访问时间频次特征:用户通过app访问这些页面时在页面停留的时间较长,而且有很大的概率接着点击访问该页面上的链接。这样用户访问该地址的时间阈值就较大,而木马软件访问url的时间阈值则相对较小。对于上下行流量特征:终端中正常应用在访问网络时一般下行流量会大于上行流量。木马软件则是由服务器进行控制。在远程控制端发送指定的命令到终端后,终端中的木马软件进行响应处理,将命令对应需要得到的数据上传。上行流量一般会大于下行流量。对于总数据流量特征:对于恶意广告或者木马应用来说,一般在访问到与之相关的站点后直接进行流量耗费巨大的应用下载任务。其中就可能包含木马应用。步骤s40,根据特征向量采用id3算法建立决策树模型。在一个实施例中,步骤s40包括:得到多个维度的特征向量与最终决策的映射关系。其中,通过熵来判别每个维度的向量对最终决策的影响,根据得到的熵得到每个维度的向量的信息增益。在一个实施例中,步骤s40还包括:根据信息增益建立决策树模型。在一个实施例中,步骤s40还包括:在决策树模型的各个分支节点处,通过信息增益来选择特征向量。具体来说,如表2所示,在抓取到的数据中可以发现一个规律,当url包含的二级链接数较高的时候,访问时间的阈值也较大,单位时间内的访问频率也较高。所以这里对url包含的二级链接数、上行流量与下行流量比、总数据流量进行分析。表2进行分析的数据项url二级链接数上下行流量比总数据流量可能来源多小小正常app多小大正常app多小大恶意app多大大正常app少小小正常app少小大恶意app少大大木马app少大小木马app将数据分为两块,x={url二级链接数,上下行流量比,总数据流量},y={可能来源}。现阶段的目的是建立一颗决策树,让计算机自动去寻找最合适的映射关系,即:y=f(x),x称之为样本,y称之为结果(行为/类)。样本是多维的,x={x1,x2,...xn},这里x={url二级链接数,上下行流量比,总数据流量},通过这些不同维度的观测记录数据,和应对的不同结果,找到规律(映射关系)。x的多维不同的数据影响着y的最终决策。x的多维数据对决策的影响也不相同,优先级高的对决策的影响也相对较大。影响程度以及对正确结果影响的可信度可以通过训练样本来评判。通过信息论的熵(entropy)来衡量样本的可信度。用来测量的混乱程度的熵的公式为:在公式2中,设s是s个数据样本的集合。假定类标号向量具有m个不同值,定义m个不同的类ci(i=1,2...m)。设si是ci类中的样本数。这样公式2可以给定样本分类所需的期望信息。其中pi是第i个样本向量属于ci的概率,并用si/sj估计。在公式1中,设向量a具有v个不同的值{a1,a2,…,av},可以用向量a将s划分成v个子集{s1,s2,…,sv},其中sj包含s中这样一些样本,它们在a上具有值aj。公式2给出的是根据由a划分成子集的熵或期望信息。公式中充当第j个子集的权,并且等于子集(即a值为aj)中的样本个数除以s中的样本总数。熵值越小,子集划分的纯度越高。其中,是sj中的样本属于ci类的概率。当信息一致,所有样本都属于一个类别i,那么熵为0,如果样本完全随机,那么熵为1,表明这个特征向量对这种结果状态的预测没有帮助。下面计算上面数据项中的每个维度的数据对结果的影响。通过计算熵来判别。其中每个维度对结果的影响如下:e(url二级链接数多)=-(3/4)*log(3/4)-(1/4)*log(1/4)=0.2442e(url二级链接数少)=-(1/4)*log(1/4)=0.2442e(url二级链接数少)=-(1/4)*log(1/4)-(1/4)*log(1/4)-(2/4)*log(2/4)=0.4515e(上下行流量比小)=-(3/5)*log(3/5)-(2/5)*log(2/5)=0.2922e(上下行流量比大)=-(1/3)*log(1/3)-(2/3)*log(2/3)=0.2764e(总数据流量小)=-(3/4)*log(3/4)-(1/4)*log(1/4)=0.2442e(总数据流量大)=-(2/5)*log(2/5)-(2/5)*log(2/5)-(1/5)*log(1/5)=0.4581得到熵后,每个维度向量的可信度再用信息增益来衡量。在构造决策树模型的过程中使用是贪婪算法,由上到下,递归地构造树。在刚开始构造树时,树根处是所有的训练样本,训练样本的向量是可分类的,如果是连续值的话,就要提前对其进行离散化。然后根据选择的向量,对样本进行递归式的划分。在选择测试向量的时候参考统计度量值如信息增益值。同样地在决策数的各个分支节点选择向量时,也要采用和决策树选择向量一样用信息增益等方法来选择向量。采用信息增益来选择向量。当树的某个节点上的样本都属于相同的类,所有的向量都用到了,而且当前没有样本了时,停止划分树。gain(sample,action)=e(sample)-sum(|sample(v)|/sample*e(sample(v)))下面计算各个向量的信息增益:gain(url二级链接数)=e(s)-(4/8)*e(url二级链接数多)-(4/8)*e(url二级链接数少)=1-(4/8)*0.2442-(4/8)*0.4515=0.6521gain(上下行流量比)=e(s)-(5/8)*e(上下行流量比小)-(3/8)*e(上下行流量比大)=1-(5/8)*0.2922-(3/8)*0.2764=0.7137gain(总数据流量)=e(s)-(3/8)*e(总数据流量小)-(5/8)*e(总数据流量大)=1-(5/8)*0.2442-(3/8)*0.4581=0.6756接着,通过信息增益结果进行决策树的训练。从树根往下依次用最大和最小的进行构造决策树,上面计算出来各个维度的信息增益情况为:上下行流量比>总数据流量>url二级链接数。根据计算的信息增益结果建立的决策树如图3所示。s50,根据决策树模型的规则对终端的流量数据进行分类。以下对本发明的监测终端流量的方法的技术效果进行说明。采用id3算法,对1000组样本进行训练,建立决策树规则。选取部分样本数据展示,如表4所示。表中的数据向量和向量类别如表3所示:表3数据向量名称和类别表4训练样本数据(1)ln表示网络请求中包含的二级链接数,mln表示网络请求中包含的二级链接数较高,将4个二级链接以上作为二级链接数较高的情况。fln表示二级链接数较少,将1到4个二级链接数作为二级链接数较少的情况。nln表示无二级链接的情况。(2)tp表示上行流量与下行流量的比例,ltp表示上行流量与下行流量比例低,以上下行流量比例在0.5以下的作为比例低的情况,以高于该值以上的作为比例高的情况,表示为htp,当下行流量为0时,标记为mtp。(3)vf表示单位时间的访问频率,hvf表示单位时间的访问频率高,将每小时访问次数4次及以上作为访问频率高,次数低于4次表示访问频率低,标记为lvf。(4)tt表示总的数据流量,也就是上行流量与下行流量之和。ty表示流量类型。流量总量为超过训练样本平均流量总量1.5倍的情况作为流量多,否则作为流量少的情况。(5)ty表示该流量类型,sf表示正常流量,dg表示非正常流量。以weka为工具,对训练样本数据采用id3算法建立决策树规则,进行训练,所得到的决策树模型如图4所示。本发明同时也采用了j48算法对训练样本数据进行构建的决策树的实验,所得到的决策树模型与图4所示相同。根据上面得到的决策树规则,系统对后续2595条实例数据进行分类,同时监测根据决策树分类的准确率。采用更多不同数量的实例数据进行分类,应用决策树模型对流量进行决策,得到的结果如下面表5与表6所示:表5id3分类效果评价实例总数正确分类数量正确率平均绝对误差均方根误差相对绝对误差50047094%0.09690.223222.6265%100094094%0.10130.226723.0163%1500139693.07%0.11390.239726.6148%2000186193.05%0.11340.238527.122%2500231892.72%0.11680.242127.4652%表6j48分类效果评价实例总数正确分类数量正确率平均绝对误差均方根误差相对绝对误差50045090%0.10.316223.3568%100089089%0.110.331724.9841%1500125383.53%0.16470.405838.4817%2000167883.9%0.1610.401238.5094%2500207482.96%0.17040.412840.055%由监测测试效果可以看出,随着监测规模的扩大,应用决策树模型分类的正确率大体维持在一个较为平稳的水平。有id3算法决策分类的正确率保持在92%以上。由于正常应用产生流量的行为和木马病毒应用产生流量的行为在某些情况下会出现相似的情况,所以进行分类时不可避免的会出现一些误报,由以上测试结果显示,可以将错误率控制在8%以下。图5将id3决策树算法,与j48算法在本发明中的分类结果进行了一个对比。如图5所示,以上算法均能在监测规模扩大时将监测的正确率保持在一个较高的范围内,而id3算法更适用于监测系统,准确率更高,同时稳定性也更好。根据本发明的实施例,还提供了一种监测终端流量的系统,包括:模型建立模块,用于根据特征向量采用id3算法建立决策树模型;分类模块,用于根据决策树模型对终端的流量数据进行分类。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1