CN112202718A - 一种基于XGBoost算法的操作系统识别方法、存储介质及设备 - Google Patents
一种基于XGBoost算法的操作系统识别方法、存储介质及设备 Download PDFInfo
- Publication number
- CN112202718A CN112202718A CN202010917865.XA CN202010917865A CN112202718A CN 112202718 A CN112202718 A CN 112202718A CN 202010917865 A CN202010917865 A CN 202010917865A CN 112202718 A CN112202718 A CN 112202718A
- Authority
- CN
- China
- Prior art keywords
- data
- algorithm
- fingerprint library
- decision tree
- operating system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 73
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000003860 storage Methods 0.000 title claims abstract description 12
- 238000003066 decision tree Methods 0.000 claims abstract description 39
- 238000012549 training Methods 0.000 claims abstract description 38
- 238000012360 testing method Methods 0.000 claims abstract description 17
- 238000005192 partition Methods 0.000 claims description 7
- 238000005070 sampling Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 claims description 5
- 238000007635 classification algorithm Methods 0.000 claims description 4
- 238000013139 quantization Methods 0.000 claims description 4
- 238000012795 verification Methods 0.000 claims description 4
- 238000010276 construction Methods 0.000 claims description 2
- 230000001502 supplementing effect Effects 0.000 claims description 2
- 238000001514 detection method Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000005457 optimization Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000002790 cross-validation Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 241000282414 Homo sapiens Species 0.000 description 1
- 206010033799 Paralysis Diseases 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于XGBoost算法的操作系统识别方法、存储介质及设备,首先基于第三方指纹库P0f,对其特征维度进行优化,去除模糊匹配与精确匹配导致的重复性问题;然后抓取真实流量中数据解析生成测试集数据;其次对Windows7和Windows10数据增量训练提高识别效率;再次,运用C4.5决策树算法对增量前后的数据进行验证,结果显示增量训练后识别准确率大大提升;最后引入XGBoost算法,运用分层架构框架识别未知指纹,提高识别准确率,降低误报、漏报率。
Description
技术领域
本发明属于计算机技术领域,具体涉及一种基于XGBoost算法的操作系统识别方法、存储介质及设备。
背景技术
网络的发展壮大在方便人们资源共享和信息通信的同时,也带来了越来越多的网络安全问题。小到个人隐私泄露,大到服务器瘫痪、国家基础设施出现问题威胁人类安全。若想有效地阻止恶意攻击者对网络的攻击,用户就需要提前使用漏洞扫描器对系统中存在的安全隐患进行检测并及时地采取相应的解决措施。一些操作系统的类型和版本存在一些众所周知的安全漏洞,网络攻击者就可以将这些安全漏洞作为网络攻击的入手点,而防护方则可以通过提前获取这些漏洞打漏洞补丁进行防护。故操作系统类型和版本是网络攻防的首要信息,其应用场景如图1所示。
当前的研究大多数为主动操作系统识别方式,依赖于主动探测所得到的数据包,主要的缺点是容易被监测工具检测发现,致使探测结果不准确。而被动检测工具最大的优点就是在主动检测工具检测失败的情况下能够正常工作,这是由于它是根据对远程主机发送过来的数据包进行解析,从而判断远程主机的操作系统,不会主动发送数据包给远程主机,因此不会耗费额外流量导致网络堵塞,也不会由于防火墙、端口关闭等原因检测失败。其中,常用的被动检测工具是P0f。P0f是一个操作系统识别指纹库,传统的仅依赖于指纹库的识别方式,是对指纹库中已有的操作系统指纹进行精确匹配,给出识别的操作系统类型,而无法对指纹库中未知操作系统指纹进行识别。现有的引入机器学习算法的方法很好地解决了基于指纹库难以识别未知指纹的问题,但未对指纹项进行精简,算法模型也不够完善,当指纹库中指纹样本数量较大时,存在识别效率不高的问题。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于XGBoost算法的操作系统识别方法、存储介质及设备,采用被动方式识别操作系统,解决了主动检测可能检测失败的问题;抓取真实流量中数据优化指纹库,提高识别效率;运用集成学习XGBoost算法,引入梯度下降的思想,提高识别准确率和速率。
本发明采用以下技术方案:
一种基于XGBoost算法的操作系统识别方法,包括以下步骤:
S1、设计基于P0f的指纹库,通过解析网络连接中的TCP握手数据包将P0f指纹库中特征维度优化,再将属性值向量化,生成训练集数据;
S2、解析真实流量数据,依据P0f指纹库中特征维度进行特征选择并将属性值量化,生成测试集数据;
S3、采集经过网关的Windows7和Windows10数据流量并补充至步骤S1设计的指纹库中,进行增量训练;
S4、将步骤S1中增量前训练的数据和步骤S2中的测试集数据输入决策树算法模型得出操作系统识别结果,然后将步骤S3中增量后训练的数据与步骤S2中真实流量测试数据输入决策树算法模型得出识别结果;
S5、利用XGBoost算法,将步骤S3增量训练后的数据和步骤S2的测试集数据输入XGBoost算法得出结果与步骤S4的识别结果比较后得出最终结果,完成操作系统识别。
具体的,步骤S1中,P0f指纹库的TCP签名数据共有8个维度,舍去指纹库中olen和pclass维度,将维度wsize和scale拆分为两个维度,将所有维度分别从2开始量化,其中1为缺失值,在指纹库中表现形式为*,代表任意匹配的意思,忽略这个维度数据,根据其他几个维度进行匹配。
具体的,步骤S2中,将真实流量数据依据P0f指纹库中7个维度特征进行解析,然后进行量化并去重,生成测试集数据。
具体的,步骤S3中,从网关中抓取windows7和windows10的包,解析后生成指纹库7个特征对应的形式;然后依据指纹库向量化规则进行量化后再去重,将结果补充到指纹库生成的训练集中。
具体的,步骤S4中,引入信息增益比的概念,从候选划分属性中找出信息增益比高于平均水平的属性,再从中选择增益比最高的,递归完成树的构建,树的每个叶子结点即为最终识别结果。
具体的,步骤S5中,将XGBoost算法识别模型分为类别识别层、主版本识别层和详细版本识别层,将预处理后数据输入训练样本集,然后对训练样本采样生成采样子集,运用采样子集,根据属性划分规则建立弱学习器决策树,然后利用建立的弱学习器决策树进行迭代,每次添加一棵新的弱学习器决策树,对上一次预测的残差进行拟合;最终得到k棵弱学习器决策树,将需要预测的样本落到每棵弱学习器决策树对应的叶子节点,将叶子节点分数相加即为预测值。
进一步的,采用准确率、真正率和假正率对步骤S4和步骤S5的识别结果进行评价,定义预测正确的结果占总样本的百分比为准确率;定义样本正确判断所占的比例值为真正率,定义分类算法把其它应用类型错误判断为实际类型的比例为假正率,利用十折交叉验证进行准确性验证,然后采取真实数据判断识别效果。
本发明的另一技术方案是,一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行根据所述的方法中的任一方法。
本发明的另一技术方案是,一种计算设备,包括:
一个或多个处理器、存储器及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为所述一个或多个处理器执行,所述一个或多个程序包括用于执行所述的方法中的任一方法的指令。
与现有技术相比,本发明至少具有以下有益效果:
本发明针对传统的主动探测容易被监测工具检测发现,识别误报、漏报率高的问题,提出一种基于XGBoost算法的操作系统识别方法。本发明采用被动识别方式,解决了主动检测容易检测失败的问题;基于P0f指纹库,精简指纹库维度,并抓取真实流量中数据进行增量训练,提高识别效率;引入XGBoost机器学习算法,识别指纹库中未知指纹,误报、漏报率低,识别准确度高。
进一步的,为构造识别能力强、识别范围广的普遍适用性操作系统分类器,需要大量的样本数据,然而实际搭建各种操作系统环境不可行。因此,基于第三方指纹库来作为基础,对其特征维度进行优化,并对特征值量化,去除模糊匹配与精确匹配导致的重复性问题,即可较好的解决这个问题。
进一步的,运用Wireshark抓包工具抓取真实流量中数据,并根据指纹库中对应七个维度特征进行解析,同时依据指纹库中数据量化规则对真实流量数据进行量化,生成测试集数据。
进一步的,因为指纹库中Windows7指纹数据不完整,同时没有Windows10指纹数据,因此抓取某一时间段内经过网关的流量数据进行增量训练,补充指纹库中数据,提高识别精度。
进一步的,采用C4.5决策树算法对增量训练前后的数据分别输入算法模型进行预测,C4.5决策树算法相比于传统的ID3决策树算法,提出信息增益比的概念,解决了最佳划分属性选择时偏向样本数量较多的类的问题,结果显示,增量训练后模型识别精度大大提升。
进一步的,引入XGBoost算法,采用梯度提升的算法思想,不断的用树去迭代,每次添加一棵新的树,就是对上一次预测的残差进行拟合,最终得到k棵决策树,将我们想要预测的样本落到每棵树对应的叶子节点,将叶子节点分数相加即为我们想要得到的预测值;XGBoost算法运用集成学习的思想,大大提高识别速率与准确率。
综上所述,本发明去除模糊匹配与精确匹配导致的重复性问题;对Windows7和Windows10数据增量训练提高识别效率;提高识别准确率,降低误报、漏报率。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明的应用场景图;
图2为本发明的操作系统识别框架;
图3为本发明的流程图;
图4为本发明的识别三级分层结构图;
图5为本发明的XGBoost算法训练结构图;
图6为本发明的十折交叉验证系统准确率图;
图7为本发明的真实流量系统准确率图。
具体实施方式
本发明提供了一种基于XGBoost(eXtreme Gradient Boosting)算法的操作系统识别方法、存储介质及设备,依据TCP/IP协议,结合P0f指纹库,采用被动的操作系统识别方式,解决了主动检测可能检测失败的问题。由于指纹库中数据繁多,本发明根据实际需求,删减了指纹库中模糊匹配和精确匹配导致的指纹重复问题,简化了识别模型。同时引入XGBoost机器学习算法,改善了仅依赖于指纹库无法识别未知指纹的问题,采集Windows7和Windows10流量自动更新指纹库,解决了指纹库版本过低的问题,通过优化算法模型,提高识别准确率和速率。
请参阅图2,建模过程通过优化指纹库中特征维度,提高识别效率,算法模型采用集成学习的思想将许多基学习器集成在一起,形成一个强分类器,提高识别准确率。
请参阅图3,本发明一种基于XGBoost算法的操作系统识别方法,首先基于第三方指纹库P0f,对其特征维度进行优化,去除模糊匹配与精确匹配导致的重复性问题;然后抓取真实流量中数据解析生成测试集数据;其次对Windows7和Windows10数据增量训练提高识别效率;再次,运用C4.5决策树算法对增量前后的数据进行验证,结果显示增量训练后识别准确率大大提升;最后引入XGBoost算法,运用分层架构框架识别未知指纹,提高识别准确率,降低误报、漏报率;具体步骤如下:
S1、基于P0f的指纹库设计;
P0f的运行机制是通过解析网络连接中的TCP握手数据包分析远程主机的信息。P0f能够识别操作系统类型,是由于不同的操作系统类型,进行TCP连接发送SYN或SYN+ACK包时,虽然TCP包的头部信息结构一致,但是TCP选项字段信息不是固定的,这些数据会由于操作系统的不同而发生变化。
对于P0f中TCP通信,签名布局如下:
sig=ver:ittl:olen:mss:wsize,scale:olayout:quirks:pclass
P0f指纹库中TCP签名数据共有8个维度,其中olen和pclass这两个维度的值在指纹库中恒为0,因此将这两个维度舍去,同时将wsize和scale这个维度拆分为两个维度,实际用7个维度。这7个维度数据根据所有可能情况分别从2开始量化,其中1为缺失值,在指纹库中表现形式为“*”,代表任意匹配的意思,即忽略这个维度数据,根据其他几个维度进行匹配。
S2、解析真实流量数据;
抓取测试环境网关中数据流量,并依据P0f指纹库中7个维度特征进行解析,得到7个维度特征对应的属性值并量化去重,生成测试集数据。
P0f中TCP签名布局如下:
sig=ver:ittl:olen:mss:wsize,scale:olayout:quirks:pclass
选取指纹库中linux 3.11的指纹举例如下:
代表下面两行sig中字段均可匹配到Linux 3.11and newer。
label=s:unix:Linux:3.11and newer
sig=*:64:0:*:mss*20,10:mss,sok,ts,nop,ws:df,id+:0
sig=*:64:0:*:mss*20,7:mss,sok,ts,nop,ws:df,id+:0
获取到与linux3.11系统通信产生的TCP数据包解析得到:
如上表所示,Wsize=29200,Mss=1460,Wsize=Mss*20,与Wsize匹配,其余字段与第二行的sig直接匹配,因此所有字段吻合,匹配成功,抓取到的数据包是linux3.11。
S3、增量训练;
因为指纹库中没有Windows10的指纹数据,同时Windows7数据不够完整,故采集了经过网关的流量来补充指纹库数据,提高识别准确率。首先从网关中抓取windows7和windows10的包,解析后生成指纹库7个特征对应的形式;然后依据指纹库向量化规则进行量化后再去重,将结果补充到指纹库生成的训练集中。部分Windows7和Windows10增量指纹如下:
上面这7个字段指纹信息就对应Windows7和Windows10的增量指纹数据。
S4、输入决策树算法得出结果;
分别将增量前后的训练数据依据最佳信息增益比准则,先从候选划分属性中找出信息增益比高于平均水平的属性,再从中选择增益比最高的作为划分节点,递归下去生成决策树训练模型,然后将测试数据输入模型中,叶子结点的值就为最终识别结果。结果显示,增量训练后识别效果比增量训练前有了较大的提升。
决策树算法在其生成的过程中,分割方法即属性选择度量是关键。通过属性选择度量,选择出最好的分类样本的属性。
熵Ent(D)表示对数据集D进行分类的不确定性,条件熵Ent(D|A)表示在特征A给定的条件下对数据集D进行分类的不确定性。它们的差,即信息增益,就表示由于特征A而使得对数据集D的分类的不确定性减少的程度。
g(D,A)=Ent(D)-Ent(D|A)
信息增益依赖于特征,不同的特征往往具有不同的信息增益。信息增益大的特征具有更强的分类能力。
ID3算法的核心是在决策树各个节点上应用信息增益准则选择特征,递归地构建决策树,存在偏向于选择取值较多的特征的问题。
C4.5算法对ID3算法进行了改进,C4.5在生成过程中,用最大信息增益比来选择特征。
其中,n是特征A取值的个数,信息增益比通过引入一个被称作分裂信息的项来惩罚取值较多的特征。需要注意的是,信息增益比准则可对取值较少的属性有所偏好,因此,C4.5并不是直接选增益比最大的特征作为候选划分属性,而是使用一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益比最高的。C4.5算法还可以处理连续的数值特征,其思想是用二(多)分法将连续的数值特征离散化,对于每一种离散方案计算其信息增益比,选信息增益比最大的方案来离散连续的数值特征。
S5、输入XGBoost算法得出结果;
S501、分层结构设计;
请参阅图4,将XGBoost算法识别模型分为类别识别层、主版本识别层和详细版本识别层,层次分明、结构清晰,便于增加或删除节点。
S502、算法步骤;
XGBoost(Extreme Gradient Boosting)是集成学习Boosting算法的一种,作为一种提升算法,将许多基学习器集成在一起,形成一个强分类器。XGBoost也是梯度增强(Gradient Boosting)的一种实现形式,其基学习器既可以是树模型,也可以是线性分类器。与同样是树模型且为梯度提升的算法的GBDT相比,具备相同的梯度提升的思想,就是计算损失函数的负梯度在当前模型的值,作为残差的近似值,拟合一棵回归树。
XGBoost算法的训练结构如图5所示,首先将预处理后数据输入训练样本集,然后对训练样本采样生成采样子集,运用采样子集构建弱学习器决策树,不断的用树去迭代,每次添加一棵新的树,就是对上一次预测的残差进行拟合,最终运用结合策略得到k棵决策树,就形成了强学习器XGBoost。将想要预测的样本落到每棵树对应的叶子节点,将叶子节点分数相加即为得到的预测值。
XGBoost算法预测分数如下:
其中:
F={f(x)=wq(x)}(q:Rm→T,w∈Rt)
XGBOOST的目标函数如下:
目标函数分为两个部分,第一部分是预测值和真实值的差距;第二部分是正则化项,正则化项的目的是为了控制叶子节点的分数和叶子节点的个数,防止过拟合。
新的树拟合的是上一次预测的残差,所以生成t棵树后,预测的分数为
因此把目标函数改写成
需要一个ft去使得目标函数最小。XGBOOST的思想是利用ft的二阶泰勒展开式去近似目标函数,如下:
其中,gi为一阶导数,hi为二阶导数:
因为前面t-1棵树的预测分数和残差对目标函数的优化并不影响,因此可以直接去掉,化简为:
将上式展开,得到:
通过上式可以看出,找出最优解即为一个解二次方程的过程,则最优的ω和目标函数的公式为:
采用XGBoost算法,在确保精度的同时,大大提高泛化能力,但直接以操作系统详细版本为类标签进行训练,因为操作系统类别众多,往往需要大量的样本数据进行训练,通过调参或以数据驱动的方式丰富样本数据以提升模型精度往往需要重新全量训练,开销巨大,而操作系统本身具有层次性,包括主版本、详细版本,因此根据操作系统标签层次特性提出分层训练架构可以有效解决上述问题,另外通过分层,可平衡数据集,也使得各层级类别收束,各大类别的划分边界更为清晰,使得精度进一步提升。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中的描述和所示的本发明实施例的组件可以通过各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
(1)评价指标
为了衡量模型的泛化能力,本发明采用准确率、真正率和假正率来对模型进行评价。准确率的定义是预测正确的结果占总样本的百分比,虽然准确率可以判断总的正确率,但是在样本不平衡的情况下,并不能作为很好的指标来衡量结果。真正率(TPR,TruePositive Rate)指某类样本正确判断所占的比例值,能够反映出分类算法对此类应用的识别好坏,假正率(FPR,False Positive Rate)指分类算法把其它应用类型错误地判断为实际类型的比例,真正率和假正率分别在实际的正负样本中来观察问题。正因为如此,无论样本是否平衡,都不会被影响。
(2)十折交叉验证
为了保证算法的准确性,采用十折交叉验证,即将数据集分成10份,轮流将其中的9份作为训练数据,1份作测试数据,每次验证都会算出相应的准确率,用10次结果准确率的平均值作为算法分类的最终正确率。十折交叉验证系统准确率的结果如下表和图6所示。
优化后的XGBoost算法在准确率上比起优化前决策树算法和优化后决策树算法有了很大的提升。
(3)真实流量环境检测
为了评估算法在真实环境的识别能力,在某一时间段内对办公网共169台主机进行测试,与原始决策树和优化后的决策树相比,XGBoost算法分类器具有更好的识别准确率。真实环境系统准确率如下表和图7所示。
办公网操作系统主要是Windows和Linux操作系统,存活主机类型如下:
如上表所示,办公网常用的操作系统是Windows,其次是Linux,其他操作系统类型很少,这里不进行具体识别。其中Windows和Linux系统真假正率如下表所示:
从上表可以看出来,优化后的决策树和XGBoost算法比原始决策树算法真正率有了显著的提高,而假正率也有了显著的下降。其中,在Windows上体现的更为明显,这主要是因为增量训练的优化模型就是针对Windows操作系统的。
下面对办公网Windows存活主机数量进行统计:
可以看出来,Windows7和Windows10是Windows的主要使用版本。
下面对Windows详细版本真假正率做一个统计:
如上所示,Windows7在优化后,真正率有了显著提高,而假正率也显著下降。而对于Windows10系统来说,由于增量训练前,指纹库中不含有其指纹数据,因此原始决策树中不存在Windows10的真假正率。可以看出,在使用优化后的XGBoost算法对Windows10进行识别时,达到100%的识别真正率,效果颇佳。
对办公网Linux的存活主机类型数量统计如下:
如上表所示,Linux主版本是Linux2和Linux3,下面对其真假正率进行分析:
Linux2和Linux3在使用优化后决策树和优化后XGBoost算法后真正率有了递进式的提高,假正率也显著下降,Linux3真正率更是达到了100%,说明优化后XGBoost算法确实具有比较高的效率。
综上所述,本发明一种基于XGBoost算法的操作系统识别方法、存储介质及设备,使用增量训练后Windows7和Windows10的识别效果有了显著提高,优化后的XGBoost算法比原始决策树算法和优化后决策树算法在准确率、真正率上都有了显著提高,也大大降低了假正率。利用机器学习方法处理操作系统指纹分类问题是近年来操作系统识别一个新兴的研究热点,本文实现了基于XGBoost的操作系统识别模型,与优化前后的决策树算法进行比较,实验证明了该模型的有效性。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
Claims (9)
1.一种基于XGBoost算法的操作系统识别方法,其特征在于,包括以下步骤:
S1、设计基于P0f的指纹库,通过解析网络连接中的TCP握手数据包将P0f指纹库中特征维度优化,再将属性值向量化,生成训练集数据;
S2、解析真实流量数据,依据P0f指纹库中特征维度进行特征选择并将属性值量化,生成测试集数据;
S3、采集经过网关的Windows7和Windows10数据流量并补充至步骤S1设计的指纹库中,进行增量训练;
S4、将步骤S1中增量前训练的数据和步骤S2中的测试集数据输入决策树算法模型得出操作系统识别结果,然后将步骤S3中增量后训练的数据与步骤S2中真实流量测试数据输入决策树算法模型得出识别结果;
S5、利用XGBoost算法,将步骤S3增量训练后的数据和步骤S2的测试集数据输入XGBoost算法得出结果与步骤S4的识别结果比较后得出最终结果,完成操作系统识别。
2.根据权利要求1所述的方法,其特征在于,步骤S1中,P0f指纹库的TCP签名数据共有8个维度,舍去指纹库中olen和pclass维度,将维度wsize和scale拆分为两个维度,将所有维度分别从2开始量化,其中1为缺失值,在指纹库中表现形式为*,代表任意匹配的意思,忽略这个维度数据,根据其他几个维度进行匹配。
3.根据权利要求1所述的方法,其特征在于,步骤S2中,将真实流量数据依据P0f指纹库中7个维度特征进行解析,然后进行量化并去重,生成测试集数据。
4.根据权利要求1所述的方法,其特征在于,步骤S3中,从网关中抓取windows7和windows10的包,解析后生成指纹库7个特征对应的形式;然后依据指纹库向量化规则进行量化后再去重,将结果补充到指纹库生成的训练集中。
5.根据权利要求1所述的方法,其特征在于,步骤S4中,引入信息增益比的概念,从候选划分属性中找出信息增益比高于平均水平的属性,再从中选择增益比最高的,递归完成树的构建,树的每个叶子结点即为最终识别结果。
6.根据权利要求1所述的方法,其特征在于,步骤S5中,将XGBoost算法识别模型分为类别识别层、主版本识别层和详细版本识别层,将预处理后数据输入训练样本集,然后对训练样本采样生成采样子集,运用采样子集,根据属性划分规则建立弱学习器决策树,然后利用建立的弱学习器决策树进行迭代,每次添加一棵新的弱学习器决策树,对上一次预测的残差进行拟合;最终得到k棵弱学习器决策树,将需要预测的样本落到每棵弱学习器决策树对应的叶子节点,将叶子节点分数相加即为预测值。
7.根据权利要求6所述的方法,其特征在于,采用准确率、真正率和假正率对步骤S4和步骤S5的识别结果进行评价,定义预测正确的结果占总样本的百分比为准确率;定义样本正确判断所占的比例值为真正率,定义分类算法把其它应用类型错误判断为实际类型的比例为假正率,利用十折交叉验证进行准确性验证,然后采取真实数据判断识别效果。
8.一种存储一个或多个程序的计算机可读存储介质,其特征在于,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行根据权利要求1至7所述的方法中的任一方法。
9.一种计算设备,其特征在于,包括:
一个或多个处理器、存储器及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为所述一个或多个处理器执行,所述一个或多个程序包括用于执行根据权利要求1至7所述的方法中的任一方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010917865.XA CN112202718B (zh) | 2020-09-03 | 2020-09-03 | 一种基于XGBoost算法的操作系统识别方法、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010917865.XA CN112202718B (zh) | 2020-09-03 | 2020-09-03 | 一种基于XGBoost算法的操作系统识别方法、存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112202718A true CN112202718A (zh) | 2021-01-08 |
CN112202718B CN112202718B (zh) | 2021-08-13 |
Family
ID=74006329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010917865.XA Active CN112202718B (zh) | 2020-09-03 | 2020-09-03 | 一种基于XGBoost算法的操作系统识别方法、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112202718B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112950231A (zh) * | 2021-03-19 | 2021-06-11 | 广州瀚信通信科技股份有限公司 | 一种基于XGBoost算法的异常用户识别方法、设备及计算机可读存储介质 |
CN113328985A (zh) * | 2021-04-07 | 2021-08-31 | 西安交通大学 | 一种被动物联网设备识别方法、系统、介质及设备 |
CN114095235A (zh) * | 2021-11-17 | 2022-02-25 | 恒安嘉新(北京)科技股份公司 | 系统识别方法、装置、计算机设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130287273A1 (en) * | 2012-04-26 | 2013-10-31 | Hon Hai Precision Industry Co., Ltd. | Anti-misoperation system and method using same |
CN106936667A (zh) * | 2017-04-17 | 2017-07-07 | 东南大学 | 一种基于应用程序流量分布式分析的主机实时识别方法 |
CN108846275A (zh) * | 2018-04-11 | 2018-11-20 | 哈尔滨工程大学 | 基于ripper算法的未知操作系统类型识别方法 |
US20190124082A1 (en) * | 2017-10-19 | 2019-04-25 | Reflektion, Inc. | Cross Device User Identification |
CN110519128A (zh) * | 2019-09-20 | 2019-11-29 | 西安交通大学 | 一种基于随机森林的操作系统识别方法 |
CN110532756A (zh) * | 2018-05-23 | 2019-12-03 | 中国移动通信集团浙江有限公司 | 一种系统指纹识别方法、装置、电子设备及存储介质 |
CN111091194A (zh) * | 2019-11-13 | 2020-05-01 | 西安交通大学 | 一种基于cavwnb_kl算法的操作系统识别方法 |
-
2020
- 2020-09-03 CN CN202010917865.XA patent/CN112202718B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130287273A1 (en) * | 2012-04-26 | 2013-10-31 | Hon Hai Precision Industry Co., Ltd. | Anti-misoperation system and method using same |
CN106936667A (zh) * | 2017-04-17 | 2017-07-07 | 东南大学 | 一种基于应用程序流量分布式分析的主机实时识别方法 |
US20190124082A1 (en) * | 2017-10-19 | 2019-04-25 | Reflektion, Inc. | Cross Device User Identification |
CN108846275A (zh) * | 2018-04-11 | 2018-11-20 | 哈尔滨工程大学 | 基于ripper算法的未知操作系统类型识别方法 |
CN110532756A (zh) * | 2018-05-23 | 2019-12-03 | 中国移动通信集团浙江有限公司 | 一种系统指纹识别方法、装置、电子设备及存储介质 |
CN110519128A (zh) * | 2019-09-20 | 2019-11-29 | 西安交通大学 | 一种基于随机森林的操作系统识别方法 |
CN111091194A (zh) * | 2019-11-13 | 2020-05-01 | 西安交通大学 | 一种基于cavwnb_kl算法的操作系统识别方法 |
Non-Patent Citations (4)
Title |
---|
ZEYI WEN等: "Exploiting GPUs for Efficient Gradient Boosting Decision Tree Training", 《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》 * |
任天鹏: "基于协议栈指纹特征的蜜罐主机技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
易云晖: "基于决策树的被动操作系统识别技术研究", 《计算机科学》 * |
朱振显: "基于决策树和被动监听的操作系统识别方法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112950231A (zh) * | 2021-03-19 | 2021-06-11 | 广州瀚信通信科技股份有限公司 | 一种基于XGBoost算法的异常用户识别方法、设备及计算机可读存储介质 |
CN113328985A (zh) * | 2021-04-07 | 2021-08-31 | 西安交通大学 | 一种被动物联网设备识别方法、系统、介质及设备 |
CN114095235A (zh) * | 2021-11-17 | 2022-02-25 | 恒安嘉新(北京)科技股份公司 | 系统识别方法、装置、计算机设备及介质 |
CN114095235B (zh) * | 2021-11-17 | 2024-03-19 | 恒安嘉新(北京)科技股份公司 | 系统识别方法、装置、计算机设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112202718B (zh) | 2021-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112202718B (zh) | 一种基于XGBoost算法的操作系统识别方法、存储介质及设备 | |
CN111475680A (zh) | 检测异常高密子图的方法、装置、设备及存储介质 | |
CN109818961B (zh) | 一种网络入侵检测方法、装置和设备 | |
CN112910859A (zh) | 基于c5.0决策树和时序分析的物联网设备监测预警方法 | |
CN111047173B (zh) | 基于改进d-s证据理论的社团可信度评估方法 | |
CN115987615A (zh) | 一种网络行为安全预警方法及系统 | |
US11533373B2 (en) | Global iterative clustering algorithm to model entities' behaviors and detect anomalies | |
CN112966714A (zh) | 一种边缘时序数据异常检测和网络可编程控制方法 | |
CN112115965A (zh) | 一种基于svm的被动操作系统识别方法、存储介质及设备 | |
CN113706100B (zh) | 配电网物联终端设备实时探测识别方法与系统 | |
CN116662817B (zh) | 物联网设备的资产识别方法及系统 | |
CN112565301A (zh) | 基于小样本学习的服务器运行网络流量异常数据检测方法 | |
CN114218998A (zh) | 一种基于隐马尔可夫模型的电力系统异常行为分析方法 | |
CN110011990A (zh) | 内网安全威胁智能分析方法 | |
CN114386046A (zh) | 一种未知漏洞检测方法、装置、电子设备及存储介质 | |
CN113518073B (zh) | 一种比特币挖矿僵尸网络流量的快速识别方法 | |
CN117729027A (zh) | 异常行为检测方法、装置、电子设备及存储介质 | |
CN113242213A (zh) | 一种电力通信骨干网节点脆弱性诊断方法 | |
CN114448657B (zh) | 一种配电通信网络安全态势感知与异常入侵检测方法 | |
CN114969761A (zh) | 一种基于lda主题特征的日志异常检测方法 | |
CN115037790A (zh) | 异常注册识别方法、装置、设备及存储介质 | |
CN114817928A (zh) | 网络空间数据融合分析方法、系统、电子设备及存储介质 | |
CN114553473A (zh) | 一种基于登录ip和登陆时间的异常登陆行为检测系统和方法 | |
CN110197066B (zh) | 一种云计算环境下的虚拟机监控方法及监控系统 | |
Erfan | DDoS attack detection scheme using hybrid ensemble learning and ga algorithm for Internet of Things |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |