本发明涉及一种基于svm机器学习的暗网流量识别模型的建立方法。
背景技术:
匿名网络(暗网)流量的分析与控制,特别是流量检测当前正处于探索研究阶段,目前并没有一种方法能够有效检测所有的匿名网络流量,有的方法可能仅对某种匿名网络有效,甚至仅对于某个版本有效,因此匿名网络流量的检测是一个永恒的研究课题,需要不断的跟进研究,以应对匿名网络的不断升级变化,而提高匿名网络流量检测的准确率,关键在于流量识别模型建立的准确性上。本方法采用机器学习的方法,尽量准确的建立一个匿名网络流量识别的数学模型,试图将由于匿名网络的升级变化给检测带来的影响降到最低,可以较准确的检测出匿名网络的流量。
技术实现要素:
为了克服现有技术的上述缺点,本发明提供了一种基于svm机器学习的暗网流量识别模型的建立方法,旨在为匿名网络的流量识别建立一个动态变化而准确的数学模型。
本发明解决其技术问题所采用的技术方案是:一种基于svm机器学习的暗网流量识别模型的建立方法,包括如下步骤:
步骤一、构建基于svm的机器学习的流量检测模型;
步骤二、对流量检测模型中的参数进行机器学习,得到纯净匿名流量和纯净非匿名流量的四个特征值;
步骤三、将纯净匿名流量和纯净非匿名流量的四个特征值带入到流量检测模型中进行运算,得到流量检测模型的参数。
与现有技术相比,本发明的积极效果是:
通过本发明方法,可以非常准确地刻画出匿名网络数据流量识别的数学模型,应用于匿名网络数据流量检测中,检测准确率高,运算简单高效,并且当匿名网络升级之后,由于该方法采用的是基于机器学习的算法,因此只要针对升级后的匿名网络重新进行学习,便可以检测出新的匿名网络数据流量。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1为基于svm的流量检测模型原理图。
具体实施方式
一种基于svm机器学习的暗网流量识别模型的建立方法,包括如下步骤:
步骤一、模型建立
匿名网络流量的检测均是在建立数学模型的基础上实施的,但目前大多数的检测模型可能仅对某种匿名网络有效,甚至仅对于某个版本有效,为了解决这一难题,有效应对匿名网络的不断升级变化,提高匿名网络流量检测的准确率,需要建立一种新型的匿名网络流量检测模型。
本方法中,检测模型采用基于svm的机器学习的流量检测模型,匿名网络流量检测模型如图1所示:图中x为输入的特征向量,特征的数量为d;xn为采集的样本,是d维向量;yn为期望输出的值(1,-1),对应是或不是相应的匿名流量。该模型用数学表达式可以等价表示为:
y=kx+b
其中,k、b为匿名网络流量识别模型的参数,k为d维的权值向量,b为偏置量,在机器学习阶段需要通过大量的x和y的输入计算出该k和b的值,一旦完成匿名网络流量识别模型建立即可对待测流量进行检测,当y>0时,可判断待测流量为对应的匿名流量,当y<0时,可判断待测流量不是匿名流量。
步骤二、参数确定
流量检测模型选定后,需要对模型中的参数进行机器学习以确定其参数值。机器学习的全过程中将分别学习对应匿名网络纯净的匿名网络流量和纯净的非匿名网络流量(背景流量)的四个特征,针对收集到的所有流量按hostprofile格式重新进行分类,一个主机一个pacp文件,并以下述四个特征值进行匿名网络流量识别的数学模型参数的自学习,这四个特征分别是:udp连接数、翻墙权值、udp流信息熵、流量中ping-pong相似报文出现频数。它们的定义和计算方法如下:
(一)udp连接数:单位时间内每个pcap文件不同udp连接数:
计算每个hostprofie(pcap)文件中总共的不同ip地址数量k,然后使用k除以hostprofile时间t,得到该特征值;
(二)翻墙权值:对亚马逊服务器、动态网等敏感域名解析的次数乘以权值:
维护一个敏感dns查询列表,不同的域名分配不同的权值,如果hostprofile中存在访问敏感dns的查询,则增加相应的翻墙权值;
(三)udp流信息熵:平均每个hostprofile中udp流信息熵大小:
对hostprofile中的每个udp流进行信息熵计算并求和,然后除以udp流的总数,信息熵的定义为
(四)相似报文出现频数:ping-pong相似报文出现次数:
统计hostprofile中连续数据包相似个数,如果相似则次数加1。
机器学习完毕,将学习到的纯净匿名流量和纯净非匿名流量的四个特征值反复带入到匿名网络流量识别模型中进行运算,最后得到匿名网络流量识别模型中的参数k和b,模型建立完成。
步骤三、模型验证
构建一个freegate的匿名网络,在该匿名网络环境中分别抓取足够多的freegate匿名流量和非freegate的背景流量,针对某一台主机分别计算出每个流量的四个特征:udp连接数、翻墙权值、udp流信息熵、流量中ping-pong相似报文出现频数,然后带入到流量检测的数学模型中进行运算,计算出模型中的参数k和b,该匿名网络环境的流量检测模型即构建完成。
利用已构建的匿名网络流量检测模型在该freegate匿名网络环境中即可实时检测到匿名网络的流量数据。在机器学习过程中,学习的时间越长,获取的流量数据越多,构建的流量检测模型越精确,后续的流量检测也就越准确。