一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于人工智能的操作系统识别方法、装置及电子设备与流程

2021-11-26 21:58:00 来源:中国专利 TAG:


1.本技术涉及人工智能技术和计算机技术,尤其涉及一种基于人工智能的操作系统识别方法、装置、电子设备及计算机可读存储介质。


背景技术:

2.操作系统是用于管理电子设备的硬件资源和软件资源的计算机程序,也是电子设备中最基本且最重要的基础性系统软件。在电子设备的运行过程中,存在对电子设备所应用的操作系统进行识别的需求,例如在网络攻防场景中,需要识别出攻击者所应用的操作系统或被攻击者所应用的操作系统,以保证安全性。
3.在相关技术提供的方案中,通常是将从待识别设备获取到的特征值(如数据包的窗口大小)与多种操作系统分别对应的取值范围进行匹配,并将匹配成功的取值范围对应的操作系统,作为待识别设备所应用的操作系统。但是,在该方案中可能会出现所有匹配结果均为匹配失败,即无法识别操作系统的情况,导致操作系统识别的适用性低,同时在操作系统识别过程中所耗费的计算资源也被白白浪费。


技术实现要素:

4.本技术实施例提供一种基于人工智能的操作系统识别方法、装置、电子设备及计算机可读存储介质,能够提升操作系统识别的适用性,同时也能够提升操作系统识别过程中所耗费的计算资源的实际利用率。
5.本技术实施例的技术方案是这样实现的:
6.本技术实施例提供一种基于人工智能的操作系统识别方法,包括:
7.获取多种操作系统分别对应的特征信息;其中,所述特征信息包括与多个特征维度分别对应的取值范围;
8.对所述特征信息中的取值范围进行离散处理得到多个特征值,并将所述特征信息拆分为在所述多个特征维度分别对应一个特征值的特征样本;
9.根据所述多种操作系统分别对应的特征信息所拆分出的特征样本,对操作系统识别模型进行训练;
10.根据所述特征信息对应的特征获取策略,对待识别设备进行特征获取处理;
11.根据训练后的所述操作系统识别模型,对通过所述特征获取处理得到的特征样本进行预测处理,并将得到的预测操作系统作为所述待识别设备所应用的操作系统。
12.在上述方案中,所述根据所述多种操作系统分别对应的特征信息所拆分出的特征样本,对操作系统识别模型进行训练,包括:
13.根据所述多种操作系统分别对应的特征信息所拆分出的特征样本构建样本集,并将所述样本集划分为训练集和测试集;
14.根据所述训练集对所述操作系统识别模型进行训练,并根据所述测试集确定训练后的所述操作系统识别模型的模型指标;
15.当所述模型指标未满足指标条件时,根据所述训练集对训练后的所述操作系统识别模型再次训练,直至新的模型指标满足所述指标条件。
16.本技术实施例提供一种基于人工智能的操作系统识别装置,包括:
17.获取模块,用于获取多种操作系统分别对应的特征信息;其中,所述特征信息包括与多个特征维度分别对应的取值范围;
18.拆分模块,用于对所述特征信息中的取值范围进行离散处理得到多个特征值,并将所述特征信息拆分为在所述多个特征维度分别对应一个特征值的特征样本;
19.训练模块,用于根据所述多种操作系统分别对应的特征信息所拆分出的特征样本,对操作系统识别模型进行训练;
20.所述获取模块,还用于根据所述特征信息对应的特征获取策略,对待识别设备进行特征获取处理;
21.预测模块,用于根据训练后的所述操作系统识别模型,对通过所述特征获取处理得到的特征样本进行预测处理,并将得到的预测操作系统作为所述待识别设备所应用的操作系统。
22.在上述方案中,所述训练模块,还用于:
23.根据所述多种操作系统分别对应的特征信息所拆分出的特征样本构建样本集,并将所述样本集划分为训练集和测试集;
24.根据所述训练集对所述操作系统识别模型进行训练,并根据所述测试集确定训练后的所述操作系统识别模型的模型指标;
25.当所述模型指标未满足指标条件时,根据所述训练集对训练后的所述操作系统识别模型再次训练,直至新的模型指标满足所述指标条件。
26.本技术实施例提供一种电子设备,包括:
27.存储器,用于存储可执行指令;
28.处理器,用于执行所述存储器中存储的可执行指令时,实现本技术实施例提供的基于人工智能的操作系统识别方法。
29.本技术实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本技术实施例提供的基于人工智能的操作系统识别方法。
30.本技术实施例具有以下有益效果:
31.获取多种操作系统分别对应的特征信息,并将特征信息拆分为在多个特征维度分别对应一个特征值的特征样本,以训练操作系统识别模型。如此,无论待识别设备如何变化,根据训练后的操作系统识别模型均可快速、准确地得到预测操作系统,能够提升对不同待识别设备的适用性,同时,也能够保证操作系统识别过程中所耗费的计算资源被有效利用。
附图说明
32.图1是本技术实施例提供的基于人工智能的操作系统识别系统的架构示意图;
33.图2是本技术实施例提供的终端设备的架构示意图;
34.图3a是本技术实施例提供的基于人工智能的操作系统识别方法的流程示意图;
35.图3b是本技术实施例提供的基于人工智能的操作系统识别方法的流程示意图;
36.图3c是本技术实施例提供的基于人工智能的操作系统识别方法的流程示意图;
37.图3d是本技术实施例提供的基于人工智能的操作系统识别方法的流程示意图;
38.图4是本技术实施例提供的拆分处理的示意图;
39.图5是本技术实施例提供的训练后的操作系统识别模型的示意图;
40.图6是本技术实施例提供的模型训练的流程示意图;
41.图7是本技术实施例提供的筛选处理的流程示意图;
42.图8是本技术实施例提供的训练后的操作系统识别模型的示意图;
43.图9是本技术实施例提供的模型预测的流程示意图。
具体实施方式
44.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
45.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。在以下的描述中,所涉及的术语“多个”是指至少两个。
46.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
47.对本技术实施例进行进一步详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
48.1)操作系统(operation system,os):用于管理电子设备的硬件资源与软件资源的计算机程序,操作系统需要处理的事务包括但不限于管理及配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、以及操作网络与管理文件系统。在本技术实施例中,所涉及的操作系统包括但不限于windows操作系统、linux操作系统、android操作系统以及ios操作系统。其中,windows操作系统及linux操作系统通常应用于计算机中,android操作系统及ios操作系统通常应用于移动终端设备(如手机)中。在此基础上,还可以进一步细分,如细分为各个版本的windows操作系统。
49.2)特征信息:又称操作系统的指纹,包括多个特征维度以及与多个特征维度分别对应的取值范围。其中,每个特征维度对应能够从电子设备中获取到的一种特征,举例来说,特征维度包括但不限于数据包的窗口大小(window size,ws)、生存时间(time to live,ttl)以及不分片(don't fragment,df)标志位。
50.3)特征样本:包括多个特征维度以及与多个特征维度分别对应的一个特征值。本技术实施例中存在两种特征样本,第一种是对特征信息进行拆分处理得到的特征样本,第二种是从待识别设备中获取得到的特征样本。
51.4)人工智能(artificial intelligence,ai):利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研
究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
52.5)机器学习(machine learning,ml):机器学习是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。
53.6)操作系统识别模型:基于机器学习原理构建的模型,输入是特征样本,输出是预测操作系统。本技术实施例对操作系统识别模型的类型不做限定,例如可以是决策树(decision tree,dt)模型,可以是随机森林(random forest,rf)模型,还可以是人工神经网络(artificial neural networks,anns)模型。
54.7)通信协议(communication protocol):双方实体完成通信或服务所必须遵循的规则和约定。在计算机网络的分层通信体系结构中,可以通过不同层级的通信协议来实现通信功能。举例来说,在传输控制协议(transmission control protocol,tcp)/互联网协议(internet protocol,ip)通信体系结构中,按照从底层到顶层的顺序,可以划分出网络接口层、网络层、传输层以及应用层。其中,网络层对应的通信协议包括ip、地址解析协议(address resolution protocol,arp)以及互联网控制报文协议(internet control message protocol,icmp)等;传输层对应的通信协议包括tcp以及用户数据报协议(user datagram protocol,udp)等;应用层对应的通信协议包括超文本传输协议(hypertext transfer protocol,http)以及文件传输协议(file transfer protocol,ftp)等。
55.值得说明的是,本技术实施例中的通信体系结构并不限于上述的tcp/ip通信体系架构,例如还可以是开放式系统互联(open system interconnection,osi)通信体系结构。
56.8)进制单位:即进位计数制,如二进制、八进制、十进制及十六进制等。在本技术实施例中,可以对特征值进行更新,以使更新后的特征值符合统一的进制单位(如十进制),便于计算。
57.9)数据库(database):类似于电子化的文件柜,即存储电子文件的处所,用户可以对文件中的数据执行新增、查询、更新及删除等操作。数据库也可以理解为以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。在本技术实施例中,数据库可以用于存储多种操作系统分别对应的特征信息。
58.面临对待识别设备所应用的操作系统进行识别的需求,在相关技术提供的方案中,通常是将从待识别设备获取到的特征值与多种操作系统分别对应的取值范围进行匹配,并将匹配成功的取值范围对应的操作系统,作为待识别设备所应用的操作系统。但是,在该方案中可能会出现所有匹配结果均为匹配失败,即无法识别操作系统的情况,导致对不同待识别设备的适用性低,在操作系统识别过程中所耗费的计算资源也被无谓浪费。举例来说,获取到的操作系统a对应的取值范围为“大于200”,操作系统b对应的取值范围为“小于50”,从待识别设备获取到的特征值是100,由于特征值100与“大于200”的取值范围、以及“小于50”的取值范围均匹配失败,因此无法识别出待识别设备所应用的操作系统。出现该情况的原因可能是多种多样的,例如获取到的取值范围不够全面等。
59.本技术实施例提供一种基于人工智能的操作系统识别方法、装置、电子设备及计算机可读存储介质,能够提升对不同待识别设备的适用性,快速、准确地确定出待识别设备所应用的操作系统,同时,也能够提升操作系统识别过程中所耗费的计算资源的实际利用
率。下面说明本技术实施例提供的电子设备的示例性应用,本技术实施例提供的电子设备可以实施为各种类型的终端设备,也可以实施为服务器,为了便于区分,将后文的电子设备定义为对待识别设备进行操作系统识别的设备。同理,待识别设备可以实施为各种类型的终端设备,也可以实施为服务器。
60.参见图1,图1是本技术实施例提供的基于人工智能的操作系统识别系统100的架构示意图,终端设备400通过网络300

1连接服务器200,终端设备400通过网络300

2连接待识别设备500,服务器200连接数据库600。其中,网络300

1可以是广域网或者局域网,又或者是广域网和局域网的组合,网络300

2同理。另外,在图1中以待识别设备500为终端设备的情况为例进行说明,但这并不构成对本技术实施例的限定,例如待识别设备500还可以是服务器。
61.在一些实施例中,以电子设备是终端设备为例,本技术实施例提供的基于人工智能的操作系统识别方法可以由终端设备实现。例如,终端设备400运行客户端410,由客户端410获取多种操作系统分别对应的特征信息,其中,特征信息可以预先存储于客户端410本地,也可以是客户端410实时从外界(如服务器200的分布式文件系统、数据库600或区块链网络等)获取的。客户端410对特征信息中的取值范围进行离散处理得到多个特征值,并将特征信息拆分为在多个特征维度分别对应一个特征值的特征样本,然后根据多种操作系统分别对应的特征信息所拆分出的特征样本,对操作系统识别模型进行训练。客户端410可以将训练后的操作系统识别模型存储于本地,并在需要对待识别设备500进行操作系统识别时,调用训练后的操作系统识别模型对从待识别设备500获取到的特征样本进行预测处理,将得到的预测操作系统作为待识别设备500所应用的操作系统。
62.在得到预测操作系统后,客户端410可以将预测操作系统呈现于人机交互界面中,便于用户获知。在图1中,示例性地示出了待识别设备500的预测操作系统为android操作系统。基于得到的预测操作系统,客户端410可以对待识别设备500进行进一步处理,例如根据预测操作系统对应的漏洞修复策略对待识别设备500进行漏洞修复处理,以实现对待识别设备500的安全保护,其中,不同的操作系统对应不同的漏洞修复策略;又例如,根据预测操作系统对应的控制策略对待识别设备500进行快速控制,即实现远程接管,其中,不同的操作系统对应不同的控制策略。
63.值得说明的是,在图1中以终端设备400区别于待识别设备500为例进行说明,但是在本技术实施例中,终端设备400和待识别设备500也可以是同一个设备,即待识别设备可以对自身进行操作系统识别,并将得到的预测操作系统呈现于待识别设备的人机交互界面中。
64.在一些实施例中,以电子设备是服务器为例,本技术实施例提供的基于人工智能的操作系统识别方法也可以由服务器实现。例如,服务器200可以获取数据库600中存储的多种操作系统分别对应的特征信息,并根据拆分出的特征样本对操作系统识别模型进行训练,其中,特征信息的存储位置并不限于数据库600,例如还可以是分布式文件系统或区块链网络。相应地,对于训练后的操作系统识别模型,服务器200可以将其存储于数据库600、服务器200自身的分布式文件系统或者区块链网络等处。在需要对待识别设备500进行操作系统识别时,服务器200调用训练后的操作系统识别模型,对从待识别设备500获取到的特征样本进行预测处理,将得到的预测操作系统作为待识别设备500所应用的操作系统。其
中,服务器200可以与待识别设备500建立直接连接,以从待识别设备500中获取特征样本。
65.在一些实施例中,本技术实施例提供的基于人工智能的操作系统识别方法也可以由终端设备和服务器协同实现。例如,终端设备400的客户端410可以从待识别设备500中获取特征样本,并将该特征样本发送至服务器200,以使服务器200调用训练后的操作系统识别模型对该特征样本进行预测处理。
66.在一些实施例中,终端设备400或服务器200可以通过运行计算机程序来实现本技术实施例提供的方法,例如,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(native)应用程序(app,application),即需要在操作系统中安装才能运行的程序,如用于进行操作系统识别的应用程序(对应上文的客户端410);也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意app中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
67.在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务(如操作系统识别服务)、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器,其中,云技术(cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。终端设备400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能电视、智能手表等,但并不局限于此。服务器200、终端设备400及待识别设备500这三者之间可以通过有线或无线通信方式进行直接或间接地连接,本技术实施例中不做限制。
68.以本技术实施例提供的电子设备是终端设备为例说明,可以理解的,对于电子设备是服务器的情况,图2中示出的结构中的部分(例如用户接口、呈现模块和输入处理模块)可以缺省。参见图2,图2是本技术实施例提供的终端设备400的结构示意图,图2所示的终端设备400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端设备400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
69.处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
70.用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
71.存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
72.存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存
储器两者。非易失性存储器可以是只读存储器(rom,read only memory),易失性存储器可以是随机存取存储器(ram,random access memory)。本技术实施例描述的存储器450旨在包括任意适合类型的存储器。
73.在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
74.操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
75.网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universal serial bus)等;
76.呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
77.输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
78.在一些实施例中,本技术实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器450中的基于人工智能的操作系统识别装置455,其可以是程序和插件等形式的软件,包括以下软件模块:获取模块4551、拆分模块4552、训练模块4553及预测模块4554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
79.将结合本技术实施例提供的电子设备的示例性应用和实施,说明本技术实施例提供的基于人工智能的操作系统识别方法。
80.参见图3a,图3a是本技术实施例提供的基于人工智能的操作系统识别方法的一个流程示意图,将结合图3a示出的步骤进行说明。
81.在步骤101中,获取多种操作系统分别对应的特征信息;其中,特征信息包括与多个特征维度分别对应的取值范围。
82.这里,一种方式是,从已有的信息库中获取多种操作系统分别对应的特征信息,其中,信息库如网络映射器(network mapper,nmap)的指纹库,nmap是一种用于网络扫描和嗅探的工具;另一种方式是,针对每种操作系统,分别从已应用该操作系统的多个电子设备中实时获取特征样本,并将获取到的多个特征样本汇总为该操作系统对应的特征信息,汇总过程的本质是将每个特征维度对应的多个特征值汇总为特征维度对应的取值范围。当然,多种操作系统分别对应的特征信息也可以是根据实际应用场景进行预先设定的。
83.特征信息包括多个特征维度以及与多个特征维度分别对应的取值范围,其中每个特征维度对应一种特征。特征信息中的特征维度可以根据实际应用场景进行设定,例如包括ws、ttl以及df等。
84.在步骤102中,对特征信息中的取值范围进行离散处理得到多个特征值,并将特征信息拆分为在多个特征维度分别对应一个特征值的特征样本。
85.由于取值范围无法量化,根据取值范围无法直接进行模型训练,因此,在本技术实施例中,针对每个特征信息中的每个特征维度,对特征维度对应的取值范围进行离散处理
得到多个特征值,以将特征信息拆分为在多个特征维度分别对应一个特征值的特征样本。在将某个操作系统对应的特征信息拆分为多个特征样本后,可以建立操作系统与拆分出的多个特征样本之间的对应关系。
86.作为示例,本技术实施例提供了如图4所示的拆分处理的示意图,在图4中,特征信息包括特征维度a和特征维度b,且特征维度a对应的取值范围包括0和1两个离散值,特征维度b对应的取值范围包括1和2两个离散值。则在对特征维度a对应的取值范围进行离散处理时,直接将0和1两个离散值作为特征值即可,特征维度b对应的取值范围同理。由于特征信息在特征维度a对应两个特征值,在特征维度b也对应两个特征值,因此,可以将该特征信息拆分为四个特征样本,即图4示出的特征样本1至4。
87.在一些实施例中,步骤102之后,还包括:针对任意一种操作系统,执行以下处理:确定与任意一种操作系统对应的特征样本的数量正相关的筛选数量;其中,筛选数量小于任意一种操作系统对应的特征样本的数量;根据筛选数量对任意一种操作系统对应的多个特征样本进行筛选处理;其中,筛选处理得到的特征样本用于训练操作系统识别模型。
88.对于特征信息来说,随着特征维度越多和/或每个特征维度的对应的取值范围越大,则拆分出的特征样本的数量越多。在某些情况下,一个特征信息拆分出的特征样本的数量可能会达到上亿个,导致需要耗费较多的存储资源来存储这些特征样本,同时也会导致模型训练的工作量非常大。因此,在本技术实施例中,针对每个操作系统,在得到该操作系统对应的多个特征样本后,可以对多个特征样本进行筛选处理,并根据筛选出的特征样本(筛选处理得到的特征样本)对操作系统识别模型进行训练。
89.举例来说,可以确定操作系统对应的特征样本的数量,进一步确定与该数量正相关、且小于该数量的筛选数量,并根据筛选数量对操作系统对应的所有特征样本进行筛选处理。本技术实施例对特征样本的数量与筛选数量之间的正相关关系不做限定,例如筛选数量可以是将特征样本的数量乘以一个正数得到的。如此,筛选处理的过程可以与操作系统对应的特征样本的数量相适配,例如操作系统对应的特征样本的数量为20个,则确定出的筛选数量为1;操作系统对应的特征样本的数量为100个,则确定出的筛选数量为2。通过上述方式,能够提升筛选出的特征样本的全面性,保证有效筛选。
90.值得说明的是,在进行筛选处理时可以采用随机选择或者正态采样的方式,相较于正态采样,随机选择的方式能够进一步提升筛选出的特征样本的全面性。
91.在步骤103中,根据多种操作系统分别对应的特征信息所拆分出的特征样本,对操作系统识别模型进行训练。
92.这里,可以将每种操作系统对应的所有特征样本添加至样本集中,并根据样本集对操作系统识别模型进行训练。本技术实施例对操作系统识别模型的类型不做限定,例如可以是决策树模型或神经网络模型等。
93.当操作系统识别模型为决策树模型时,对操作系统识别模型进行训练可以是指构建决策树。举例来说,可以自决策树的根节点开始,根据样本集在所有特征维度中确定信息增益(information gain)最大的特征维度,以作为根节点对应的特征维度,其中,特征维度的信息增益是指将特征维度作为节点的情况下,信息复杂度(不确定性)减少的程度。然后,针对根节点对应的特征维度的每个特征值,创建相应的子节点(即进行分裂),并将样本集中包括该特征值的特征样本分配至该子节点,以根据分配的特征样本在剩余的多个特征维
度中确定信息增益最大的特征维度,以作为子节点对应的特征维度。子节点还可进一步分裂出更下一层的子节点,即进行迭代。当某个子节点满足停止分裂条件时,将该子节点作为叶子节点,并将分配给该子节点的所有特征样本分别对应的操作系统中出现次数最多的操作系统,作为叶子节点对应的操作系统。本技术实施例对停止分裂条件不做限定,例如可以是分配给子节点的所有特征样本均对应相同的操作系统,可以是在子节点处计算的所有特征维度(指剩余的所有特征维度)的信息增益均小于信息增益阈值,还可以是所有的特征维度均已与节点建立对应关系(即不存在剩余的特征维度)。
94.作为示例,本技术实施例提供了如图5所示的训练后的决策树模型的示意图,训练后的决策树模型包括根节点、子节点以及叶子节点这三类节点,在图5中,以根节点对应特征维度a,两个子节点分别对应特征维度b和特征维度c为例进行说明。当然,上述对决策树模型的训练方式并不构成对本技术实施例的限定,例如还可以进行进一步的算法优化,如剪枝及决策森林等。
95.当操作系统识别模型为神经网络模型时,对操作系统识别模型进行训练可以是指更新各个网络层的权重参数。举例来说,对于样本集中的每个特征样本,可以根据神经网络模型对特征样本进行预测处理,得到预测操作系统,为了便于区分,将这里得到的预测操作系统作为待对比的操作系统。然后,根据特征样本对应的操作系统与待对比的操作系统之间的差异,在神经网络模型中进行反向传播,并在反向传播的过程中更新神经网络模型的各个网络层的权重参数。其中,差异即为损失值,可以根据损失函数(如交叉熵损失函数)确定。
96.在一些实施例中,可以通过这样的方式来实现上述的根据多种操作系统分别对应的特征信息所拆分出的特征样本,对操作系统识别模型进行训练:根据多种操作系统分别对应的特征信息所拆分出的特征样本构建样本集,并将样本集划分为训练集和测试集;根据训练集对操作系统识别模型进行训练,并根据测试集确定训练后的操作系统识别模型的模型指标;当模型指标未满足指标条件时,根据训练集对训练后的操作系统识别模型再次训练,直至新的模型指标满足指标条件。
97.在本技术实施例中,还可以将样本集划分为训练集和测试集,其中,训练集包括的特征样本的数量与测试集包括的特征样本的数量之间的比例可以根据实际应用场景进行设定,如设定为8:2。然后,根据训练集对操作系统识别模型进行训练,并根据测试集确定训练后的操作系统识别模型的模型指标,其中,模型指标可以是精确率(precision)、召回率(recall)或f1分数等,模型指标越高,表示训练效果越好。当模型指标未满足指标条件时,证明训练后的操作系统识别模型未达到预期效果,则根据训练集对训练后的操作系统识别模型再次训练,直至得到的新的模型指标满足指标条件,其中,指标条件如大于设定的指标阈值。通过上述方式,能够有效地提升训练效果,提升训练后的操作系统识别模型的预测精度。
98.在步骤104中,根据特征信息对应的特征获取策略,对待识别设备进行特征获取处理。
99.这里,根据步骤101中获取到的特征信息对应的特征获取策略,对待识别设备进行特征获取处理,得到特征样本。其中,特征获取策略用于获取待识别设备中与多个特征维度分别对应的特征值。
100.在一些实施例中,可以通过这样的方式来实现上述的根据特征信息对应的特征获取策略,对待识别设备进行特征获取处理:当特征信息为被动类型时,获取待识别设备发送的数据,并从数据中解析出特征样本;当特征信息为主动类型时,向待识别设备发送请求数据,并从待识别设备发送的响应数据中解析出特征样本;其中,响应数据是待识别设备对请求数据进行响应处理得到的。
101.在本技术实施例中,特征信息可以包括被动类型和主动类型,分别对应被动策略(指被动式的特征获取策略)和主动策略(指主动式的特征获取策略)。
102.当步骤101中获取到的特征信息是被动类型时,根据被动策略对待识别设备进行特征获取处理。例如,在应用被动策略时,并不主动向待识别设备发送数据,而是以监测(或称捕获)的方式获取待识别设备向外发送的数据(如待识别设备访问互联网web服务时所发送的http数据包),然后从该数据中解析出特征样本,即被动类型的特征样本。
103.当步骤101中获取到的特征信息是主动类型时,根据主动策略对待识别设备进行特征获取处理。例如,在应用主动策略时,主动向待识别设备发送请求数据(如用于访问待识别设备的端口的请求数据),并监测待识别设备对请求数据进行响应处理得到的响应数据,然后从响应数据中解析出特征样本,即主动类型的特征样本。通过上述方式,能够提升特征获取处理的针对性,有助于提升从待识别设备获取到的特征样本的准确性。
104.在一些实施例中,特征信息包括多种被动类型,且不同被动类型分别对应的特征获取策略所应用的通信协议不同;和/或特征信息包括多种主动类型,且不同主动类型分别对应的特征获取策略所应用的通信协议不同。
105.这里,被动类型可以存在多种,且不同被动类型分别对应的特征获取策略所应用的通信协议不同,例如应用的通信协议的层级不同,其中,层级可以是根据计算机网络的分层通信体系结构定义的,为了便于说明,后文以tcp/ip通信体系架构为例。从另一角度来说,即是不同被动类型对应不同的通信协议。被动类型对应某一通信协议,是指该被动类型的特征信息包括的特征维度与该通信协议相关,例如某被动类型的特征信息包括特征维度ws,则该被动类型与传输层的通信协议(具体为tcp)对应。
106.值得说明的是,每一种被动类型可以对应至少一个层级的通信协议,例如,某一被动类型对应应用层的通信协议,如http及ftp等;另一被动类型对应区别于应用层的多个层级(如网络层和传输层)的通信协议,如tcp、udp及icmp等。
107.同理,主动类型可以存在多种,且不同主动类型分别对应的特征获取策略所应用的通信协议不同(例如是不同层级的通信协议)。通过上述方式,能够细化特征信息的类型划分粒度,从而进一步提升从待识别设备中获取到的特征样本的准确性。
108.在步骤105中,根据训练后的操作系统识别模型,对通过特征获取处理得到的特征样本进行预测处理,并将得到的预测操作系统作为待识别设备所应用的操作系统。
109.这里,根据训练后的操作系统识别模型对从待识别设备获取的特征样本进行预测处理,得到预测操作系统。
110.以图5举例,在获取到待识别设备的特征样本后,若其中特征维度a和特征维度c分别对应的特征值均为1,那么无论特征维度b对应的特征值是0还是1,最终得到的预测操作系统都是windows10操作系统。
111.在得到预测操作系统后,将预测操作系统作为待识别设备所应用(或称配置、安
装)的操作系统,进而便于进行对待识别设备的进一步处理。举例来说,可以根据预测操作系统对应的漏洞修复策略对待识别设备进行漏洞修复处理,以实现对待识别设备的安全保护,其中,不同的操作系统对应不同的漏洞修复策略,如windows7操作系统中存在一些特有的安全漏洞,windows10操作系统中存在另一些特有的安全漏洞,因此漏洞修复策略存在不同;又例如,根据预测操作系统对应的控制策略对待识别设备进行快速控制(远程接管),其中,不同的操作系统对应不同的控制策略,例如ubuntu操作系统所提供的服务的端口与windows7操作系统所提供的服务的端口存在不同。当然,基于预测操作系统的应用场景并不限于此。
112.在一些实施例中,可以通过这样的方式来实现上述的根据训练后的操作系统识别模型,对通过特征获取处理得到的特征样本进行预测处理,将得到的预测操作系统作为待识别设备所应用的操作系统:根据训练后的操作系统识别模型,对通过特征获取处理得到的多个特征样本分别进行预测处理,得到预测操作系统;将多个预测操作系统中出现次数最多的预测操作系统,作为待识别设备所应用的操作系统。
113.这里,可能由于网络波动或者安全设备(如防火墙)拦截数据等因素,导致从待识别设备获取到的特征样本不够准确,因此,在本技术实施例中,可以对待识别设备多次执行特征获取处理,即是在不同时刻从待识别设备中获取特征样本,例如获取10个不同时刻的特征样本。针对从待识别设备中获取到的每个特征样本,根据训练后的操作系统识别模型进行预测处理得到预测操作系统,然后,将得到的所有预测操作系统中出现次数最多的预测操作系统,作为待识别设备所应用的操作系统,这里,若出现次数最多的预测操作系统的数量包括多个,则继续从待识别设备中获取特征样本并进行预测处理,直至出现次数最多的预测操作系统仅为一个。通过上述方式,能够进一步提升操作系统识别的鲁棒性和准确性。
114.在一些实施例中,可以通过这样的方式来实现上述的根据训练后的操作系统识别模型,对通过特征获取处理得到的特征样本进行预测处理:当通过特征获取处理得到的多个特征样本的特征值波动程度小于波动程度阈值时,根据训练后的操作系统识别模型,对多个特征样本中最新获取到的特征样本进行预测处理;步骤104之前,还包括:当多个特征样本的特征值波动程度大于或等于波动程度阈值时,继续对待识别设备进行特征获取处理。
115.针对从待识别设备获取到的特征样本不够准确的情况,本技术实施例提供了另一种方式,持续对待识别设备进行特征获取处理,即持续从待识别设备中获取特征样本,并持续计算已获取到的所有特征样本的特征值波动程度。举例来说,在从待识别设备已获取到的所有特征样本中,确定每个特征维度的特征值的方差(或者标准差),并将所有特征维度对应的方差(或者标准差)进行平均处理,得到特征值波动程度,当然,特征值波动程度的确定方式并不限于此。
116.特征值波动程度越大,表示从待识别设备中获取到的特征样本越不稳定。因此,当从待识别设备已获取到的所有特征样本的特征值波动程度大于或等于波动程度阈值时,继续对待识别设备进行特征获取处理,即获取新的特征样本;当从待识别设备已获取到的所有特征样本的特征值波动程度小于波动程度阈值时,根据训练后的操作系统识别模型,对从待识别设备已获取到的所有特征样本中最新的特征样本进行预测处理,并将得到的预测
操作系统作为待识别设备中所应用的操作系统。通过上述方式,能够从另一角度提升操作系统识别的鲁棒性和准确性,同时也可有效地节省计算资源,即只执行一次预测处理即可。
117.如图3a所示,本技术实施例根据由特征信息拆分出的特征样本训练操作系统识别模型,并根据训练后的操作系统识别模型预测待识别设备所应用的操作系统,能够提升操作系统识别的精度,加强对不同待识别设备的适用性,同时,也能够有效提升操作系统识别过程中所耗费的计算资源的实际利用率。
118.在一些实施例中,参见图3b,图3b是本技术实施例提供的基于人工智能的操作系统识别方法的一个流程示意图,图3a示出的步骤103可以更新为步骤201,在步骤201中,根据多种操作系统分别对应的任意一种类型的特征样本,对任意一种类型对应的操作系统识别模型进行训练。
119.在本技术实施例中,特征信息可以包括多种类型,不同类型的特征信息对应不同的特征维度。举例来说,可以根据不同的特征获取策略(指用于从待识别设备中获取特征样本的策略)来划分多种类型,其中不同的特征获取策略对应不同的特征维度,例如某一种特征获取策略用于从tcp数据包中获取特征维度ws的特征值,另一种特征获取策略用于从htpp数据包中获取特征维度user

agent的特征值。当然,特征信息的类型也可以是根据实际应用场景进行任意形式的划分。
120.在特征信息可以包括多种类型的情况下,在步骤101中可以获取每种操作系统对应的多种类型的特征信息。由于不同类型所针对的特征维度不同,因此,在完成对特征信息的拆分处理后,可以根据所有操作系统分别对应的、且属于同一类型的特征样本,对该类型对应的操作系统识别模型进行训练,即不同的类型对应不同的操作系统识别模型。如此,能够提升对每种类型的针对性。
121.在一些实施例中,步骤101之后,还包括:当任意一种类型的特征信息对应待扩展的新的特征维度时,执行以下任意一种处理:将新的特征维度作为任意一种类型的特征信息中的特征维度;将新的特征维度作为新的类型的特征信息中的特征维度;其中,新的类型区别于任意一种类型。
122.这里,对于任意一种类型的特征信息,可能会存在特征维度的扩展需求,即需要扩展新的特征维度,该新的特征维度并不存在于已有的特征信息中。例如,某类型的特征信息仅包括特征维度user

agent对应的取值范围,需要扩展的新的特征维度为cookie id,则一种方式是,将特征维度cookie id加入该类型的特征信息,即作为该类型的特征信息中的特征维度;另一种方式是,创建新的类型的特征信息,并将特征维度cookie id作为该新的类型的特征信息中的特征维度,其中,新的类型区别于已有的多个类型。上述两种方式可以任选其一使用,能够提升扩展特征维度的灵活性。
123.在图3b中,图3a示出的步骤104可以更新为步骤202,在步骤202中,根据任意一种类型对应的特征获取策略,对待识别设备进行特征获取处理,得到任意一种类型的特征样本。
124.这里,在特征信息的类型是根据特征获取策略进行划分的情况下,对于每种类型,根据类型对应的特征获取策略对待识别设备进行特征获取处理,得到该类型的特征样本。
125.在图3b中,图3a示出的步骤105可以通过步骤203至步骤204实现,将结合各个步骤进行说明。
126.在步骤203中,根据训练后的任意一种类型对应的操作系统识别模型,对从待识别设备获取到的任意一种类型的特征样本进行预测处理,得到任意一种类型对应的预测操作系统。
127.这里,针对特征信息的每种类型,可以根据对应的训练后的操作系统识别模型,对从待识别设备获取到的该类型的特征样本进行预测处理,得到该类型对应的预测操作系统。即对于每种类型,均可以得到一个对应的预测操作系统。
128.在步骤204中,在得到的多种类型分别对应的预测操作系统中,将出现次数最多的预测操作系统作为待识别设备所应用的操作系统。
129.这里,基于投票机制实现操作系统识别,即在得到的所有类型分别对应的预测操作系统中,将出现次数最多的预测操作系统作为待识别设备所应用的操作系统。若出现次数最多的预测操作系统的数量包括多个,则可以重新从待识别设备中获取各个类型对应的特征样本并进行预测处理,直至出现次数最多的预测操作系统的数量仅为一个。
130.如图3b所示,本技术实施例针对特征信息划分多种类型,并训练多种类型分别对应的预测操作系统,能够基于投票机制进一步提升操作系统识别的精度,减小识别出错的概率。
131.在一些实施例中,参见图3c,图3c是本技术实施例提供的基于人工智能的操作系统识别方法的一个流程示意图,图3a示出的步骤102可以通过步骤301和步骤303实现,将结合各步骤进行说明。
132.在步骤301中,当特征信息中的取值范围有限且非空时,对取值范围进行离散处理得到多个特征值。
133.这里,以特征信息中的任意一个特征维度对应的取值范围为例,当该取值范围有限且非空时,对该取值范围进行离散处理得到多个特征值。其中,有限的取值范围即是指数学概念中的有限区间,例如取值范围[1,5]存在边界,属于有限的取值范围。
[0134]
在一些实施例中,可以通过这样的方式来实现上述的对取值范围进行离散处理得到多个特征值:当取值范围为离散类型的取值范围时,将取值范围包括的多个离散值均作为特征值;当取值范围为连续类型的取值范围时,根据间隔值对取值范围进行采样处理得到多个特征值。
[0135]
这里,取值范围可能是离散类型,即包括的是若干个离散值。举例来说,取值范围内仅包括0、1和2这三个离散值,在该情况下,直接将离散值作为特征值。
[0136]
取值范围可能是连续类型,即使用连续关系进行约束。举例来说,取值范围为[1,5],则可以根据设定的间隔值对取值范围进行均匀采样处理,得到多个特征值,例如间隔值可以为1,则均匀采样处理得到的特征值包括1、2、3、4和5。在某些情况下,根据设定的间隔值对取值范围进行均匀采样处理,也可以视为是将取值范围中的所有整数作为特征值。通过上述方式,能够根据取值范围的类型采用相应的离散处理方式,提升离散处理的成功率。
[0137]
在图3c中,图3a示出的步骤101之后,还可以在步骤302中,当特征信息中的取值范围无限或为空时,在多种操作系统分别对应的特征信息中屏蔽取值范围对应的特征维度。
[0138]
这里,当某个取值范围无限或为空时,证明该取值范围在操作系统识别过程中不具有参考价值,因此在获取到的所有特征信息中屏蔽该取值范围对应的特征维度。其中,无限的取值范围即是指数学概念中的无限区间,例如取值范围[1, ∞]不存在边界,属于无限
的取值范围。
[0139]
在图3c示出的步骤303中,对特征信息进行拆分处理,得到在未屏蔽的多个特征维度分别对应一个特征值的特征样本。
[0140]
这里,若某个或某些特征维度被屏蔽,则对特征信息进行拆分处理,是指拆分得到在未屏蔽的所有特征维度分别对应一个特征值的特征样本。
[0141]
如图3c所示,本技术实施例通过屏蔽不具有参考价值的特征维度,能够有效地减少后续计算量,提升模型训练及模型预测的效率。
[0142]
在一些实施例中,参见图3d,图3d是本技术实施例提供的基于人工智能的操作系统识别方法的一个流程示意图,图3a示出的步骤102可以通过步骤401和步骤403实现,将结合各步骤进行说明。
[0143]
在步骤401中,对特征信息中的取值范围进行离散处理得到多个特征值。
[0144]
在步骤402中,根据统一的进制单位,对任意一个特征维度对应的多个特征值进行更新处理。
[0145]
在对取值范围进行离散处理得到多个特征值后,不同特征维度对应的特征值所使用的进制单位可能不同,例如特征维度a对应的特征值均是使用十进制;特征维度b对应的特征值均是使用十六进制。就算是同一特征维度,对应的不同特征值所使用的进制单位也可能不同,导致模型训练的难度较大。因此,在本技术实施例中,对于每个特征维度,根据统一的进制单位对特征维度对应的所有特征值进行更新处理,以使更新处理后的所有特征值互不相同、且均符合统一的进制单位,其中,对统一的进制单位不做限定,例如可以是十进制。
[0146]
值得说明的是,这里所指的“特征维度对应的所有特征值”并不是针对某一个操作系统,而是面向所有的操作系统。例如对于linux操作系统,特征维度a对应的特征值包括0和1;对于windows操作系统,特征维度a对应的特征值包括1和2。则特征维度a对应的所有特征值包括0、1和2。
[0147]
这里,更新处理的原则是:更新后的特征值能够表达更新前的特征值之间的含义及关系。对于不同的特征维度来说,可以根据相同或不同的更新方式对特征值进行更新处理。以统一的进制单位是十进制为例,若某个特征维度对应的所有特征值包括a、b和c,则更新方式可以是将a、b和c分别更新为0、1和2;若另一个特征维度对应的所有特征值包括0、1和d,则更新方式可以是将0和1保持不变,将d更新为3。
[0148]
在步骤403中,将特征信息拆分为在多个特征维度分别对应一个特征值的特征样本。
[0149]
这里,拆分得到的特征样本中的特征值均为更新后的特征值。
[0150]
在图3d中,图3a示出的步骤105之前,还可以在步骤404中,根据统一的进制单位,对通过特征获取处理得到的特征样本中的多个特征值进行更新处理。
[0151]
由于操作系统识别模型是基于更新后的特征值进行训练的,故在从待识别设备获取到特征样本之后,针对特征样本中每个特征维度的特征值,根据特征维度对应的更新方式进行更新处理。
[0152]
在一些实施例中,可以通过这样的方式来实现上述的对任意一个特征维度对应的多个特征值进行更新处理:将任意一个特征维度对应的多个特征值均更新为区别于设定值
的值;其中,设定值符合统一的进制单位;可以通过这样的方式来实现上述的对通过特征获取处理得到的特征样本中的多个特征值进行更新处理:当通过特征获取处理得到的特征样本对应任意一个特征维度的特征值为空时,将任意一个特征维度的特征值更新为设定值。
[0153]
这里,对于每一个特征维度,可以将特征维度对应的所有特征值均更新为区别于设定值的值。其中,预留设定值的原因在于,在从待识别设备获取特征样本时,可能会由于网络波动或者安全设备拦截数据等因素,导致某个或某些特征维度取不到特征值(即特征值为空),因此可以用设定值来替代未取到的特征值。设定值可以根据实际应用场景进行设定,如设定为0。如此,可以使得待识别设备的特征样本中的每个特征维度均对应有特征值,能够提升预测处理的成功率。
[0154]
在图3d中,图3a示出的步骤105可以更新为步骤405,在步骤405中,根据训练后的操作系统识别模型,对通过特征获取处理得到且经过更新处理的特征样本进行预测处理,并将得到的预测操作系统作为待识别设备所应用的操作系统。
[0155]
这里,根据训练后的操作系统识别模型,对从待识别设备获取到的、且经过更新处理的特征样本进行预测处理,并将预测处理得到的预测操作系统作为待识别设备所应用的操作系统。
[0156]
如图3d所示,本技术实施例根据统一的进制单位对特征值进行更新处理,能够提升模型训练及模型预测的效率和成功率。
[0157]
下面,将说明本技术实施例在一个实际的应用场景中的示例性应用,为了便于理解,以操作系统识别模型为决策树模型的情况进行示例说明。随着互联网的迅速发展,网络中的安全问题也越来越严重,例如会出现侵害用户财产以及隐私泄露等情况。针对于此,可以通过识别攻击者的资产(即操作系统)来应对攻击者的攻击,可以通过识别被攻击者的资产来针对性地进行资产保护,即操作系统识别对于网络安全来说存在重要意义。
[0158]
在本技术实施例中,可以通过特定的特征获取策略来获取待识别设备的特征样本,进而对特征样本进行分析得到待识别设备所应用的操作系统。特征获取策略主要包括被动策略和主动策略两大类,以下进行分别说明。
[0159]
1)被动策略。在被动策略中,不主动向待识别设备发送数据,而是通过监测的方式获取待识别设备产生的数据(流量数据)。例如,可以通过网络核心设备来实现对待识别设备产生的数据的捕获,其中,网络核心设备如待识别设备相关的网络核心交换机或访问控制设备等。根据监测到的数据,可以确定出待识别设备所应用的操作系统,例如,linux操作系统和windows操作系统在tcp数据中的ws字段存在差异,因此,可以通过从待识别设备获取到的ws字段的值(特征值),来判断待识别设备所应用的操作系统是linux操作系统还是windows操作系统。
[0160]
被动策略可以进一步细分为系统层的被动策略和应用层的被动策略,其中,系统层泛指应用层的底层。在系统层的被动策略中,需要获取特征值的特征维度包括但不限于ws、ttl及df;在应用层的被动策略中,需要获取特征值的特征维度包括但不限于http数据中的用户代理(user

agent)以及cookie id,可以在待识别设备访问web服务等场景中监测到特征值,举例来说,当获取到的user

agent的值为windows nt10.0时,表示待识别设备所应用的操作系统是windows10。
[0161]
在被动策略中,可以获得特征值的特征维度较少,且在待识别设备产生的数据较
少的情况下,可能需要很长时间的监测可能才能得到较为准确的特征样本。同时,产生特征值的场景较难定位,可能会由于网络波动或者安全设备影响等因素,导致监测到的特征值与实际的特征值存在一定偏差。
[0162]
2)主动策略。随着操作系统的种类逐渐增加,被动策略的识别精度受到考验,例如在linux操作系统下包括有ubuntu 14.04和ubuntu16.06这两种版本的操作系统,如果单纯使用被动策略,则较难分辨待识别设备所应用的是ubuntu 14.04还是ubuntu16.06。因此,在本技术实施例中还使用到主动策略,主动策略是指向待识别设备发送定制的请求数据,并从待识别设备发送的响应数据中解析出特征样本。由于请求数据支持自由定制,因此相较于被动策略,使用主动策略能够快速监测到更多特征维度的特征值。
[0163]
主动策略可以进一步细分为系统层的主动策略和应用层的主动策略。在系统层的被动策略中,需要获取特征值的特征维度包括但不限于与tcp、udp以及icmp分别相关的特征维度;在应用层的被动策略中,需要获取特征值的特征维度包括但不限于待识别设备所提供的服务,例如可以访问待识别设备所提供的服务从而得到服务的标识(又称banner),通过该标识即可实现操作系统识别,如某些服务是linux操作系统中特有的,另一些服务是windows操作系统中特有的。
[0164]
对于操作系统,可以获取该操作系统应用在不同电子设备上所产生的特征样本,进而构建该操作系统对应的指纹(对应上文的特征信息),例如对应被动策略的指纹以及对应主动策略的指纹。根据多种操作系统分别对应的指纹可以构建指纹库,并根据指纹库对待识别设备进行操作系统识别。在操作系统识别的过程中,若简单将待识别设备的特征样本与指纹库进行匹配,很可能会得到匹配失败的结果,导致无法识别出操作系统,因此,在本技术实施例中,基于机器学习原理来实现准确、有效的操作系统识别。
[0165]
本技术实施例提供了如图6所示的模型训练的流程示意图,将结合示出的各个步骤进行说明。
[0166]
1)指纹库规则分析。在该步骤中,目的是确定指纹库中的各个特征维度的实际含义以及对应的取值范围,若指纹库是基于主动策略构建的,则还需确定发送的请求数据与特征维度之间的关系。
[0167]
为了便于理解,后文以基于nmap探测策略构建的指纹库为例进行说明。nmap探测策略是一种主动策略,其原理是向待识别设备发送如下表所示的16个定制的数据包(即请求数据),并根据待识别设备发送的响应数据来生成响应序列,每个响应序列包括一些特征维度(也称标志位),其中,可以对向待识别设备发送的数据包中的标志位、窗口大小以及时间戳中的至少一种进行修改。发送的数据包以及对应的响应序列如下表所示:
[0168][0169]
在上表中,向待识别设备发送的数据包中的值会经过一定的计算或者变化,形成待识别设备所响应的响应序列中的值。举例来说,seq响应序列的gcd维度的值是指待识别设备接收到的前6个tcp syn数据包中初始序列号(initial sequence numbers,isn)的值的最大公约数。
[0170]
基于nmap探测策略构建的windows 7操作系统对应的指纹如下所示:
[0171]
#windows 7laptop
[0172]
fingerprint microsoft windows 7
[0173]
class microsoft|windows|7|general purpose
[0174]
cpe cpe:/o:microsoft:windows_7
[0175]
seq(sp=fc

100%gcd=1

6%isr=10b

115%ti=i%ii=i%ss=s%ts=7)
[0176]
ops(o1=m523nw8st11%o2=m523nw8st11%o3=m523nw8nnt11%o4=m523nw8st11%o5=m523nw8st11%o6=m523st11)
[0177]
win(w1=2000%w2=2000%w3=2000%w4=2000%w5=2000%w6=2000)
[0178]
ecn(r=y%df=y%t=7b

85%tg=80%w=2000%o=m523nw8nns%cc=n%q=)
[0179]
t1(r=y%df=y%t=7b

85%tg=80%s=o%a=s %f=as%rd=0%q=)
[0180]
t2(r=y%df=y%t=7b

85%tg=80%w=0%s=z%a=s%f=ar%o=%rd=0%q=)
[0181]
t3(r=y%df=y%t=7b

85%tg=80%w=0%s=z%a=o%f=ar%o=%rd=0%q=)
[0182]
t4(r=y%df=y%t=7b

85%tg=80%w=0%s=z%a=o%f=ar%o=%rd=0%q=)
[0183]
t5(r=y%df=y%t=7b

85%tg=80%w=0%s=z%a=s %f=ar%o=%rd=0%q=)
[0184]
t6(r=y%df=y%t=7b

85%tg=80%w=0%s=a%a=o%f=r%o=%rd=
0%q=)
[0185]
t7(r=y%df=y%t=7b

85%tg=80%w=0%s=z%a=s %f=ar%o=%rd=0%q=)
[0186]
u1(df=n%t=7b

85%tg=80%ipl=164%un=0%ripl=g%rid=g%ripck=g%ruck=g%rud=g)
[0187]
ie(dfi=n%t=7b

85%tg=80%cd=z)
[0188]
其中,fingerprint用于定义指纹的名称,即microsoft windows 7;class一行表示操作系统的供应商(如microsoft)、操作系统的类别(如windows操作系统)、第几代操作系统(如第7代操作系统)、以及设备类型(如general purpose,即通用设备);通用平台枚举(common platform enumeration,cpe)一行用于描述操作系统与cpe库中间的关联关系。值得说明的是,上述指纹中的%符号用于区分不同的特征维度,并不具有实际含义。
[0189]
2)特征维度清洗。该步骤主要用于屏蔽(清洗)与模型训练原理相矛盾或者会导致精度损失的一些特征维度,即“毒样本”。屏蔽的对象主要包括指纹库中取值范围无限(即取值范围不闭合)的特征维度、以及取值范围为空的特征维度,其中,取值范围无限的特征维度的特征值无法量化表达,取值范围为空的特征维度对于模型训练不具有参考价值。举例来说,某个操作系统的指纹中,u1响应序列中的un特征维度的取值范围为大于零,由于该特征维度的特征值无法量化表达,故在指纹库中屏蔽该特征维度。
[0190]
值得说明的是,模型训练是一个不断迭代优化的过程,因此特征维度清洗的步骤也可以是不断迭代执行的。
[0191]
3)指纹拆分。在该步骤中,对于指纹库中的每个指纹,将其拆分为在每个特征维度(指未屏蔽的特征维度)均对应一个特征值的特征样本。首先,对指纹中各个特征维度的取值范围进行离散处理,取值范围主要包括两种类型即连续类型和离散类型,针对不同类型的取值范围执行不同的离散处理方式。连续类型的取值范围通常用符号
“‑”
表示,举例来说,“sp=0

5”表示特征维度sp的取值范围是区间[0,5],对于该情况,可以根据间隔值1对取值范围进行均匀采样,得到“sp=0”、“sp=1”、
……“
sp=5”6个为整数的特征值。离散类型的取值范围通常用符号“|”表示,举例来说,“gcd=b8|114|170|1cc”表示特征维度gcd的取值范围包括b8、114、170及1cc这4个离散值,对于该情况,直接将离散值作为特征值即可。若某指纹除了“sp=0

5”和“gcd=b8|114|170|1cc”之外,其他特征维度对应的取值范围均仅包括一个特征值,则该指纹可以拆分出24个特征样本,每个特征样本在每个特征维度均对应唯一的特征值。
[0192]
这里,还可以面向指纹库中的所有指纹,统计各个特征维度(指未屏蔽的特征维度)的汇总取值范围,便于后续进行特征值更新(又称特征值映射)。例如,特征维度gcd的汇总取值范围是0~3458752000,特征维度ci的汇总取值范围是z;rd;ri;bi;i。
[0193]
4)特征样本筛选。随着指纹包括的特征维度越多和/或特征维度的取值范围越大,该指纹拆分出的特征样本的数量越多,某些情况下单条指纹拆分出的特征样本的数量甚至能达到上亿个。如果将全部的特征样本参与模型训练,则所要耗费的计算资源是无法接受的,因此,在本技术实施例中,经过指纹拆分后,根据筛选数量对得到的多个特征样本进行筛选处理。图7提供了筛选处理的一种示例,当单条指纹对应的全集数量小于或等于10个时,在全集中随机筛选出1个特征样本;当单条指纹对应的全集数量大于10个且不大于500
个时,在全集中随机筛选出2个特征样本;当单条指纹对应的全集数量大于500个时,在全集中随机筛选出4个特征样本。其中,单条指纹对应的全集是指该指纹拆分出的所有特征样本。
[0194]
值得说明的是,筛选处理的方式并不限于随机筛选,例如还可以采用正态采样的方式,只是相较于随机筛选,正态采样的效果较差,可能在后续模型训练时会导致模型精度的损失。
[0195]
5)特征值更新。在该步骤中,针对每个特征维度,对汇总取值范围中经过离散处理得到的特征值进行更新(映射),以使更新后的特征值即能够表达更新前的特征值之间的含义及关系,又能便于模型训练。这里,可以按照统一的进制单位对特征值进行更新,为了便于理解,以十进制为例进行说明。
[0196]
响应序列seq中的特征维度sp的汇总取值范围是符合十六进制的“0

1f2”,则更新方式是将汇总取值范围中经过离散处理得到的特征值换算为十进制之后,再加上正整数2。由于这里采用的是决策树模型,而0值不能参与决策树模型的训练,因此预留0值;另外,在获取待识别设备的特征样本时,某个或某些特征维度可能取不到特征值,例如待识别设备只收到3个tcp syn数据包,则无法计算出特征维度gcd的特征值,因此,预留正整数1(对应上文的设定值)来替代待识别设备的特征样本中不存在的特征值。
[0197]
特征值除了是整数外,还可能是特殊取值(如字母)。举例来说,特征维度ts的汇总取值范围是“u|0

22”,则更新方式可以是将特征值u更新为2,同时将0、1、2
……
22换算为十进制之后再加上正整数3。
[0198]
由于不同特征维度的汇总取值范围可能不同,因此,不同特征维度对于特征值的更新方式也可以不一致,只要能够将特征值更新为独立、唯一、且符合统一进制单位的更新方式,均可应用在本技术实施例中。
[0199]
6)模型训练。完成特征值的更新后,可以根据所有的特征样本训练决策树模型,这里以决策树模型为迭代二叉树3(iterative dichotomiser 3,id3)模型为例进行说明,其原理是利用信息熵选择信息增益最大的特征维度作为用于分类(分裂)的特征维度。在训练后的id3模型中,包括根节点、子节点以及叶子节点,其中,子节点是由父节点(指子节点的上一个节点)分裂得到;根节点是没有父节点的节点,即初始分裂节点;叶子节点是没有子节点的节点。在本技术实施例中,根节点和子节点均对应特征维度,叶子节点对应操作系统。作为示例,本技术实施例提供了如图8所示的训练后的id3模型的示意图,在图8中,根节点为特征维度gcd,示例性地示出了作为子节点的特征维度tg以及特征维度un,还示例性地示出了作为叶子节点的windows server 2008操作系统以及linux 2.6.35操作系统。
[0200]
值得说明的是,可以将由所有的特征样本构建的样本集划分为训练集和测试集,训练集包括的特征样本的数量与测试集包括的特征样本的数量之间的数量比例可根据实际应用场景进行设定,如为8:2。然后,根据训练集进行模型训练,根据测试集确定训练后的决策树模型的模型指标,若模型指标未满足指标条件,则可以从特征获取策略、特征值更新、模型参数调整以及算法优化等各个方面进行优化,例如可以根据训练集对训练后的决策树模型进行再次训练。
[0201]
另外,在本技术实施例中,针对不同的特征获取策略,可以训练不同的决策树模型。例如,基于被动策略构建的指纹库训练一个决策树模型,基于主动策略构建的指纹库训
练另一个决策树模型。又例如,针对系统层的被动策略、应用层的被动策略、系统层的主动策略和应用层的主动策略,分别训练一个决策树模型。
[0202]
如果某个指纹库存在需要扩展的新的特征维度,则可以将新的特征维度加入到该指纹库中以实现对指纹库的更新,再根据更新后的指纹库重新进行模型训练;也可以根据新的特征维度单独构建一个指纹库,并根据单独构建的指纹库进行模型训练。
[0203]
本技术实施例提供了如图9所示的模型预测的流程示意图,将结合示出的各个步骤进行说明。
[0204]
1)特征样本获取。这里,可以根据训练后的决策树模型对应的特征获取策略,对待识别设备进行特征获取处理,得到待识别设备的特征样本。其中,可以通过ip地址来区分不同的待识别设备。
[0205]
2)特征值更新。这里,根据模型训练过程中所采用的各个特征维度对应的更新方式,对待识别设备的特征样本中各个特征维度的特征值进行更新处理。
[0206]
3)模型预测。这里,将经过步骤2)得到的特征样本输入至训练后的决策树模型中,将训练后的决策树模型输出的叶子节点对应的操作系统,作为预测操作系统。其中,可以获取待识别设备的多个特征样本,并确定每个特征样本对应的预测操作系统,最终将出现次数最多的预测操作系统,作为待识别设备所应用的操作系统,即在训练后的决策树模型内部进行投票。另一种方式是,持续获取待识别设备的特征样本,当获取到的多个特征样本的特征值波动程度小于波动程度阈值时,证明特征样本已经相对稳定,确定最新获取到的特征样本对应的预测操作系统,以作为待识别设备所应用的操作系统。
[0207]
4)外部投票。
[0208]
在训练后的决策树模型的数量包括多个时,可以进行外部投票,这里的外部投票是指在训练后的决策树模型之间进行投票。例如,在得到每个训练后的决策树模型最终对应的一个预测操作系统后,将出现次数最多的一个预测操作系统作为待识别设备所应用的操作系统。如果出现次数最多的预测操作系统的数量包括多个,则可以再次进行模型预测,直至出现次数最多的预测操作系统的数量仅为一个。
[0209]
通过本技术实施例,能够提升操作系统识别的灵活性、准确性和通用性,适用于不同的待识别设备;同时,也能够避免操作系统识别过程中所耗费的计算资源被白白浪费。
[0210]
下面继续说明本技术实施例提供的基于人工智能的操作系统识别装置455实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的基于人工智能的操作系统识别装置455中的软件模块可以包括:获取模块4551,用于获取多种操作系统分别对应的特征信息;其中,特征信息包括与多个特征维度分别对应的取值范围;拆分模块4552,用于对特征信息中的取值范围进行离散处理得到多个特征值,并将特征信息拆分为在多个特征维度分别对应一个特征值的特征样本;训练模块4553,用于根据多种操作系统分别对应的特征信息所拆分出的特征样本,对操作系统识别模型进行训练;获取模块4551,还用于根据特征信息对应的特征获取策略,对待识别设备进行特征获取处理;预测模块4554,用于根据训练后的操作系统识别模型,对通过特征获取处理得到的特征样本进行预测处理,并将得到的预测操作系统作为待识别设备所应用的操作系统。
[0211]
在一些实施例中,特征信息包括多种类型;训练模块4553,还用于针对多种类型中的任意一种类型,执行以下处理:根据多种操作系统分别对应的任意一种类型的特征样本,
对任意一种类型对应的操作系统识别模型进行训练;其中,任意一种类型的特征样本是对任意一种类型的特征信息进行拆分得到的;训练后的任意一种类型对应的操作系统识别模型用于预测得到任意一种类型对应的预测操作系统;预测模块4554,还用于:在得到的多种类型分别对应的预测操作系统中,将出现次数最多的预测操作系统作为待识别设备所应用的操作系统。
[0212]
在一些实施例中,多种类型中的每种类型对应一种特征获取策略;获取模块4551,还用于:根据任意一种类型对应的特征获取策略,对待识别设备进行特征获取处理,得到任意一种类型的特征样本;预测模块4554,还用于:根据训练后的任意一种类型对应的操作系统识别模型,对从待识别设备获取到的任意一种类型的特征样本进行预测处理,得到任意一种类型对应的预测操作系统。
[0213]
在一些实施例中,基于人工智能的操作系统识别装置455还包括扩展模块,用于当任意一种类型的特征信息对应待扩展的新的特征维度时,执行以下任意一种处理:将新的特征维度作为任意一种类型的特征信息中的特征维度;将新的特征维度作为新的类型的特征信息中的特征维度;其中,新的类型区别于任意一种类型。
[0214]
在一些实施例中,获取模块4551,还用于:当特征信息为被动类型时,获取待识别设备发送的数据,并从数据中解析出特征样本;当特征信息为主动类型时,向待识别设备发送请求数据,并从待识别设备发送的响应数据中解析出特征样本;其中,响应数据是待识别设备对请求数据进行响应处理得到的。
[0215]
在一些实施例中,特征信息包括多种被动类型,且不同被动类型分别对应的特征获取策略所应用的通信协议不同;和/或特征信息包括多种主动类型,且不同主动类型分别对应的特征获取策略所应用的通信协议不同。
[0216]
在一些实施例中,拆分模块4552,还用于:当取值范围有限且非空时,对取值范围进行离散处理得到多个特征值;当取值范围无限或为空时,在多种操作系统分别对应的特征信息中屏蔽取值范围对应的特征维度。
[0217]
在一些实施例中,拆分模块4552,还用于:当取值范围为离散类型的取值范围时,将取值范围包括的多个离散值均作为特征值;当取值范围为连续类型的取值范围时,根据间隔值对取值范围进行采样处理得到多个特征值。
[0218]
在一些实施例中,拆分模块4552,还用于:对特征信息进行拆分处理,得到在未屏蔽的多个特征维度分别对应一个特征值的特征样本。
[0219]
在一些实施例中,基于人工智能的操作系统识别装置455还包括更新模块,用于:针对任意一个特征维度,执行以下处理:根据统一的进制单位,对任意一个特征维度对应的多个特征值进行更新处理;根据统一的进制单位,对从待识别设备获取到的特征样本中的多个特征值进行更新处理。
[0220]
在一些实施例中,更新模块还用于:将任意一个特征维度对应的多个特征值均更新为区别于设定值的值;其中,设定值符合统一的进制单位;当通过特征获取处理得到的特征样本对应任意一个特征维度的特征值为空时,将任意一个特征维度的特征值更新为设定值。
[0221]
在一些实施例中,预测模块4554,还用于:根据训练后的操作系统识别模型,对通过特征获取处理得到的多个特征样本分别进行预测处理,得到预测操作系统;将多个预测
操作系统中出现次数最多的预测操作系统,作为待识别设备所应用的操作系统。
[0222]
在一些实施例中,预测模块4554,还用于:当通过特征获取处理得到的多个特征样本的特征值波动程度小于波动程度阈值时,根据训练后的操作系统识别模型,对多个特征样本中最新获取到的特征样本进行预测处理;当多个特征样本的特征值波动程度大于或等于波动程度阈值时,继续对待识别设备进行特征获取处理。
[0223]
在一些实施例中,基于人工智能的操作系统识别装置455还包括筛选模块,用于:针对任意一种操作系统,执行以下处理:确定与任意一种操作系统对应的特征样本的数量正相关的筛选数量;其中,筛选数量小于任意一种操作系统对应的特征样本的数量;根据筛选数量对任意一种操作系统对应的多个特征样本进行筛选处理;其中,筛选处理得到的特征样本用于训练操作系统识别模型。
[0224]
在一些实施例中,训练模块4553,还用于:根据多种操作系统分别对应的特征信息所拆分出的特征样本构建样本集,并将样本集划分为训练集和测试集;根据训练集对操作系统识别模型进行训练,并根据测试集确定训练后的操作系统识别模型的模型指标;当模型指标未满足指标条件时,根据训练集对训练后的操作系统识别模型再次训练,直至新的模型指标满足指标条件。
[0225]
本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术实施例上述的基于人工智能的操作系统识别方法。
[0226]
本技术实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本技术实施例提供的方法,例如,如图3a、图3b、图3c及图3d示出的基于人工智能的操作系统识别方法。
[0227]
在一些实施例中,计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、闪存、磁表面存储器、光盘、或cd

rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
[0228]
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
[0229]
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
[0230]
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
[0231]
以上,仅为本技术的实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献