零占用空间大型用户实体行为建模的系统和方法与流程

文档序号:22088582发布日期:2020-09-01 20:23阅读:152来源:国知局
零占用空间大型用户实体行为建模的系统和方法与流程



背景技术:

传统上,使用中央服务器监视许多网络端点设备的网络行为要求存储大量的网络流记录以进行分析。例如,现有系统要求在“大数据”后端中存储netflow和互联网协议流信息输出(“ipfix”)记录、超文本传输协议(“http”)代理日志等,以进行后续处理。这涉及大量费用,因为存储这些记录要求使用大量的存储空间(总计为许多太字节)并且容纳该存储空间的不动产(即,“大数据”设施)也同样昂贵。小工具以及变得与网络连接的其它设备(例如,物联网设备)的激增加剧了这个问题,这使要监视的网络端点(endpoint)的数量成倍增加,从而为了行为监视的目的而为所有网络设备存储网络流是不切实际的。



技术实现要素:

本文公开了用于监视网络端点的行为而无需“大数据”存储后端的系统和方法。具体而言,本文公开的系统和方法将网络流的记录减少为向量,从而使系统能够仅使用少量存储空间(例如,几千兆字节的存储空间)来保存数百万或更多网络端点的行为模型。

在本公开的一些方面,控制电路系统接收多个记录,该多个记录中的每个相应记录与多个网络端点中的相应网络端点对应。每个相应记录可以识别源自与相应记录对应的相应网络端点的相应单个网络流。控制电路系统可以确定多个网络端点中与多个记录中的每个相应记录对应的相应网络端点。

控制电路系统可以为每个相应网络端点指派相应专用队列。例如,控制电路系统可以为源自给定网络端点的所有记录指定单个先进先出(“fifo”)队列。然后,控制电路系统可以向每个相应专用队列发送多个记录中的每个记录,该多个记录中的每个记录与相应专用队列被指派给的相应网络端点对应。

控制电路系统可以基于与每个相应网络端点对应的每个相应专用队列的每个记录,为每个相应网络端点确定相应行为模型,并且可以将每个相应行为模型存储到存储器。在一些实施例中,在确定相应行为模型时,控制电路系统可以识别被编程为确定行为模型的多个模块,并且可以识别多个模块中空闲的模块。控制电路系统可以命令空闲模块确定相应行为模型。该模块可以是用于基于给定队列的记录来确定行为模型的算法的软件实例。

在一些实施例中,在确定相应行为模型时,控制电路系统将相应记录的集合的数据编码成浮点值的多维向量。控制电路系统可以判定给定的多维向量是否表示给定的相应网络端点的异常行为。响应于确定给定的多维向量表示给定的相应网络端点的异常行为,控制电路系统可以警告网络管理员或执行预定义动作的集合。

在对相应专用队列内的每个相应记录的数据进行编码时,控制电路系统可以从每个相应单个网络流的相应字段中提取相应数据、将相应数据级联成串、并且将串转换成向量。每个相应数据点可以形成向量中的点。控制电路系统可以将该向量用作相应行为模型。

在将串转换成向量时,控制电路系统可以形成具有串的文档。然后,控制电路系统可以将文档馈送到词/文档嵌入算法(例如,文档到向量(“doc2vec”)、fasttext等)中,并且可以使用doc2vec算法使用浅神经网络来分析文档。然后,控制电路系统可以基于该分析来输出向量。

在一些实施例中,多个记录具有第一数据尺寸,其中每个相应行为模型的数据尺寸的总和具有第二数据尺寸,并且其中第二数据尺寸比第一数据尺寸小两个或更多个数量级。例如,虽然多个记录可以总计为数百太字节的数据,但是表示记录的向量合在一起可以总计为几千兆字节的数据。

在一些实施例中,控制电路系统可以从网络管理员接收查看给定网络端点的相应行为模型的命令。响应于接收到命令,控制电路系统可以生成针对给定网络端点的相应行为模型的图形表示以供显示。此外,控制电路系统可以确定具有示出与给定网络端点的行为相似的行为的相应行为模型的不同网络端点,并且可以生成针对不同网络端点的相应行为模型以供与针对给定网络端点的相应行为模型的图形表示同时显示。

在一些方面,包括了用于通过使用散列表和用行为模型对行为建模来减少跟踪多个网络端点的行为中所使用的存储空间的系统和方法。控制电路系统可以接收多个记录,多个记录中的每个相应记录与多个网络端点中的相应网络端点对应。控制电路系统可以确定多个网络端点中与多个记录中的每个相应记录对应的相应网络端点,并且可以将每个相应记录编码成相应词。

在一些实施例中,控制电路系统对于每个相应记录将相应块指派给相应散列表,并且向针对每个相应块的相应链表记录添加与每个相应块对应的每个网络端点所对应的相应词。控制电路系统基于针对每个相应块的每个相应链表,为每个相应网络端点确定相应行为模型,并且将每个相应行为模型存储到存储器。

在对于每个相应记录将相应块指派给相应散列表时,控制电路系统可以监视多个记录中与未知网络端点对应的记录。响应于从监视中检测到未知网络端点,控制电路系统可以将与该未知网络端点对应的块添加到散列表。

在一些实施例中,控制电路系统可以响应于检测到已经为给定的相应网络端点累积了阈值量的词,基于针对每个相应块的每个相应链表为每个相应网络端点确定相应行为模型。在一些实施例中,在基于针对每个相应块的每个相应链表为每个相应网络端点确定相应行为模型,控制电路系统可以通过词/文档嵌入算法(诸如fasttext算法)馈送散列表。

附图说明

在结合附图考虑以下具体实施方式时,本公开的上述和其它目的以及优点将变得显而易见,附图中相同的附图标记通篇指代相同的部件,并且其中:

图1描绘了根据本公开一些实施例的用于通过用行为模型对行为建模来减少跟踪多个网络端点的行为中所使用的存储空间的系统;

图2描绘了根据本公开一些实施例的示例文档,该示例文档包括与给定网络端点对应的流词(flowword);

图3描绘了根据本公开一些实施例的更高维向量空间的说明性二维投影;

图4是根据本公开一些实施例的在多个端点向量的3d空间上的投影的说明性描绘;

图5描绘了根据本公开一些实施例的用于通过用行为模型对行为建模来减少跟踪多个网络端点的行为中所使用的存储空间的处理的说明性流程图;

图6描绘了根据本公开一些实施例的用于确定相应行为模块的处理的说明性流程图;

图7描绘了根据本公开一些实施例的用于向网络管理员警告异常网络端点行为的处理的说明性流程图;

图8描绘了根据本公开一些实施例的用于生成使用词/文档嵌入算法来对端点设备行为建模的向量的处理的说明性流程图;

图9描绘了根据本公开一些实施例的用于生成行为模型的视觉表示以供显示的处理的说明性流程图;

图10描绘了根据本公开一些实施例的用于通过使用散列表用行为模型对行为建模来减少跟踪多个网络端点的行为中所使用的存储空间的系统;以及

图11描绘了根据本公开一些实施例的用于通过使用散列表用行为模型对行为建模来减少跟踪多个网络端点的行为中所使用的存储空间的处理的说明性流程图。

具体实施方式

图1描绘了根据本公开一些实施例的用于通过用行为模型对行为建模来减少跟踪多个网络端点的行为中所使用的存储空间的系统。如图1中所描绘的,服务器100用于对网络110的网络端点(例如,网络端点112和网络端点114)的行为建模。虽然服务器100被描述为包括若干部件的一个服务器,但这仅仅是为了方便。服务器100的部件可以跨多个服务器和数据库分布。如本文所使用的,网络端点可以是任何终端设备(enddevice),诸如消费电子设备(例如,智能电话、个人计算机等)、物联网设备或者任何其它连接到网络110的面向用户的设备。

服务器100的控制电路系统102通过通信电路系统120从网络110的网络端点(例如,网络设备112和网络设备114)接收记录。通信电路系统120可以是任何已知的接收器、发送器、收发器或任何其它已知的传输和/或接收数据的装置。如本文所使用的,术语“记录”可以指网络活动的日志。记录的示例是netflow记录、ipfix记录、http代理日志等。在一些实施例中,每个记录识别单个网络流。在一些实施例中,控制电路系统102可以扩增(augment)记录以包括额外的元数据,诸如应用标识符、http/https(http安全)报头值、传输层安全性(“tls”)证书详细信息等。控制电路系统102可以通过指纹识别处理来扩增记录,和/或可以通过摄取双向ipfix记录来执行这种扩增。

可以在缓冲器130处接收记录。控制电路系统102可以确定每个记录与哪个网络端点对应。例如,控制电路系统102可以将与网络端点112对应的记录和与网络端点114对应的记录区分开。然后,控制电路系统102可以为每个网络端点指定不同的队列,以使得与每个不同的网络端点对应的记录从缓冲器130被发送到队列140的指定队列。如图1中所描绘的,可以将与网络端点112对应的记录发送到队列142,并且可以将与网络端点114对应的记录发送到队列144。控制电路系统102可以根据需要实例化多个队列n,以便为接收记录的每个网络端点使用专用队列。在一些实施例中,队列140是fifo队列。在其它实施例中,队列140可以是任何形式的队列。

在一些实施例中,控制电路系统102调度队列140中的记录的处理,其中处理由模块150执行。模块150不专用于给定队列。作为示例,可以将队列144指派给模块152以进行处理,如图1中所描绘的。当模块154中的任何模块完成来自给定队列的记录的处理时,模块154都将返回到空闲状态。

在一些实施例中,控制电路系统102识别空闲模块,并命令每个空闲模块处理来自具体队列的记录。在选择应当将空闲模块指派给队列150的哪个队列时,控制电路系统可以通过确定哪些队列具有超过阈值的记录数量来确定哪些队列的尺寸溢出。在一些实施例中,阈值由网络管理员配置。在一些实施例中,阈值是默认值。控制电路系统102可以通过首先将空闲模块指派给具有超过阈值的记录数量的队列来对这些队列进行优先化。控制电路系统可以基于任何已知的负载平衡方案(例如,基于哪些队列具有最多的记录)来指派剩余的空闲模块或任意地指派剩余的空闲模块。

在一些实施例中,作为处理队列140的给定队列的记录的结果,模块150生成行为模型。给定模块(例如,模块154)可以通过将记录的数据编码成多维向量来生成行为模型。在一些实施例中,为了对数据进行编码,控制电路系统102指示模块150的模块(例如,模块152)从给定队列(例如,队列144)的记录的字段的子集中提取数据。控制电路系统102指示模块(例如,模块152)从提取出的数据生成串(该串在本文中也称为“流词(flowword)”)。然后,控制电路系统202可以级联从队列导出的“流词”以形成文档。

图2描绘了根据本公开一些实施例的示例文档,该示例文档包括与给定网络端点对应的流词。在文档202中,上面提到的流词各自由空格或下划线分隔。每个流词具有映射到服务器100处的存储装置中(例如,存储电路系统160处)的已知含义。示例性含义204参考文档202的每个流词进行描述,并且是不言自明的。图2中所示的流词字段仅仅是说明性的;可以使用任何适用的字段集合。

在形成文档之后,控制电路系统102将文档馈送到doc2vec算法中。doc2vec算法在le和mikolov所著并于2014年出版的标题为“distributedrepresentationsofsentencesanddocuments”的出版物中进行了详细描述,该出版物的公开内容通过引用整体并入本文。doc2vec基于word2vec算法,该算法在mikolov、chen、corrado和dean所著并于2013年出版的标题为“efficientestimationofwordrepresentationsinvectorspace”的出版物中进行了描述,该出版物公开内容通过引用整体并入本文。word2vec在于2015年5月19日授权的编号为9,037,464的美国专利中被进一步描述,该专利的公开内容通过引用整体并入本文。

简言之,当控制电路系统102将文档馈送到doc2vec算法中时,控制电路系统102使用浅神经网络为给定文档中出现的每个词以及为文档本身生成向量编码。如在上面提到的描述doc2vec和word2vec算法的出版物中所描述的,在公开内容的一个实施例中,控制电路系统102实现doc2vec算法的“段落向量-分布词袋(paragraphvector–distributedbagofwords)”表述。这需要控制电路系统102通过选择文档的词的子集来实现在文档上迭代的滑动窗口(例如,具有可配置的尺寸或默认尺寸)。然后,控制电路系统102应用随机梯度下降来计算权重和偏差,其在预测用于端点的目标标识符时最适合浅神经网络。然后,控制电路系统102对每个词的权重集合求平均,以构成表示文档所对应的网络端点的向量。端点向量可以被表示为浮点值的数组。在一些实施例中,向量由三百至五百个浮点值形成。

控制电路系统102使每个向量由存储电路系统160存储到存储器。而且,如上所述,因为向量的尺寸受到限制,所以有可能在不使用“大数据”工具的情况下进行行为建模。避免存储记录本身还有其它优点。即,这些记录常常包括关于用户的敏感私人信息(例如,个人识别信息、财务信息等)。因此,如果不恰当地访问这些记录(例如,通过黑客或恶意软件操作),那么可能出现法律和隐私问题。如本文所公开的,存储向量代替存储记录本身通过避免存储这样的敏感信息而避免了这些风险,同时仍然维持监视网络端点的行为的能力。

存储电路系统160可以是能够存储数据的任何介质。计算机可读介质可以是瞬态的(包括但不限于传播的电信号或电磁信号),或者可以是非瞬态的(包括但不限于易失性和非易失性计算机存储器或存储设备,诸如硬盘、软盘、usb驱动器、dvd、cd、介质卡、寄存器存储器、处理器高速缓存、随机存取存储器(“ram”)等)。控制电路系统102可以基于任何适当的处理电路系统,诸如一个或多个微处理器、微控制器、数字信号处理器、可编程逻辑器件、现场可编程门阵列(fpga)、专用集成电路(asic)等,并且可以包括多核处理器(例如,双核、四核、六核或任何合适数量的核)或超级计算机。在一些实施例中,处理电路系统可以跨多个单独的处理器或处理单元分布,其中多个单独的处理器或处理单元例如多个相同类型的处理单元(例如,两个intelcorei7处理器)或多个不同的处理器(例如,intelcorei5处理器和intelcorei7处理器)。在一些实施例中,控制电路系统102执行存储在存储器(即,存储电路系统160)中的指令。

在端点向量的存储之后,控制电路系统102可以从网络管理员接收查看给定的端点向量的请求。控制电路系统102可以通过使用应用程序接口(“api”)170来响应这样的请求,以输出行为模型的视觉描绘。

在一些实施例中,控制电路系统102可以跟踪网络端点随时间的行为。例如,通过随时间定期地针对给定网络端点执行词/文档嵌入计算(例如,doc2vec或fasttext),控制电路系统102可以识别端点的重复模式。网络行为中的差异将由结果向量从后续计算到多维空间中不同位置的移动来指示。控制电路系统102可以实现卡尔曼(kalman)滤波器来随时间跟踪点位置,或者推导多变量高斯分布以确定与网络端点的行为对应的点在多维空间的给定位置中的概率,或者使用递归神经网络来学习行为随时间的改变。如果该点位于低概率值的区域中,那么控制电路系统102可以确定网络端点正在从事异常行为,并且可以向网络管理员警告该异常。

图3描绘了根据本公开一些实施例的更高维向量空间的说明性二维投影。向量空间300中描绘的同心椭圆各自与网络管理员期望给定网络端点所在位置的不同概率值对应。标有字符“a”的点302图示了控制电路系统102将认为是端点的正常行为的位置。但是,如果控制电路系统102确定由端点向量描述的位置移动到标记为“a’”的点306,那么控制电路系统102可以向网络管理员警告异常行为。控制电路系统102可以基于在常态阈值304的边界之外的点306来确定发出警报,该常态阈值可以由网络管理员配置,或者可以是默认值。

图4是根据本公开一些实施例的在多个端点向量的3d空间上的投影的说明性描绘。在一些实施例中,网络管理员可以请求查看大型异构网络中端点的典型行为,以便识别具有相似行为的端点的集群并量化其数量。接收到这种请求的控制电路系统102可以例如通过描绘集群402、集群404、集群406和集群408来使用api170输出这种3d空间的可视化。这些集群中的每一个由于具有相似的网络行为而被彼此紧密地描绘。

