一种基于SVM的被动操作系统识别方法、存储介质及设备技术方案

技术编号:26792679 阅读:25 留言:0更新日期:2020-12-22 17:08
本发明专利技术公开了一种基于SVM的被动操作系统识别方法、存储介质及设备,分析p0f指纹库规则,确定训练数据集和测试数据集并进行预处理;将训练数据集和测试数据集由数值变量转换为类别变量,进行OneHot编码;将OneHot编码后的训练数据集构建最优超平面,输入SVM算法模型,采用RBF核函数训映射指纹数据至高维空间,通过计算最优超平面构建SVM分类器,构造特征空间的分类超平面;取OneHot编码后中的测试数据集,经数据预处理后通过SVM算法模型得出预测结果,计算真实流量的测试精度;采集真实流量数据,筛选其中p0f指纹库中缺失的数据,将缺失数据加入训练数据集,重新训练后得到真实流量增量训练后的SVM分类器,完成识别。本发明专利技术优化了操作系统识别的性能,提高了分类精度。

【技术实现步骤摘要】
一种基于SVM的被动操作系统识别方法、存储介质及设备
本专利技术属于计算机
,具体涉及一种基于SVM的被动操作系统识别方法、存储介质及设备。
技术介绍
网络信息安全问题在我国以及全球日趋严峻,并且有持续增长的趋势,已经威胁到人民和国家的利益。在网络安全领域,无论是互联网的攻击还是防护中,对信息的采集和分类都至关重要,这其中远程主机的系统类型通常是黑客们的首要出发点。这是由于某些类型的操作系统有着众所周知的漏洞可以被利用,因此绝大多数的漏洞都是从识别操作系统的类型出发。而网络安全的防护同样需要对主机操作系统类型的识别,以便进行伪造等防护来对用户进行保护。操作系统的类型及版本在其中扮演着举足轻重的地位。因此准确,快速的操作系统识别的研究对网络安全有着重大意义。Medeiros提出利用TCP协议头部的初始序号来识别操作系统,利用了不同操作系统对建立连接时的初始序号生成和增长模式的不同,该方法需要观测大量的数据包(至少100k),实用性受限,错误率较高。刘英等提出基于TCP/IP协议栈中的TCP选项的操作系统识别方法,分析了不同操作系统对TCP可选项响应顺序和响应数据的差异,但是该方法不能有效识别未知指纹,正确率有待提高。现阶段的大多数操作系统识别方式,存在以下问题:大多数为主动操作系统识别方式,依赖于主动探测所得到的数据包,其缺点是容易被监测工具检测发现,致使探测结果不准确;现有的操作系统识别方式都是基于指纹库的识别方式,对指纹库中已有的操作系统指纹进行精确匹配,给出识别的操作系统类型,而无法对指纹库中不存在的未知的操作系统指纹给出识别。已有的将机器学习引入到未知操作系统识别中来的方法,虽然很好的解决了基于指纹库的难以识别未知指纹的问题,但在识别的准确率和速率上有待提升;当前被动操作系统识别所依赖的指纹库,存在更新迟滞的问题,缺乏对不断改变的互联网环境的同步更新。
技术实现思路
本专利技术所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于SVM的被动操作系统识别方法、存储介质及设备,以构造隐蔽性强、识别效果好的被动操作系统识别模型。本专利技术采用以下技术方案:一种基于SVM的被动操作系统识别方法,包括以下步骤:S1、分析p0f指纹库规则,确定训练数据集和测试数据集;S2、对步骤S1确定的训练数据集和测试数据集进行预处理;S3、将步骤S2预处理后的训练数据集和测试数据集由数值变量转换为类别变量,再进行OneHot编码;S4、采用Gauss核函数,以步骤S3中OneHot编码后的训练数据集构建最优超平面,输入SVM算法模型,采用RBF核函数训映射指纹数据至高维空间,通过计算最优超平面构建SVM分类器,构造特征空间的分类超平面;S5、取步骤S3中OneHot编码后中的测试数据集,经数据预处理后通过SVM算法模型得出预测结果,计算真实流量的测试精度;S6、采集步骤S5的真实流量数据,然后经步骤S2和S3处理后,筛选其中p0f指纹库中缺失的数据,将缺失数据加入训练数据集,经步骤S4重新训练后,得到真实流量增量训练后的SVM分类器,通过SVM分类器完成识别。具体的,步骤S1中,选取指纹库的特定字段N维并筛选适用现阶段网络环境的指纹数据,加上操作系统类别标记后作为训练数据集;通过流量采集工具在互联网网关分时段采集真实流量数据包,存储为.pcap格式作为测试数据集。具体的,步骤S2具体为:S201、将步骤S1得到的N维数据进行量化操作,将每一维度去重后取出,按照数字顺序排列,将排序后的数据按照其总量n量化成从0-n维数据;S202、将pcap数据包采用python解析提取对应指纹字段,采用量化方式将所有解析后的指纹量化。具体的,步骤S4中,采用Gauss核函数构建最优超平面如下:其中,X为N维输入空间的向量,Xp为除X外的任意其他样本,σ为样本方差。具体的,步骤S5中,采用同一IP多条预测结果少数服从多数的原则进行最终预测结果判定。本专利技术的另一个技术方案是,一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行所述的方法中的任一方法。本专利技术的另一个技术方案是,一种计算设备,包括:一个或多个处理器、存储器及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为所述一个或多个处理器执行,所述一个或多个程序包括用于执行所述的方法中的任一方法的指令。与现有技术相比,本专利技术至少具有以下有益效果:本专利技术提出一种基于SVM算法的操作系统识别方法,针对网络安全领域操作系统识别率低的问题,提出一种结合机器学习的方法,即SVM,通过提取p0f指纹库的指纹数据,训练操作系统模型,并通过真实环境采集的流量优化模型,达到提高操作系统识别准确率的目的,增量训练的方式解决了p0f指纹库长期未优化导致的指纹数据更新度不够的问题。进一步的,p0f拥有丰富的操作系统指纹库,内部包含上千种已知的指纹特征,提取p0f指纹库可得到大量的操作系统匹配指纹,将其转化为向量,以便于算法的识别训练。进一步的,SVM算法要求特征数据为数值化变量,而实际指纹中,特征数据基本都是类别变量,因此采取Onehot编码将类别变量转化为数值编码,方便SVM识别训练。进一步的,SVM算法作为机器学习的十大算法之一,在许多领域已经表现了很好的分类效果,最重要的是,对于我们的数据来源,由于操作系统底层实现原理的区别,不同类别标签指纹样本数据差别不大,存在过拟合风险,而SVM算法具有良好的对抗过拟合的特性,使得SVM算法非常适合我们的数据特点,进而表现出较好的分类效果。进一步的,由于模拟数据来源为p0f指纹库,且p0f长期未更新指纹库,通过对不含噪音的真实流量的增量学习,可以扩充现有网络环境中例如Windows10等重要操作系统。综上所述,本专利技术采用SVM算法,极大的优化了操作系统识别的性能,提高了分类精度。下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。附图说明图1为本专利技术的应用场景图;图2为本专利技术实现框架图;图3为本专利技术方法的流程图;图4为本专利技术的识别精度图;图5为通过增量训练优化精度对比图。具体实施方式请参阅图1,本专利技术提供了一种基于SVM的被动操作系统识别方法,结合SVM(SupportVectorMachine)算法,通过对p0f指纹库以及扩充指纹的训练,提高了识别精度和效率的同时,具备较强的隐蔽性;此外,采集流量扩充指纹库的过程,扩充了大量Windows10系统指纹和部分Windows7系统指纹,更加适应真实网络环境。请参阅图3,本专利技术一种基于SVM的被动操作系统识别方法,包括以下步骤:S1、数据的收集阶段通过分析p0f指纹库的具体规则,按照p0f的操作系统识别规则即字符匹配的方式,选取指纹本文档来自技高网
...

【技术保护点】
1.一种基于SVM的被动操作系统识别方法,其特征在于,包括以下步骤:/nS1、分析p0f指纹库规则,确定训练数据集和测试数据集;/nS2、对步骤S1确定的训练数据集和测试数据集进行预处理;/nS3、将步骤S2预处理后的训练数据集和测试数据集由数值变量转换为类别变量,再进行OneHot编码;/nS4、采用Gauss核函数,以步骤S3中OneHot编码后的训练数据集构建最优超平面,输入SVM算法模型,采用RBF核函数训映射指纹数据至高维空间,通过计算最优超平面构建SVM分类器,构造特征空间的分类超平面;/nS5、取步骤S3中OneHot编码后中的测试数据集,经数据预处理后通过SVM算法模型得出预测结果,计算真实流量的测试精度;/nS6、采集步骤S5的真实流量数据,然后经步骤S2和S3处理后,筛选其中p0f指纹库中缺失的数据,将缺失数据加入训练数据集,经步骤S4重新训练后,得到真实流量增量训练后的SVM分类器,通过SVM分类器完成识别。/n

【技术特征摘要】
1.一种基于SVM的被动操作系统识别方法,其特征在于,包括以下步骤:
S1、分析p0f指纹库规则,确定训练数据集和测试数据集;
S2、对步骤S1确定的训练数据集和测试数据集进行预处理;
S3、将步骤S2预处理后的训练数据集和测试数据集由数值变量转换为类别变量,再进行OneHot编码;
S4、采用Gauss核函数,以步骤S3中OneHot编码后的训练数据集构建最优超平面,输入SVM算法模型,采用RBF核函数训映射指纹数据至高维空间,通过计算最优超平面构建SVM分类器,构造特征空间的分类超平面;
S5、取步骤S3中OneHot编码后中的测试数据集,经数据预处理后通过SVM算法模型得出预测结果,计算真实流量的测试精度;
S6、采集步骤S5的真实流量数据,然后经步骤S2和S3处理后,筛选其中p0f指纹库中缺失的数据,将缺失数据加入训练数据集,经步骤S4重新训练后,得到真实流量增量训练后的SVM分类器,通过SVM分类器完成识别。


2.根据权利要求1所述的基于SVM的被动操作系统识别方法,其特征在于,步骤S1中,选取指纹库的特定字段N维并筛选适用现阶段网络环境的指纹数据,加上操作系统类别标记后作为训练数据集;通过流量采集工具在互联网网关分时段采集真实流量数据包,存储为.pcap格式作为测试数据集。


3.根据权利要求1...

【专利技术属性】
技术研发人员:范建存陈浩男罗新民
申请(专利权)人:西安交通大学
类型:发明
国别省市:陕西;61

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

1