掌桥专利:专业的专利平台
掌桥专利
首页

一种基于流量指纹的网络资产探测方法

文献发布时间:2023-06-19 19:27:02


一种基于流量指纹的网络资产探测方法

技术领域

本申请涉及计算机技术领域,尤其涉及一种基于流量指纹的网络资产探测方法。

背景技术

网络资产包括主机设备、路由器、安全设备等网络设备,还包括:操作系统、服务及应用等。随着计算机网络技术的发展,网络资产越来越多。网络资产探测是实现数据治理的重要前提之一,在数据安全相关工作中具有应用价值。

传统网络资产探测中,人工统计是最原始的资产探测方法,具有成本高、效率低下的缺点。为了提高探测效率,相关技术提供了三种方法,第一种是基于客户端的自动统计方法,但是该方法需要在每台设备上安装客户端,具有入侵性强、可能影响到业务系统的业务正常流转的缺陷。第二种是基于简单网络管理协议(Simple Network ManagementProtocol,SNMP),使用嵌入到网络设施中的代理软件来收集网络通信信息和有关网络设备的统计数据,但是每个目标设备都需开启SNMP协议,过程繁琐且安全问题频出。第三种是利用不同开源的端口扫描器相结合的方式发现资产,该方法较为普遍,常用的工具有Nmap、Masscan、Zmap等,这些扫描器工具各有优劣性,需要综合起来使用,对操作系统、服务及应用的探测效率有一定的提高,但是在具体的业务场景下,其性能不佳,且探测准确率较低。

因此,现有技术存在网络资产探测准确率低的技术问题。

发明内容

本申请提供了一种基于流量指纹的网络资产探测方法,用以解决现有技术存在的网络资产探测准确率低的技术问题。

根据本申请的第一方面,提供了一种基于流量指纹的网络资产探测方法,包括:

向待确定网络资产的目标网络所在的设备发送预设数据包,以供所述目标网络所在的设备基于所述预设数据包回传所述待确定网络资产的反馈信息;和,接收所述目标网络所在的设备上的检测点采集到的所述待确定网络资产的流量信息;

根据所述反馈信息和所述流量信息,分别生成第一流量指纹和第二流量指纹;

在所述第一流量指纹与所述第二流量指纹不相同时,将所述第一流量指纹和所述第二流量指纹分别输入至预设神经网络,以使所述预设神经网络分别输出第一预测结果和第二预测结果;其中,所述预设神经网络是通过已知流量指纹和所述已知流量指纹关联的资产类型进行的训练,所述第一预测结果为所述第一流量指纹关联的资产类型,所述第二预测结果为所述第二流量指纹关联的资产类型;

根据所述第一预测结果和第二预测结果,确定所述待确定网络资产的资产类型。

可选地,所述根据所述反馈信息和所述流量信息,分别生成第一流量指纹和第二流量指纹,包括:

对所述反馈信息进行预处理,生成第一流量指纹;

对所述流量信息进行筛选,得到筛选结果,并对所述筛选结果进行预处理,生成第二流量指纹。

可选地,对所述反馈信息进行预处理,生成第一流量指纹,包括:

对所述反馈信息进行特征提取,得到至少一种类型的信息特征;

从所述信息特征中提取目标字段,并根据所述目标字段进行数值计算,得到数值特征;

针对每种类型的信息特征,按照与所述类型对应的编码方式,对所述信息特征进行编码,得到编码后的信息特征;

将所有类型的所述编码后的信息特征和数值特征组合为特征向量,并将所述特征向量作为所述第一流量指纹。

可选地,当所述类型包括枚举型和字符型时,针对每种类型的信息特征,按照与所述类型对应的编码方式,对所述信息特征进行编码,得到编码后的信息特征,包括:

针对枚举型的信息特征,按照与所述枚举型对应的one-hot编码方式,对枚举型的信息特征进行编码,得到编码后的枚举型特征;

针对字符型的信息特征,按照与所述字符型对应的效应编码方式,对枚举型的信息特征进行编码,得到编码后的字符型特征。

可选地,基于流量指纹的网络资产探测方法还包括:

构建包含输入层、隐藏层和输出层的初始神经网络;

获取已知流量指纹和所述已知流量指纹关联的资产类型,并将获取到的已知流量指纹和所述已知流量指纹关联的资产类型作为训练数据,对所述初始神经网络进行训练,并在训练过程中采用预设损失函数计算所述初始神经网络输出的预测结果与所述已知流量指纹关联的资产类型之间的损失函数值,直至达到预设停止训练条件,得到预设神经网络。

可选地,所述预设损失函数为包含正则项的损失函数,采用如下公式:

其中,L为损失函数的函数值,y为真实的标签值,用于表示所述已知流量指纹关联的资产类型,

可选地,基于流量指纹的网络资产探测方法还包括:

在所述第一流量指纹与所述第二流量指纹相同时,将所述第一流量指纹或所述第二流量指纹输入至预设神经网络,以使所述预设神经网络输出第一预测结果或第二预测结果;

根据所述第一预测结果或第二预测结果,确定所述待确定网络资产的资产类型。

根据本申请的第二方面,提供了一种基于流量指纹的网络资产探测装置,包括:

发送接收模块,用于向待确定网络资产的目标网络所在的设备发送预设数据包,以供所述目标网络所在的设备基于所述预设数据包回传所述待确定网络资产的反馈信息;和,接收所述目标网络所在的设备上的检测点采集到的所述待确定网络资产的流量信息;

生成模块,用于根据所述反馈信息和所述流量信息,分别生成第一流量指纹和第二流量指纹;

输入模块,用于在所述第一流量指纹与所述第二流量指纹不相同时,将所述第一流量指纹和所述第二流量指纹分别输入至预设神经网络,以使所述预设神经网络分别输出第一预测结果和第二预测结果;其中,所述预设神经网络是通过已知流量指纹和所述已知流量指纹关联的资产类型进行的训练,所述第一预测结果为所述第一流量指纹关联的资产类型,所述第二预测结果为所述第二流量指纹关联的资产类型;

确定模块,用于根据所述第一预测结果和第二预测结果,确定所述待确定网络资产的资产类型。

根据本申请的第三方面,提供了一种电子设备,包括:至少一个处理器和存储器;

所述存储器存储计算机执行指令;

所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面所述的基于流量指纹的网络资产探测方法。

根据本申请的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上第一方面所述的基于流量指纹的网络资产探测方法。

根据本申请的第五方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面所述的基于流量指纹的网络资产探测方法。

本申请提供的一种基于流量指纹的网络资产探测方法,先向待确定网络资产的目标网络所在的设备发送预设数据包,以供目标网络所在的设备基于预设数据包回传待确定网络资产的反馈信息;和,接收目标网络所在的设备上的检测点采集到的待确定网络资产的流量信息;然后根据反馈信息和流量信息,分别生成第一流量指纹和第二流量指纹;在第一流量指纹与第二流量指纹不相同时,将第一流量指纹和第二流量指纹分别输入至预设神经网络,以使预设神经网络分别输出第一预测结果和第二预测结果;其中,预设神经网络是通过已知流量指纹和已知流量指纹关联的资产类型进行的训练,第一预测结果为第一流量指纹关联的资产类型,第二预测结果为第二流量指纹关联的资产类型;最后根据第一预测结果和第二预测结果,确定待确定网络资产的资产类型。

本申请提供两种探测方式:基于发送预设数据包的主动式扫描识别方式和基于检测点的被动式流量分析方式,并将这两种探测方式与预设神经网络进行了有效结合,即将主动式扫描识别方式探测到的反馈信息对应的第一流量指纹、以及被动式流量分析方式采集到的流量信息对应的第二流量信息均作为了预设神经网络的输入,进而通过训练好的预设神经网络进行网络资产的确定,在提高网络资产识别效率的同时,提高了网络资产识别的准确率。

应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1为本申请实施例提供的一种基于流量指纹的网络资产探测方法的流程示意图;

图2为图1中S102的流程示意图;

图3为本申请实施例提供的又一种基于流量指纹的网络资产探测方法的流程示意图;

图4为本申请实施例提供的另一种基于流量指纹的网络资产探测方法的流程示意图;

图5为本申请实施例提供的一种基于流量指纹的网络资产探测装置的结构示意图;

图6为本申请实施例提供的一种电子设备的结构示意图。

通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。

传统网络资产探测中,人工统计是最原始的资产探测方法,具有成本高、效率低下的缺点。为了提高探测效率,相关技术提供了三种方法,第一种是基于客户端的自动统计方法,但是该方法需要在每台设备上安装客户端,具有入侵性强、可能影响到业务系统的业务正常流转的缺陷。第二种是基于简单网络管理协议(Simple Network ManagementProtocol,SNMP),使用嵌入到网络设施中的代理软件来收集网络通信信息和有关网络设备的统计数据,但是每个目标设备都需开启SNMP协议,过程繁琐且安全问题频出。第三种是利用不同开源的端口扫描器相结合的方式发现资产,该方法较为普遍,常用的工具有Nmap、Masscan、Zmap等,这些扫描器工具各有优劣性,需要综合起来使用,对操作系统、服务及应用的探测效率有一定的提高,但是在具体的业务场景下,其性能不佳,且探测准确率较低。因此,现有技术存在网络资产探测准确率低的技术问题。

为了解决上述技术问题,本申请的整体发明构思为如何提供一种应用于计算机领域,用于提高网络资源确定准确率的方法。

下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

实施例1:

图1为本申请实施例提供的一种基于流量指纹的网络资产探测方法的流程示意图。如图1所示,本实施例的方法,包括以下步骤S101~S104,其中:

S101:向待确定网络资产的目标网络所在的设备发送预设数据包,以供目标网络所在的设备基于预设数据包回传待确定网络资产的反馈信息;和,接收目标网络所在的设备上的检测点采集到的待确定网络资产的流量信息。

在本申请实施例中,可以通过探测器向待确定网络资产的目标网络所在的设备发送预设数据包。目标网络为待探测的网络。预设数据包为预先构造好的数据包,主要包括以下三大类:ICMP(Internet Control Message Protocol,网络控制报文协议)数据包、TCP(Transmission Control Protocol,传输控制协议)数据包和UDP(User DatagramProtocol,用户数据报协议)数据包。其中,ICMP数据包有计算机命令Echo、时间戳Timestamp数据包等,TCP数据包有请求三次握手中的请求同步(synchronize,SYN)包/确定同步(ACKnowledge Character,ACK)包等。

例如,上述TCP协议分四层,每层包含不同的协议,且具有不同的功能,其中,SNMP协议是TCP协议中的应用层协议,本实施例可以采用传输层的TCP协议、UDP协议等。网络层IP协议族里的ICMP协议,不涉及应用层,TCP协议在建立连接(三次握手)和断开(四次挥手)时,都对应提供有合适的机制;UDP协议在发生错误时,通过下层网络层中的ICMP协议传回与错误原因对应的消息。

在预设数据包有上述三类的情况下,反馈信息包括:基于ICMP数据包返回的第一大类反馈信息,基于TCP数据包返回的第二大类反馈信息以及基于UDP数据包返回的第三大类反馈信息。

第一大类反馈信息可以指ICMP头部结构中的字段,例如:类型Type和代码Code;第二大类反馈信息可以指TCP头部结构中的字段;第三大类反馈信息可以指UDP数据包中的字段以及用于反映校验和Checksum完整性的信息。可选地,上述TCP头部结构中的字段,例如:TCP字段标志TCP Flags、TCP报头TCP Options、拥塞指示Congestion Notification、初始窗口Initial Window等。第二大类反馈信息和第三大类反馈信息分别包含TCP、UDP数据包在网络传输过程中添加的IPV4头部结构中的IP字段标志IP Flags、IP报头IP Options。

在步骤S101中,本实施例提供了两种探测方式:基于发送预设数据包的主动式扫描识别方式和基于检测点的被动式流量分析方式。其中,主动式扫描识别方式主要是依靠与目标网络通信的方式实现对反馈信息的获取,即利用以上预先构造好的数据包中的网络协议的交互、以及错误回传的特性,能够准确获取到待确定网络资产的反馈信息,为在S102中生成第一流量指纹提供数据支撑。

S102:根据反馈信息和流量信息,分别生成第一流量指纹和第二流量指纹。

第一流量指纹由不同类型的编码后的信息特征和数值特征组合构成,编码后的信息特征、数值特征的具体描述以及第一流量指纹的生成过程在实施例2中有具体描述,此处不再赘述。

在实际应用中,生成的第一流量指纹、第二流量指纹均是待识别的指纹,分别是根据返回的反馈信息、流量信息计算和转换得到,而训练集中的所有已知流量指纹在预设神经网络预训练之前是确定的,由于预设神经网络能够从所有的已知流量指纹中学到潜在特征,因此无论是第一流量指纹,还是第二流量指纹,识别其是否为已知流量指纹的结果只能通过预设神经网络的输出获得。也就是说,在实际应用中,该预设神经网络能够辨别出待识别的流量指纹是否存在于训练集中的已知流量指纹,以及待识别的流量指纹对应的资产类型是否存在于已知流量指纹对应的资产类型中。

S103:在第一流量指纹与第二流量指纹不相同时,将第一流量指纹和第二流量指纹分别输入至预设神经网络,以使预设神经网络分别输出第一预测结果和第二预测结果。

其中,预设神经网络是通过已知流量指纹和已知流量指纹关联的资产类型进行的训练,第一预测结果为第一流量指纹关联的资产类型,第二预测结果为第二流量指纹关联的资产类型。

在实际中,由于网络不可靠,例如:可能出现如链路故障、丢包、丢帧、出错等问题,甚至由于目标网络所在设备的自身业务负载过重,会响应慢或数据包丢弃。因此在上述网络不可靠的情况下,容易造成生成的指纹中的某个字段缺失或偏离真实值,因此形成的流量指纹容易出现错误。在这种情况下,本申请实施例通过两种探测方式对应的流量指纹进行比对的方式,能够提高流量指纹的识别准确率,进而提高网络资产探测的准确率。

在本申请实施例中,一个已知流量指纹可以关联一个网络资产的资产类型,但是一个网络资产可以对应多个已知流量指纹。在第一流量指纹、第二流量指纹的形成过程中,形成的第一流量指纹、第二流量指纹关联的网络资产是不确定的,需要由预设神经网络进行确定。可选地,每个流量指纹的表现类型都是一个一维特征向量。

本申请使用流量指纹来关联网络资产,方便高效,解决了现有资产指纹生成方法需要从多方获取各种信息(包括但不限于:厂商名称、型号、系列、版本号、固定开放端口,启用服务版本,常见开启协议,请求协议的banner、证书等信息)的复杂情况。

S104:根据第一预测结果和第二预测结果,确定待确定网络资产的资产类型。

在第一流量指纹与第二流量指纹不相同时,如果第一预测结果和第二预测结果相同,那么确定待确定网络资产的资产类型。

本申请实施例提供了一种基于流量指纹的网络资产探测方法,该方法通过主动式扫描识别方式和被动式流量分析方式进行结合以实现对网络资源的探测发现,其中主动式扫描识别方式是通过向目标网络所在的设备发送预设数据包的方式获取反馈信息,进而生成对应的第一流量指纹,被动式流量分析方式是在目标网络所在设备上部署检测点,被动收集经该检测点的流量信息,进而生成对应的第二流量指纹。最后,在第一流量指纹与第二流量指纹不相同时,将第一流量指纹与第二流量指纹分别作为输入,输入至预设神经网络,以使预设神经网络对该流量指纹对应的待确定网络资产进行预测,最终确定资产类型。该方法在不影响目标网络所在设备的正常工作的情况下,通过两种探测方式以及预设神经网络的结合,在提高网络资产识别效率的同时,提高了网络资产识别的准确率。

在上述实施例的基础上,下面结合几个具体的实施例对本申请技术方案进行更详细的描述。

实施例2:

在图1所示实施例的基础上,本实施例重点对图1中的S102进行细化。

如图2所示,S102包括以下步骤S201~S202,其中:

S201:对反馈信息进行预处理,生成第一流量指纹。

应理解,预处理包括特征提取和数值计算,具体描述见下述S2011~S2012,此处不再赘述。

S202:对流量信息进行筛选,得到筛选结果,并对筛选结果进行预处理,生成第二流量指纹。

在本申请实施例中,基于主动式扫描识别方式得到的反馈信息生成第一流量指纹的过程,与基于检测点的被动式流量分析方式得到的流量信息生成第二流量指纹的过程类似,只是S202在执行预处理之前,多了一个筛选的操作。由于检测点收集到的流量信息数量比较多,因此,本申请实施例可以按照同一源IP、源端口、目标IP和/或目标端口作为筛选条件进行筛选。

通过执行S201以及S202,本申请实施例能够保证第一流量指纹和第二流量指纹的表现形式均是数值型,进而保证预设神经网络的输入数据的有效性。

一种可能的实现方式中,S201,对反馈信息进行预处理,生成第一流量指纹,包括以下步骤S2011~S2014,其中:

S2011:对反馈信息进行特征提取,得到至少一种类型的信息特征。

在本申请实施例中,信息特征的类型包括:枚举型和字符型。

S2012:从信息特征中提取目标字段,并根据目标字段进行数值计算,得到数值特征。

应理解,数值特征的类型是数字型。由于信息特征是预设数据包的信息特征,因此目标字段是预设数据包的字段。S1012是将相应的字段提取出来进行数值计算,并将数值计算得到的结果确定为数值特征,该数值特征作为第一流量指纹的一个部分。

通过计算得到的数值特征包括:TCP选项中的时间戳增量速率、TCP初始序列号的最大公约数、TCP初始序列号的计算速率、TCP初始序列号的可预测性指数、IP和标识ID的差值计算、IP的初始生存时间值TTL等。

S2013:针对每种类型的信息特征,按照与类型对应的编码方式,对信息特征进行编码,得到编码后的信息特征。

在本申请实施例中,枚举型对应的编码方式为one-hot编码方式,字符型对应的编码方式为效应编码方式,下文中有具体描述,此处不再赘述。应理解,由于预设神经网络接受的是数值型的输入,因此上述两种不同类型的信息特征的形式均不能满足预设神经网络的输入条件,因此需要对上述两种类型的信息特征分别进行编码,而数值特征能够满足预设神经网络的输入条件,因此本申请实施例无需对数值特征进行处理。

S2014:将所有类型的编码后的信息特征和数值特征组合为特征向量,并将特征向量作为第一流量指纹。

需要注意的是,一种类型的信息特征或数值特征并不能单独构成完整的第一流量指纹,只能作为第一流量指纹的一部分与其他部分进行组合,进而构成第一流量指纹。由于信息特征的类型包括:枚举型和字符型,且数值特征的类型是数字型,因此第一流量指纹包括上述三种类型的特征。

本申请实施例针对不同类型的信息特征,进行对应方式的编码处理,提高了处理的有效性,能够保证为预设神经网络提供的是有效数据。

一种可能的实现方式中,当类型包括枚举型和字符型时,S2013,针对每种类型的信息特征,按照与类型对应的编码方式,对信息特征进行编码,得到编码后的信息特征,包括:(1)针对枚举型的信息特征,按照与枚举型对应的one-hot编码方式,对枚举型的信息特征进行编码,得到编码后的枚举型特征;(2)针对字符型的信息特征,按照与字符型对应的效应编码方式,对枚举型的信息特征进行编码,得到编码后的字符型特征。

在本申请实施例中,枚举型的信息特征可以进行one-hot编码,以对枚举型特征TCP Flags进行one-hot编码为例,进行如下说明:TCP Flags字段可能的取值有:‘C’、‘E’、‘U’、‘A’、‘P’、‘R’、‘S’和‘F’这8个值;其中,‘C’可以编码为[1,0,0,0,0,0,0,0],‘E’可以编码为[0,1,0,0,0,0,0,0],以此类推,对所有的字段进行编码完毕。应理解,Flags字段不一定只有一个值,如:Flags字段同时包括‘A’和‘S’,此时‘A’和‘S’可以共同编码为[0,0,0,1,0,0,1,0]。

在本申请实施例中,字符型的信息特征可以进行效应编码,以字符型特征(用于反映校验和Checksum完整性的信息)为例,进行如下说明:若字符表示完整,则记为1,若字符表示不完整,则记为0;若对应字段返回丢失,则记为-1,最后将字符型的信息特征、枚举型的信息特征和数值特征共同组合成一维特征向量Nx1。综上,一条流量指纹包含字符型的信息特征、枚举型的信息特征和数值特征中的所有特征,并且所有特征共同组合形成一个流量指纹,对应一个网络资产。

本申请实施例针对两种不同类型的信息特征,分别进行对应方式的编码处理,提高了特征处理的有效性,能够保证为预设神经网络提供的是有效数据。

实施例3:

图3为本申请实施例提供的又一种基于流量指纹的网络资产探测方法的流程示意图。如图3所示,本实施例的方法包括:

S301:构建包含输入层、隐藏层和输出层的初始神经网络。

在本申请实施例中,初始神经网络可以指初始的人工神经网络(ArtificialNeural Network,ANN)本申请实施例对隐藏层的数量不做具体限定。输入层的大小可以为特征维度,即输入层的神经元数量可以设置为第一流量指纹或第二流量指纹对应特征向量的维度N。输出层可以是指Softmax输出层。该初始神经网络的层级可以采用全连接的方式进行连接,并使用Relu作为激活函数。

初始神经网络的每层输出到下一层的某个神经元的计算公式如下:

H=W

其中,W为权重矩阵,X为前一层的输出,b为偏置矩阵。

每个神经元的结果输出都需要经过非线性映射,本申请实施例以使用Relu激活函数为例,设置如下非线性映射函数:

f(x)=max(0,x)

其中,x为神经元的输入,当输入小于0时,神经元的结果输出为0;当输入大于0时,神经元的结果输出等于输入。

在Softmax输出层中,每个节点的输出计算公式为:

其中,Z

S302:获取已知流量指纹和已知流量指纹关联的资产类型,并将获取到的已知流量指纹和已知流量指纹关联的资产类型作为训练数据,对初始神经网络进行训练,并在训练过程中采用预设损失函数计算初始神经网络输出的预测结果与已知流量指纹关联的资产类型之间的损失函数值,直至达到预设停止训练条件,得到预设神经网络。

在训练初始神经网络之前,可以先获取训练数据。也就是说,需要提前收集不同网络资产的流量指纹进行训练,网络资产的资产类型需要提前根据收集的分类形式进行编码,例如:将不同的网络资产分别编码为0、1、2、…10等。

在进行初始神经网络的训练过程中,可以使用损失函数反向传播与参数优化。为了防止模型在训练过程中出现过拟合现象,使神经网络这一模型依然可以逼近复杂模型的效果,可以引入正则项。一种可能的实现方式中,预设损失函数为包含正则项的损失函数,采用如下公式:

其中,L为损失函数的函数值,y为真实的标签值,用于表示已知流量指纹关联的资产类型,

当正则项为L1正则项时,F=a∑|w|

其中,a∑|w|

此外,预设损失函数还可以是包含L2正则项的损失函数,因此本申请实施例对正则项的具体表现形式不做具体限定。

在对初始神经网络进行训练之后,得到预设神经网络。本申请实施例在进行资产发现时,只需将流量指纹输入至预设神经网络即可,在不影响目标网络所在设备的正常工作的情况下,能够实现对待确定网络资产的有效识别。此外,本申请实施例可以定期对预设神经网络进行更新,以提高预测的准确性。

实施例4:

图4为本申请实施例提供的另一种基于流量指纹的网络资产探测方法的流程示意图。如图4所示,本实施例的方法包括以下步骤S401~S404,其中:

S401:向待确定网络资产的目标网络所在的设备发送预设数据包,以供目标网络所在的设备基于预设数据包回传待确定网络资产的反馈信息;和,接收目标网络所在的设备上的检测点采集到的待确定网络资产的流量信息。

应理解,S401的具体实现方式与图1中的S101类似,此处不做赘述。

S402:根据反馈信息和流量信息,分别生成第一流量指纹和第二流量指纹。应理解,S402的具体实现方式与图1中的S102类似,此处不做赘述。

S403:在第一流量指纹与第二流量指纹相同时,将第一流量指纹或第二流量指纹输入至预设神经网络,以使预设神经网络输出第一预测结果或第二预测结果。预设神经网络为训练好的人工神经网络。

S404:根据第一预测结果或第二预测结果,确定待确定网络资产的资产类型。

如果主动式扫描识别方式得到的反馈信息对应的第一流量指纹,与被动式流量分析方式得到的流量信息对应的第二流量指纹相同,则输入其中一个流量指纹即可,无需重复操作,节约了预测时间。

本申请实施例通过引入人工神经网络的方式实现网络资产探测,该方法区别于传统的仅依靠特定的特征匹配方法(例如:通过正则匹配、或通过静态文件的hash和MD5的签名摘要算法匹配),很大程度解决了流量指纹识别的灵活性问题和网络资产的识别问题。

图5为本申请实施例提供的一种基于流量指纹的网络资产探测装置的结构示意图。本实施例的装置可以为软件和/或硬件的形式。如图5所示,本实施例提供的基于流量指纹的网络资产探测装置,包括:发送接收模块51、生成模块52、输入模块53和确定模块54。其中:

发送接收模块51,用于向待确定网络资产的目标网络所在的设备发送预设数据包,以供目标网络所在的设备基于预设数据包回传待确定网络资产的反馈信息;和,接收目标网络所在的设备上的检测点采集到的待确定网络资产的流量信息。

生成模块52,用于根据反馈信息和流量信息,分别生成第一流量指纹和第二流量指纹。

输入模块53,用于在第一流量指纹与第二流量指纹不相同时,将第一流量指纹和第二流量指纹分别输入至预设神经网络,以使预设神经网络分别输出第一预测结果和第二预测结果;其中,预设神经网络是通过已知流量指纹和已知流量指纹关联的资产类型进行的训练,第一预测结果为第一流量指纹关联的资产类型,第二预测结果为第二流量指纹关联的资产类型。

确定模块54,用于根据第一预测结果和第二预测结果,确定待确定网络资产的资产类型。

一种可能的实现方式中,生成模块52,还用于:

对反馈信息进行预处理,生成第一流量指纹。

对流量信息进行筛选,得到筛选结果,并对筛选结果进行预处理,生成第二流量指纹。

一种可能的实现方式中,生成模块52,还用于:

对反馈信息进行特征提取,得到至少一种类型的信息特征。

从信息特征中提取目标字段,并根据目标字段进行数值计算,得到数值特征。

针对每种类型的信息特征,按照与类型对应的编码方式,对信息特征进行编码,得到编码后的信息特征。

将所有类型的编码后的信息特征和数值特征组合为特征向量,并将特征向量作为第一流量指纹。

一种可能的实现方式中,当类型包括枚举型和字符型时,生成模块52,还用于:

针对枚举型的信息特征,按照与枚举型对应的one-hot编码方式,对枚举型的信息特征进行编码,得到编码后的枚举型特征。

针对字符型的信息特征,按照与字符型对应的效应编码方式,对枚举型的信息特征进行编码,得到编码后的字符型特征。

一种可能的实现方式中,基于流量指纹的网络资产探测装置,还用于:

构建包含输入层、隐藏层和输出层的初始神经网络。

获取已知流量指纹和已知流量指纹关联的资产类型,并将获取到的已知流量指纹和已知流量指纹关联的资产类型作为训练数据,对初始神经网络进行训练,并在训练过程中采用预设损失函数计算初始神经网络输出的预测结果与已知流量指纹关联的资产类型之间的损失函数值,直至达到预设停止训练条件,得到预设神经网络。

一种可能的实现方式中,预设损失函数为包含正则项的损失函数,采用如下公式:

其中,L为损失函数的函数值,y为真实的标签值,用于表示已知流量指纹关联的资产类型,

一种可能的实现方式中,基于流量指纹的网络资产探测装置,还用于:

在第一流量指纹与第二流量指纹相同时,将第一流量指纹或第二流量指纹输入至预设神经网络,以使预设神经网络输出第一预测结果或第二预测结果。

根据第一预测结果或第二预测结果,确定待确定网络资产的资产类型。

本实施例提供的网络资源确定装置,可用于执行上述任意方法实施例提供的网络资源确定方法,其实现原理和技术效果类似,此处不做赘述。

本申请的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。

根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。

图6为本申请实施例提供的一种电子设备的结构示意图。该电子设备包括接收器60、发送器61、至少一个处理器62和存储器63,由上述部件构成的该电子设备可以用来实施本申请上述几个具体的实施例,此处不再赘述。

本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现上述实施例中方法中的各个步骤。

本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述实施例中方法中的各个步骤。

本申请以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或电子设备上执行。

在本申请的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。计算机可读存储介质可以是机器可读信号介质或机器可读储存介质。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。计算机可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据电子设备)、或者包括中间件部件的计算系统(例如,应用电子设备)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

相关技术
  • 一种基于网络爬虫的网站指纹信息扫描的方法及装置
  • 一种基于卷积神经网络的指纹识别方法
  • 一种基于分布式的网络资产扫描探测平台及扫描探测方法
  • 一种基于DNS流量的网站资产探测方法
技术分类

06120115917973