图5描绘了根据本公开一些实施例的用于通过用行为模型对行为建模来减少跟踪多个网络端点的行为中所使用的存储空间的处理的说明性流程图。处理500开始于502,其中控制电路系统(例如,服务器100的控制电路系统102)接收多个记录,多个记录中的每个相应记录与多个网络端点中的相应网络端点对应。

处理500继续到504,其中控制电路系统102确定多个网络端点(例如,网络110的网络端点112和网络端点114)中与多个记录中的每个相应记录对应的相应网络端点。在506处,控制电路系统102为每个相应网络端点指派相应专用队列(例如,队列140的队列142和队列144)。

在508处,控制电路系统102向每个相应专用队列发送多个记录中的每个记录,其中该多个记录中的每个记录与相应专用队列被指派给的相应网络端点对应。在510处,控制电路系统102基于与每个相应网络端点对应的每个相应专用队列的每个记录,为每个相应网络端点确定相应行为模型。控制电路系统102可以使用模块150中的任何模块执行这个确定。在512处,控制电路系统102将每个相应行为模型存储到存储器(例如,使用存储电路系统160)。

图6描绘了根据本公开一些实施例的用于确定相应行为模块的处理的说明性流程图。处理600开始于602,其中控制电路系统102发起用于确定相应行为模型的子例程(例如,用于实现图5的510的子例程)。在604处,控制电路系统102识别被编程为确定行为模型的多个模块(例如,模块150)。在606处,控制电路系统102识别多个模块中空闲的模块,并且在608处,控制电路系统102命令空闲模块确定相应行为模型。

图7描绘了根据本公开一些实施例的用于向网络管理员警告异常网络端点行为的处理的说明性流程图。处理700开始于702,其中控制电路系统102判定给定的浮点值是否代表给定的相应网络端点(例如,网络端点112)的异常行为。如果该判定是否定的,那么控制电路系统102确定网络端点正常运行。如果该判定是肯定的,那么处理700前进到704,其中控制电路系统102(例如,使用api170)警告网络管理员,执行预定义动作或相似动作的集合。

图8描绘了根据本公开一些实施例的用于生成使用词/文档嵌入算法(例如,doc2vec)对端点设备行为建模的向量的处理的说明性流程图。处理800开始于802,其中控制电路系统102从每个相应单个网络流的相应字段中提取相应数据。在804处,控制电路系统102将相应数据级联成串。在806处,控制电路系统102形成具有该串的文档(例如,文档202)。在808处,控制电路系统102将文档馈送到词/文档嵌入算法(例如,doc2vec或fasttext)中。在810处,控制电路系统102使用词/文档嵌入算法使用浅神经网络来分析文档。在812处,控制电路系统102输出向量(例如,输出到存储器160或输出到api170,以用于生成视觉表示)。

图9描绘了根据本公开一些实施例的用于生成行为模型的视觉表示以供显示的处理的说明性流程图。处理900开始于902,其中控制电路系统102判定是否接收到查看针对给定网络端点的相应行为模型的命令。如果该判定是否定的,那么处理900结束。如果该判定是肯定的,那么处理900继续到904,其中控制电路系统102生成针对给定网络端点的相应行为模型的图形表示(例如,图3中所描绘的表示)以供显示。在906处,控制电路系统102确定具有示出与给定网络端点的行为相似的行为的相应行为模型的不同网络端点。在908处,控制电路系统102生成针对不同网络端点的相应行为模型(例如,图4中所描绘的表示)以供与针对给定网络端点的相应行为模型的图形表示同时显示。

图10描绘了根据本公开一些实施例的用于通过使用散列表用行为模型对行为建模来减少跟踪多个网络端点的行为中所使用的存储空间的系统。图10包括服务器1000,该服务器1000以如上所述的服务器100工作的方式工作(act)。服务器1000从网络1014的网络端点(例如,网络端点1012和网络端点1014)接收记录。网络1014以如上所述的网络110工作的方式工作。网络端点1012和网络端点1014以如上所述的网络端点112和网络端点1014工作的方式工作。服务器1000使用通信电路系统1020接收记录,该通信电路系统1020以如上所述的通信电路系统120工作的方式工作。

摄取(ingest)模块1030从网络1010接收记录,并根据上述方式进行操作。例如,结合上述缓冲器130的控制电路系统102的操作等同于控制电路系统1002与摄取模块1030交互的方式。由摄取模块1030摄取的记录被转发到词编码模块1040。词编码模块1040根据前面描述的方式将记录编码成词。例如,词编码将导致生成流词,诸如图2中所描绘的流词。

在将来自网络端点的记录编码成词之后,控制电路系统1002修改散列表1050以包括与每个网络端点对应的记录。例如,控制电路系统1002可以判定网络端点(例如,与网络1010中的端点1014对应的端点10)是否已经在散列表上具有条目。如果控制电路系统1002确定散列表1050上没有针对端点10的条目,那么控制电路系统1002将块(诸如块1052)添加到散列表1050中用于端点10。对于每个网络端点,控制电路系统1002将由词编码模块1040编码的词关联到与给定网络端点对应的链表(例如,链表1054)。

在填充散列表1050之后,控制电路系统1002可以将散列表1050馈送到语言模型1060中。在一些实施例中,控制电路系统1002基于阈值时间量的流逝来确定散列表1050被填充,该阈值时间量可以由网络管理员配置,或者可以是默认时间量。在一些实施例中,控制电路系统1002基于阈值数量的词(例如,一百万个词)的填充来确定填充了散列表1050。这可以是针对所有端点的聚合中的词,或者可以是针对单个端点的聚合中的词。语言模型1060基于为每个端点填充的词为每个端点生成行为模型。行为模型是基于源自“fasttext”的算法生成的,该算法在p.bojanowski、e.grave、a.joulin和t.mikolov所著并于2016年出版的标题为“enrichingwordvectorswithsubwordinformation”的出版物中进行了描述,该出版物的公开内容通过引用整体并入本文。fasttext本身基于上面讨论的word2vec算法。控制电路系统1002命令使用语言模型1060生成的行为模型被存储在模型存储库1070中,该模型存储库1070根据如上所述的存储电路系统160工作的方式工作。控制电路系统1002可以以上面关于api170描述的任何方式使用api使得行为模型1080被输出给用户。

图11描绘了根据本公开一些实施例的用于通过使用散列表用行为模型对行为建模来减少跟踪多个网络端点的行为的存储空间中所使用的处理的说明性流程图。处理1100开始于1102,其中控制电路系统(例如,控制电路系统1002)(例如,从网络1014的网络端点1012)接收多个记录,该多个记录中的每个相应记录与多个网络端点中的相应网络端点对应。处理1000继续到1104,其中控制电路系统1002确定多个网络端点中与多个记录中的每个相应记录对应的相应网络端点。

在1106处,控制电路系统1002将每个相应记录编码成相应词。在1108处,控制电路系统1002为每个相应记录将相应块指派给相应散列表(例如,散列表1050)。在1110处,控制电路系统1002向针对每个相应块的相应链表记录(例如,使用链表1054)添加与每个相应块对应的网络端点所对应的相应词。在1112处,控制电路系统1002基于针对每个相应块的每个相应链表为每个相应网络端点确定相应行为模型(例如,使用语言模型1060)。在1114处,控制电路系统1002将每个相应行为模型存储到存储器(例如,使用模型存储库1070)。

为简洁起见,在图3-图9和图11的描述中,没有重复描述处理300-900和1100中的关于图1和图2详细描述的元素,但是上述这些元素旨在执行图3-图9和图11的相应描述。

前面描述了用于生成和存储(例如,来自网络110的)网络端点的零占用空间(zero-footprint)行为模型的系统、方法和装置。出于说明而非限制的目的给出了本公开的上述实施例。此外,本公开不限于特定实施方式。例如,上述方法的一个或多个步骤可以以不同次序(或并发地)执行,并且仍然实现可期望的结果。此外,本公开可以在硬件中(诸如在专用集成电路(asic)上或现场可编程门阵列(fpga)上)实现。本公开还可以通过例如在一种或多种瞬态或非瞬态计算机可读介质中通过对用于执行上述处理的瞬态或非瞬态指令进行编码来以软件来实现。

如本文所提到的,术语“响应于”是指作为其结果而被发起。例如,响应于第二动作而执行第一动作可以包括在第一动作和第二动作之间的间隙步骤。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1