CN114338064B - 识别网络流量类型的方法、装置、系统、设备和存储介质 - Google Patents
识别网络流量类型的方法、装置、系统、设备和存储介质 Download PDFInfo
- Publication number
- CN114338064B CN114338064B CN202011059401.6A CN202011059401A CN114338064B CN 114338064 B CN114338064 B CN 114338064B CN 202011059401 A CN202011059401 A CN 202011059401A CN 114338064 B CN114338064 B CN 114338064B
- Authority
- CN
- China
- Prior art keywords
- network traffic
- network
- field
- feature
- type
- 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.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明的实施例涉及识别网络流量类型的方法、装置、计算设备和计算机可读存储介质。识别网络流量类型的方法包括:对客户端与服务器之间通信的网络流量进行复制以获取所述网络流量;从获取的网络流量中采集与所述网络流量的类型相关联的字段集;对所述字段集进行判定和统计以获得特征参数集;以及根据所述字段集中的至少一个字段和所述特征参数集中的至少一个特征参数进行层级划分,将层级划分结果作为识别的所述网络流量类型。通过将本发明的方法应用于网络安全,尤其是应用在云安全中,能够准确地识别网络流量的类型并对网络流量采取对应的防护措施。
Description
技术领域
本发明的实施例涉及网络安全,具体而言,本发明的实施例涉及识别网络流量类型的方法、装置、计算设备和计算机可读存储介质。
背景技术
网络安全问题在当前的多元化网络应用环境中变得尤为突出。对网络安全造成极大威胁的攻击是CC攻击(“挑战黑洞”攻击),其是DDoS攻击的一种,而且也是最难防护的攻击手法之一。
通常,防护方针对不同的网络流量类型(例如,APP流量和网站流量)分别采取不同的网络安全防护策略,但由于对于防护方而言往往无法确认被攻击的域名究竟是APP业务还是网站业务,由此导致针对无法识别或错误识别类型的网络流量使用不恰当的防护策略,最终造成网络流量被误杀。
当前业界并没有成熟的方案能够准确区分网站和APP两者的网络流量,主要靠手动配置、或者通过读取报文字段(例如UA、Referrer)的信息来区分,但是这些方案效果有限而且准确度很低,这也是CC攻击一直难以防护的根本原因之一。
因此,如何准确识别网络流量的类型,从而对网络流量采取合适的防护策略,成为本领域技术人员迫切需要解决的技术问题。
发明内容
有鉴于此,本发明实施例为解决上述技术问题而提供基于人工智能识别网络流量类型的方法、装置、计算设备和计算机可读存储介质。
根据本发明的一方面,提供了一种识别网络流量类型的方法,所述方法包括:对客户端与服务器之间通信的网络流量进行复制以获取所述网络流量;从获取的网络流量中采集与所述网络流量的类型相关联的字段集;对所述字段集进行判定和统计以获得特征参数集;以及根据所述字段集中的至少一个字段和所述特征参数集中的至少一个特征参数进行层级划分,将层级划分结果作为识别的所述网络流量类型。。
在一些实施例中,所述字段集包括以下中的至少一个:Host字段、CGI字段、UA字段、Referrer字段、contentType字段或responseContent字段。
在一些实施例中,其中对所述字段集中的一个或多个字段进行判定,以生成对应的判定值作为第一特征参数集,其中所述第一特征参数集是所述特征参数集的第一子集。
在一些实施例中,其中进行判定包括:将所述字段集中的一个或多个字段的取值分别与不同的判定条件进行匹配,其中,所述不同的判定条件包括字段的取值是否命中特定字符、字段的取值是否为空、或字段的取值是否符合特定格式;以及取决于匹配结果,生成对应于所述不同的判定条件的布尔值,以作为所述第一特征参数集中的特征参数。
在一些实施例中,其中对所述第一特征参数集中的一个或多个特征参数进行统计,以生成对应的统计值作为第二特征参数集,其中所述第二特征参数集是所述特征参数集的第二子集。
在一些实施例中,其中进行统计包括:将所述字段集中的至少一个字段取值相同的网络流量归类成一组或多组同类网络流量,其中所获取的网络流量是多个网络流量;统计所获取的网络流量中每组同类网络流量的总流量数目;统计每组同类网络流量中所述第一特征参数集中的特定特征参数的判定值为真的流量数目;以及计算特定特征参数的判定值为真的流量数目占总流量数目的比例值,以作为所述第二特征参数集中的特征参数。
在一些实施例中,所述网络流量类型包括应用程序网络流量和网站网络流量。
在一些实施例中,所述网络流量是双向网络流量,包括网络请求和网络应答。
在一些实施例中,所述网络流量使用以下协议中的一个或多个进行传输:HTTP和HTTPS。
在一些实施例中,根据所述字段集中的至少一个字段和所述特征参数集中的至少一个特征参数进行层级划分包括:使用决策树算法将所述至少一个字段和所述至少一个特征参数作为输入值;通过决策树中的各级节点对所述输入值中的一个或多个进行二元划分,其中各级节点中的每个节点表示不同的停止划分条件;以及在某个节点处所述输入值中的一个或多个如果符合对应于该节点的停止划分条件则在该节点处终止划分,否则继续划分。
在一些实施例中,通过以下步骤训练决策树得到所述流量类型识别模型:获取多个网络流量样本,所述多个网络流量样本被标记有已知网络流量类型;从所述多个网络流量样本中采集每个网络流量样本的字段集;对每个网络流量样本的字段集进行处理以获得每个网络流量样本的特征参数集;以及使用标记有已知网络流量类型的所述多个网络流量样本,基于字段集中的至少一个字段、特征参数集中的至少一个特征参数来训练所述决策树所述流量类型识别模型。
根据本发明的另一方面,提供一种识别网络流量类型的装置,所述装置包括:采集模块,用于从获取的网络流量中采集与所述网络流量的类型相关联的字段集;预处理模块,用于对所述字段集进行判定和统计以获得特征参数集;以及识别模块,用于根据所述字段集中的至少一个字段和所述特征参数集中的至少一个特征参数进行层级划分,将层级划分结果作为识别的所述网络流量类型。。
在一些实施例中,所述字段集包括以下中的至少一个:Host字段、CGI字段、UA字段、Referrer字段、contentType字段或responseContent字段。
在一些实施例中,其中所述预处理模块包括:判定单元,用于对所述字段集中的一个或多个字段按照进行判定,以生成对应的判定值作为第一特征参数集,其中所述第一特征参数集是所述特征参数集的第一子集。
在一些实施例中,其中进行判定包括:将所述字段集中的一个或多个字段的取值分别与不同的判定条件进行匹配,其中,所述不同的判定条件包括字段的取值是否命中特定字符、字段的取值是否为空、或字段的取值是否符合特定格式;以及取决于匹配结果,生成对应于所述不同的判定条件的布尔值,以作为所述第一特征参数集中的特征参数。
在一些实施例中,所述预处理模块包括:统计单元,对所述第一特征参数集中的一个或多个特征参数进行统计,以生成对应的统计值作为第二特征参数集,其中所述第二特征参数集是所述特征参数集的第二子集。
在一些实施例中,其中进行统计包括:将所述字段集中的至少一个字段取值相同的网络流量归类成一组或多组同类网络流量,其中所获取的网络流量是多个网络流量;统计所获取的网络流量中每组同类网络流量的总流量数目;统计每组同类网络流量中所述第一特征参数集中的特定特征参数的判定值为真的流量数目;以及计算特定特征参数的判定值为真的流量数目占总流量数目的比例值,以作为所述第二特征参数集中的特征参数。
在一些实施例中,所述网络流量类型包括应用程序网络流量和网站网络流量。
在一些实施例中,所述网络流量是双向网络流量,包括网络请求和网络应答。
在一些实施例中,所述网络流量使用以下协议中的一个或多个进行传输:HTTP和HTTPS。
在一些实施例中,通过以下步骤训练算法模型得到所述流量类型识别模型:获取多个网络流量样本,所述多个网络流量样本被标记有已知网络流量类型;从所述多个网络流量样本中采集每个网络流量样本的字段集;对每个网络流量样本的字段集进行处理以获得每个网络流量样本的特征参数集;以及使用标记有已知网络流量类型的所述多个网络流量样本,基于字段集中的至少一个字段、特征参数集中的至少一个特征参数来训练所述算法模型述流量类型识别模型。
在一些实施例中,所述算法模型包括以下中的至少一项:决策树、随机森林、xgboost、梯度提升机、神经网络、或支持向量机。
根据本发明的另一方面,提供一种为服务器提供网络安全防护的方法,所述方法包括:接收从终端到所述服务器的网络请求;判断所述网络请求的网络流量类型是否已被识别;如果没有被识别,则使用如上所述的方法识别所述网络流量类型;以及根据所述网络流量类型对所述网络请求采取对应的防护措施。
根据本发明的另一方面,提供一种为服务器提供网络安全防护的系统,所述系统包括:核心路由器,配置成从网络服务提供商获取来自其他用户终端针对所述服务器的网络请求;防护子系统,配置成判断所述网络请求的网络流量类型是否已被识别;分光器,配置成如果所述网络流量类型未被识别,则对客户端与服务器之间通信的网络流量进行复制以获取所述网络流量;采集与预处理子系统,配置成从所述网络流量中采集与所述网络流量的类型相关联的字段集,并且对所述字段集进行判定和统计以获得特征参数集;以及识别子系统,配置成根据所述字段集中的至少一个字段和所述特征参数集中的至少一个特征参数进行层级划分,将层级划分结果作为识别的所述网络流量类型,其中,防护子系统还配置成根据所述网络流量类型采取对应的防护措施。
根据本发明的另一方面,提供一种计算设备,所述计算设备包括:存储器,用于存储计算机可执行程序;以及处理器,配置成执行存储在所述存储器上的所述计算机可执行程序,以实现如上所述的方法。
根据本发明的另一方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行程序,所述计算机可执行程序可被处理器加载并执行以实现如上所述的方法。
通过实施本发明的技术方案,可以获得以下有益的技术效果。
本发明的一个或多个实施例提出了一种基于人工智能的流量识别方案,能够通过采集网络流量中的一系列字段,对其进行判定和统计得到一系列流量特征参数,然后根据所述字段集中的至少一个字段和所述特征参数集中的至少一个特征参数进行层级划分,将层级划分结果作为识别的所述网络流量类型,从而自动、准确地识别出被攻击域名具体的网络流量类型:例如,网站、APP、网站和APP混用。
根据本发明一个或多个实施例提供的技术方案,从根本上规避了网络安全防护算法对无法识别类型或错误识别类型的网络流量带来的误杀风险,同时可以针对网站和APP网络流量分别定制合适的网络安全防护策略,从而提升网络安全防护效果。
附图说明
在下面结合附图对于示例性实施例的描述中,本发明技术方案的更多细节、特征和优点将被公开,在附图中:
图1示出根据本发明一个或多个实施例的应用场景;
图2示出根据本发明一个或多个实施例的基于人工智能识别网络流量类型的进程通信示意图;
图3示出根据本发明一个或多个实施例的识别网络流量类型的方法流程图;
图4示出根据本发明一个或多个实施例的识别网络流量类型的进一步方法流程图;
图5示出根据本发明一个或多个实施例的识别网络流量类型的进一步方法流程图;
图6示出根据本发明一个或多个实施例为服务器提供网络安全防护的方法流程图;
图7示出根据本发明一个或多个实施例为服务器提供网络安全防护的网络架构示意图;
图8示出根据本发明一个或多个实施例的训练流量识别模型的过程示意图;
图9是示出根据本发明一个或多个实施例的训练流量类型识别模型的学习曲线图;
图10示出根据本发明一个或多个实施例的识别网络流量类型的装置的结构示意图;
图11示出根据本发明一个或多个实施例的计算设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”或“第三”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他步骤或单元。
在以下的描述中,涉及到“实施例”、“一个实施例”、“一个或多个实施例”以及“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,以上可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同或相似。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
人工智能(AI):利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法和技术及应用系统。
云技术:指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
DDoS攻击:分布式拒绝服务攻击,黑客通过控制分布在互联网各处的肉鸡在同时间内对目标服务器发送大量异常流量,服务器忙于处理异常流量,无法处理正常用户请求,甚至系统崩溃,造成拒绝服务,随着技术本身的发展,持续对抗过程中出现一些相比以往非常高级的攻击手法,例如,基于HTTP或HTTPS的CC攻击。
肉鸡:也称为傀儡机,是指可以被黑客远程控制的终端或机器。
CC攻击:“挑战黑洞”攻击,即基于应用层的DDoS攻击。
API:应用程序接口。
APP:应用程序,通常是指手机上安装的应用软件。
HTTP: 超文本传输协议,是一种能够获取如HTML这样的网络资源的通信协议。它是在Web上进行数据交换的基础,是一种客户端—服务器协议,也就是说,请求通常是由客户端(例如浏览器、应用程序)这样的接受方发起的。HTTP是应用层的协议,通过TCP连接来进行传输。
HTTPS:安全套接层上的超文本传输协议,在HTTP的基础上使用TLS加密的TCP连接来进行传输。
UA:用户代理,作为HTTP报头的字段,让服务器识别发起请求的用户代理的应用类型、操作系统、软件开发商以及版本号。
Referrer:引用方,作为HTTP报头的字段,告诉服务器该网址是从哪个页面链接过来的。
Host:作为HTTP报头的字段,指的是网络请求的域名。
CGI:通用网关接口,作为HTTP header的一部分,为Web服务器主机提供信息服务的标准接口。
contentType:作为HTTP报头的字段,指的是网页中存在的内容类型。
responseContent:指的是HTTP应答报文的载荷内容。
对于防护方来说攻击流量究竟是网站类型的网络流量还是APP类型的网络流量往往是难以确认的。主要原因两个有:(1)网站业务和APP业务在流量特征上非常接近,难以区分;(2)现网部分域名逻辑复杂,同一个域名下(也就是相同的Host字段)既有网站业务,又有APP业务,也就是说网站和APP流量混合在一起,加大区分难度。
网络安全防护与网络流量类型深度耦合,由于业界并没有成熟的方案能够准确区分网站和APP二者的网络流量,所以导致了网络安全防护经常由于使用不恰当算法造成误杀(将正常流量当作攻击流量使其屏蔽)、透传(将攻击流量当作正常流量使其通过)等问题。因为APP流量和网站流量使用的算法不一样,针对网站流量类型使用的网络安全防护策略包括:JS setcookie、302跳转、图片验证码、限速、特征过滤和黑名单等,而针对APP流量类型使用的网络安全防护策略包括:限速、特征过滤和黑名单等。然而,JS setcookie、302跳转、图片验证码等防护策略无法使用在APP网络流量上,否则会有严重的误杀。因此,本发明提出了一种基于人工智能识别网络流量类型的技术方案,能够通过分析流量特征,自动、准确地识别出被攻击域名具体的网络流量类型:网站、APP、网站和APP混用。从而根本上规避了网络安全防护算法对APP流量带来的误杀风险,同时可以针对网站流量和APP流量分别定制网络安全防护策略,提升防护效果。
应理解,本发明实施例可以应用于对被DDoS攻击的服务器进行防护的场景中,作为示例,例如当游戏类应用的后台服务器遭受DDoS攻击时,会忙于处理异常流量,无法处理正常用户请求;作为其他示例,对于金融类应用的后台服务器、即时通信类应用的后台服务器、视频类应用的后台服务器等等,在遭受DDoS攻击时,都会导致正常业务无法进行。
为了解决上述问题,本发明提出了一种基于人工智能识别网络流量类型的技术方案,该技术方案可以应用于终端与服务器之间通信的各种应用场景中。
图1示出根据本发明一个或多个实施例的一个应用场景。用户终端101与目标服务器103可以通过有线或无线通信方式进行直接或间接地连接,本发明在此不做限制。如图1所示,用户终端101与目标服务器103经由安全网络系统102进行通信。在一些实施例中,目标服务器103可以是订阅网络安全服务的订户,由安全网络系统102向其提供网络安全的防护。
用户终端101可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱或智能手表等,但并不局限于此。目标服务器103可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
网络安全系统102可以采用独立的设备(例如服务器)实现,也可以部署在云上。除此之外,网络安全系统102可以部署在目标服务器103中,也可以与目标服务器103共同部署在云上。在一个或多个实施例中,根据本发明一个或多个实施例提供的网络流量类型识别装置可以部署在网络安全系统102中,并且可以从用户终端101与目标服务器103之间通信的网络流量中采集与所述网络流量的类型相关联的字段集;然后按照预定规则对所述字段集进行处理以获得特征参数集,其中所述预定规则包括判定规则或者判定规则与统计规则的组合;以及根据所述字段集中的至少一个字段和所述特征参数集中的至少一个特征参数进行层级划分,将层级划分结果作为识别的所述网络流量类型。;并且把所述网络流量的标签(例如,一个或多个字段)以及针对所述网络流量识别出来的类型反馈给网络安全系统102中的其他装置(未示出,例如防护装置)以根据所述网络流量的类型选择合适的防护策略。
需要说明的是,图1示出的仅为本发明一个实施例中网络流量类型识别方法的一个应用场景。在另一个实施例中,根据本发明一个或多个实施例提供的网络流量类型识别装置可以不存在于网络安全系统102中,而单独与目标服务器103通信。此外,根据本发明一个或多个实施例提供的网络流量类型识别装置还可以单独部署在目标服务器103中。在另外实施例中,根据本发明一个或多个实施例提供的网络流量类型识别装置还可以向服务器或终端提供除网络安全之外的服务。图1的示例仅为方便理解本方案,但并不限定本方案。
由于本发明一个或多个实施例中提及的技术方案可以通过云技术(CloudTechnology)实现,在对本发明实施例提供的技术方案进行介绍之前,先对云技术的一些基础概念进行介绍。
云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
进一步地,云安全(Cloud Security)是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中的攻击网络流量,并发送到服务端进行自动分析和处理,再把防护策略或解决方案分发到每个订户(包括用户终端和目标服务器)。
云安全主要研究方向包括:(1)云计算安全,主要研究如何保障云自身及云上各种应用的安全,包括云计算机系统安全、用户数据的安全存储与隔离、用户接入认证、信息传输安全、网络攻击防护、合规审计等;(2)安全基础设施的云化,主要研究如何采用云计算新建与整合安全基础设施资源,优化安全防护机制,包括通过云计算技术构建超大规模安全事件、信息采集与处理平台,实现对海量信息的采集与关联分析,提升全网安全事件把控能力及风险控制能力;(3)云安全服务,主要研究各种基于云计算平台为用户提供的安全服务,如防病毒服务等。
图2示出根据本发明一个或多个实施例的基于人工智能识别网络流量类型的进程通信示意图。
在一个或多个实施例中,网络安全系统200被配置成基于人工智能识别网络流量类型,并且部署有网络流量采集和预处理模块210(将在图10对其内部结构及功能做进一步阐述)和经训练的流量类型识别模型220。采集和预处理模块210可以针对所获取的网络流量(其类型未被识别)采集其中有用的字段,这些字段与网络流量待识别的类型相关联,例如Host字段、CGI字段、UA字段、Referrer字段、contentType字段或responseContent字段。然后,采集和预处理模块210可以针对这些采集的字段的集合进行预处理得到各种特征参数。在上述过程中,采集和预处理模块210可以将每条网络流量中的所采集的字段集合中的一个或多个字段以及预处理后的特征参数集中的一个或多个特征参数整合成相应的流量数据,其中每条网络流量对应于一条流量数据,并将其发送到经训练的流量类型识别模型220。流量类型识别模型220对所接收的流量数据进行识别,以及为每个流量数据打上识别结果标签,并把这个结果输出。在一个或多个实施例中,每个识别结果可以包括已有标签(例如Host字段和CGI字段)以及对应识别出来的网络流量类型(例如APP网络流量或网站网络流量)。通过上述步骤,可以完成对网络流量类型的识别,并将识别结果存储在网络安全系统200中或下发到图1中的目标服务器103。
优选地,本发明一个或多个实施例提供的基于人工智能识别网络流量类型的方法可以适用于网络安全防护方案,作为网络安全系统的有效补充或替代。通过海量的旁路数据训练算法模型,模型训练成熟后便具有自动识别网络流量类型的能力,从而根据准确识别的网络流量类型对到来的网络业务采取恰当的防护策略,保障被攻击服务器的安全稳定,保证正常网络流量不受影响,同时,本方案不需要服务器或终端做任何改造即可接入,具有很好的兼容性。另一方面,相对于相关技术中的大数据方案,人工智能算法通过合适的算法建模,可以在无规则的情况下实现分类,泛化能力强。也就是说,基于大量数据进行自动化学习和训练,可以在无需调用历史大数据的情况下,对新上线业务能进行有效防护。因此,人工智能算法模型对网络安全性能提升具有重要意义,可以使用各种算法模型来训练根据本发明一个或多个实施例提供的流量类型识别模型,具体的训练方法和过程将在图8进一步阐述。
结合上述介绍,下面将对本发明中基于人工智能识别网络流量类别的方法进行详细介绍。参阅图3,其示出根据本发明一个或多个实施例的识别网络流量类型的方法流程图,包括以下步骤。
步骤310,从获取的网络流量中采集与所述网络流量的类型相关联的字段集。
在一个或多个实施例中,对用户终端到目标服务器和目标服务器到用户终端之间的双向网络流量进行采集并推送到预处理模块。从每条网络流量采集的与网络流量类型相关联的字段集由每条流量数据表示,而且每条流量数据包括以下特征维度,见表1:
Host |
CGI |
UA |
Referrer |
contentType |
responseContent |
表1
在表1中,特征维度由字段表示,该字段的集合可以表示为一个流量数据,其中Host、CGI、UA、referrer字段属于网络请求报文中的字段,而contentType和responseContent字段属于网络应答报文中的字段。可以理解的是,本发明并不限于这些字段。
在另外的实施例中,被采集的网络流量可以是单向的,例如只包括网络请求但不包括网络应答,被采集的字段集可以仅仅包括Host、CGI、UA、referrer字段中的一个或多个。
接下来,按照预定规则对所述字段集进行处理以获得特征参数集,其中所述预定规则可以包括判定规则,并且可选地还可以包括统计规则。也就是说,该步骤可以细分为两个子步骤,即步骤320和步骤330。
步骤320,对所述字段集中的一个或多个字段按照所述判定规则进行判定,以生成对应的判定值作为第一特征参数集,其中所述第一特征参数集是特征参数集的第一子集。
步骤330,可选地,对所述第一特征参数集中的一个或多个特征参数按照所述统计规则进行统计,以生成对应的统计值作为第二特征参数集,其中所述第二特征参数集是所述特征参数集的第二子集。
步骤340,根据所述字段集中的至少一个字段和所述特征参数集中的至少一个特征参数进行层级划分,将层级划分结果作为识别的所述网络流量类型。。
图4示出根据本发明一个或多个实施例的识别网络流量类型的进一步方法流程图,对步骤320所述的判定规则做进一步阐述,包括如下步骤。
步骤410,将所述字段集中的一个或多个字段的取值分别与不同的判定条件进行匹配。
其中,所述不同的判定条件包括字段的取值是否命中特定字符、字段的取值是否为空、或字段的取值是否符合特定格式。
步骤420,取决于匹配结果,生成对应于所述不同的判定条件的布尔值(即,0或1),以作为所述第一特征参数集中的特征参数。
在一个或多个实施例中,根据上述判定规则对图3的流量数据中的每个特征维度(即,字段集中的每个字段)进行预处理,具体步骤包括但不限于:
对Host字段的取值做字符串匹配,判断Host是否存在“app”、“api”两个字符串中的任何一个,生成新的特征维度(即,特征参数集中的其中一个特征参数):is_host_include_api。如果存在,则这个字段置为1,反之值为0;
对responseContent的取值进行解析,判断其内容格式是否符合json或xml格式,生成新的特征维度is_rspcontent_json_xml。如果符合,则这个字段置为1,反之值为0;
对UA的取值进行判断,判断其取值为空(即请求没有携带这个字段),生成新的特征维度is_empty_ua。如果为空则置为1,反之值为0;
对Referrer的取值进行判断,判断其取值为空(即请求没有携带这个字段),生成新的特征维度is_empty_referrer。如果为空则置为1,反之值为0;
对CGI的取值取值进行判断,判断其取值是否为‘/’(也就是根目录),生成新的特征维度is_root_request。如果为空则置为1,反之值为0;
对CGI的取值进行匹配,判断其取值是否为以下列字符串:.png、.jgp、.jpeg、.gif、.js、.html、.htm、.shtml、.css、.fnt、.ico、.wav、.atf、.swf、.ttf、.img、.flv、.woff,生成新的特征维度is_web_cgi_suffix。如果满足则置为1,反之值为0;
对contentType的取值进行判断,判断取值是否命中下列字符串Plain、XML、JSON其中任何一个,生成新的特征维度is_contenttype_plain_xml_json。如果满足则置为1,反之值为0;
对UA的取值进行匹配,判断其是否不存在(注意这里是不存在)Mozilla、Opera、MQQBrowser、CFNetwork字符串的任何一个,生成新的特征维度is_ua_shoot_api。如果满足则置为1,反之值为0;
最终生成新的流量数据,表2所表示的流量数据经过预处理后包括以下特征维度(见表2):
host |
cgi |
UA |
is_host_include_api |
is_rspcontent_json_xml |
is_empty_ua |
is_empty_referrer |
is_root_request |
is_web_cgi_suffix |
is_contenttype_plain_xml_json |
is_ua_shoot_api |
表2
可以理解,表2中的特征维度由字段集的一部分以及第一特征参数集中的特征参数组成,但是并不限于以上的特征维度。
图5示出根据本发明一个或多个实施例的识别网络流量类型的进一步方法流程图,对步骤320所述的统计规则做进一步阐述,包括如下步骤。
步骤510,将所述字段集中的至少一个字段取值相同的网络流量归类成一组或多组同类网络流量。
其中,所获取的网络流量是多个网络流量。
步骤520,统计所获取的网络流量中每组同类网络流量的总流量数目。
步骤530,统计每组同类网络流量中所述第一特征参数集中的特定特征参数的判定值为真的流量数目。
步骤540,计算特定特征参数的判定值为真的流量数目占总流量数目的比例值,以作为所述第二特征参数集中的特征参数。
在一个或多个实施例中,根据上述统计规则对图4的流量数据中的每个特征维度(即,基于字段集中的一部分对第一特征参数集中的每个特征参数)进行预处理,具体步骤包括但不限于:
基于host进行统计(也就是将host字段取值相同的数据认为是同一类数据进行统计,下同),计算is_host_include_api=1的数据条目数占同一个host的总数据条目数的比例,生成新的特征维度is_host_include_api_ratio(例如host=www.aa.com总共有100条数据,而is_host_include_api=1的有10条,那么is_host_include_api_ratio=0.1);
基于host进行统计,计算is_empty_ua=1数据条目数占同一个host的总数据条目数的比例,生成新的特征维度empty_ua_ratio;
基于host进行统计,计算is_empty_referrer=1数据条目数占同一个host的总数据条目数的比例,生成新的特征维度empty_referrer_ratio;
基于host进行统计,计算is_root_request=1数据条目数占同一个host的总数据条目数的比例,生成新的特征维度include_root_ratio;
基于host进行统计,对UA字段去重之后,统计个数,生成新的特征维度distinct_ua(例如host=www.aa.com总共有3条数据,UA分布是:aaa,bbb,aaa。那么distinct_ua=2);
基于host进行统计,计算is_web_cgi_suffix=1数据条目数占同一个host的总数据条目数的比例,生成新的特征维度cgi_suffix_ratio;
基于host进行统计,计算is_rspcontent_json_xm=1数据条目数占同一个host的总数据条目数的比例,生成新的特征维度is_content_json_ratio
生成新的特征维度cgi_is_content_json_ratio(例如host=www.aa.com总共有100条数据,而cgi_is_content_json=1的有10条,那么cgi_is_content_json_ratio=0.1);
基于host进行统计,计算is_contenttype_plain_xml_json=1数据条目数占同一个host的总数据条目数的比例,生成新的特征维度is_contenttype_plain_xml_json_ratio;
基于host+cgi进行统计,计算is_contenttype_plain_xml_json=1数据条目数占同一个host的总数据条目数的比例,生成新的特征维度cgi_is_contenttype_plain_xml_json_ratio;
基于host+cgi进行统计,计算is_ua_shoot_api=1数据条目数占同一个host的总数据条目数的比例,生成新的特征维度is_ua_shoot_api_ratio;
最终生成新的经预处理的流量数据(见表3):
host |
cgi |
is_host_include_api |
cgi_is_content_json_ratio |
empty_ua_ratio |
empty_referrer_ratio |
include_root_ratio |
distinct_ua |
cgi_suffix_ratio |
is_content_json_ratio |
is_contenttype_plain_xml_json_ratio |
cgi_is_contenttype_plain_xml_json_ratio |
is_ua_shoot_api_ratio |
表3
可以理解,表3中的特征维度由字段集的一部分以及第一特征参数集和第二特征参数集中的特征参数组成,但是并不限于以上的特征维度。
还要理解的是,同一个Host可能包含APP和网站混合的流量,而表3采用Host+CGI的组合,便可以排除这一可能性,由此把APP和网站的流量类型单独区分开。
数据采集和预处理模块的作用就是将原始的网络流量经过数据预处理生成最终的流量数据作为流量类型识别模型的输入值,这样做的好处包括:(1)大大减少数据量;(2)将特征维度最恰当得表示出来使后面的决策树模型识别效果大大增强。
返回图3的步骤340,在一个或多个实施例中,可以将表示表2的流量数据或表示表3的流量数据输入到经训练的流量类型识别模型来识别网络流量的类型。可以理解的是,流量类型识别模型的输入值可以不限于表2和/或表3中的特征维度,而可以从中挑选一个或多个或另外生成新的特征维度作为输入值。
图6示出根据本发明一个或多个实施例为服务器提供网络安全防护的方法流程图,包括以下步骤。
步骤610,接收从终端到所述服务器的网络请求。
步骤620,判断所述网络请求的网络流量类型是否已被识别。
步骤630,如果没有被识别,则使用上述图3-图5所描述的方法识别所述网络流量类型。
步骤640,根据所述网络流量类型对所述网络请求采取对应的防护措施。
图7示出根据本发明一个或多个实施例为服务器提供网络安全防护的网络架构示意图。如图所示,该网络架构中可以包括网络服务提供商710、核心路由器720、核心交换机730、服务器740以及网络安全系统750。其中,网络安全系统750包括:采集与预处理子系统、识别子系统和防护子系统。
核心路由器720连接到网络服务提供商710。核心路由器720连接有核心交换机730,核心交换机730连接有服务器740,从而实现服务器740与网络服务提供商710所提供网络中的其他网络设备(例如用户终端)之间的通信。每个核心路由器720可以连接有多个核心交换机730。每个核心交换机730可以连接有一个或多个服务器740。
网络安全系统750与核心路由器720建立BGP(边界网关协议)邻居,当需要对某个域名进行防护时,网络安全系统750可以将对应服务器(例如服务器740)的IP地址加入防护(攻击请求中既携带该域名,又携带对应服务器IP地址)。在一个实施例中,网络安全系统750向核心路由器720发送32位主机路由,使核心路由器720将对应服务器IP地址的网络流量转发到网络安全系统750。
在一个或多个实施例中,当核心路由器720从网络服务提供商710获取来自其他用户终端针对服务器740的网络请求时,核心路由器720可以把该网络请求转发给网络安全系统750中的防护子系统753。防护子系统753可以提取网络请求中的报文头字段,并把字段中的一个或多个作为检索标签在流量类型结果库中进行检索。其中,流量类型结果库可以存储在防护子系统753中,并且可以包含所有已识别类型网络流量的条目,每个条目可以由网络流量的至少一个字段以及类型组成。
在一个示例中,如果根据该标签在流量类型结果库中能检索到相应的流量类型,例如根据该网络请求中的Host字段和CGI字段作为检索标签检索到流量类型为APP网络流量,则表示该网络请求的流量类型已被识别,那么防护子系统753则采取对该网络请求进行采取针对APP网络流量的防护策略。在针对APP网络流量的防护进程中,防护子系统753进一步对攻击流量进行拦截,完成攻击防护。防护子系统753将攻击流量丢弃后,可以将合法正常流量回注到核心路由器720,由核心路由器720将正常流量经由核心交换机730转发到服务器740,完成整个防护过程。
在另一个示例中,如果在流量类型结果库中未能检索到针对该网络请求的流量类型,则该网络请求可能属于新上线的流量业务和/或之前未被识别过,需要对其进行重新学习以识别其网络流量类型。在一个或多个实施例中,可以采用较低防护能力的措施使用户终端与服务器继续保持通信,以持续获取双方之间一定数量的网络流量,并在该较低防护能力的网络安全保护下的通信期间,对未识别的网络流量进行类型识别。
在一个实施例中,在核心路由器720与网络服务提供商710之间可以部署有分光器(未示出),其可以表现为光纤分光器,光纤分光器是实现光网络系统中将光信号进行耦合、分支、分配的光纤汇接器件,具有多个输入端和多个输出端。分光器用于从网络服务提供商710提供的网络中获取实际网络流量并对其进行复制,从而产生镜像流量,并将镜像流量发送给网络安全系统750。同时,分光器会将实际网络流量发送给核心路由器720。在另一个实施例中,分光器可以部署在核心路由器720内部。
对类型未被识别的网络流量进行类型识别的流程如下,当接收到来自网络服务提供方710的实际网络流量和/或来自服务器740的实际网络流量时,分光器通过对实际网络流量进行分光,把实际网络流量复制成镜像流量并转发到网络安全系统750以进行网络流量的类型识别。首先,经由采集与预处理子系统751对网络流量进行数据采集和分析。采集的数据包括:网络流量中与流量类型相关联的Host、UA、Referrer、CGI等字段。并将最近的采集结果(例如一个小时、一天、或一周的采集结果)存储起来;对存储的数据按既定的规则对数据进行预处理,最终将预处理后的数据发送到识别子系统750以使用经训练的流量类型识别模型进行识别,生成流量类型识别结果。最后将识别结果下发到防护子系统753上,添加到流量类型结果库中。
这里,采集与预处理子系统751可以对应于图2所示的采集和预处理模块21。另外,图2所示的流量类型识别模型220在完成训练后将部署在网络安全系统750中,例如部署在识别子系统752中。
需要说明的是,图7示出的仅为本申请实施例中业务流量处理方法的一个网络架构示意图。在一个示例中,在网络安全系统751中可以不包括防护子系统,而预处理子系统751与识别子系统752可以与核心路由器直接通信,以实现除网络安全防护之外的其他功能。在另一个示例中,采集与预处理子系统751的功能可以分别由两个系统实现,例如流量分析系统和控制系统(均未示出),而经训练的流量类型识别模型也共同部署在控制系统中。其中,流量分析系统实现数据采集和分析的功能;控制系统实现数据存储、预处理以及识别功能。应该理解的是,图7的示例仅为方便理解本方案,而不限于本方案。
图8示出根据本发明一个或多个实施例的训练流量类型识别模型的过程示意图。本发明给出基于决策树算法来训练如上文所述的流量类型识别模型的一个实施例。但是在本发明的其他的实施例中,同样可以使用其他具有分类能力的人工智能算法来训练如上文所述的流量类型识别模型,可以使用的人工智能算法包括但不限于:随机森林、xgboost、梯度提升机、神经网络、支持向量机等。
通过图3和图4描述的采集与预处理方法,并且可选地还通过图5描述的进一步预处理方法,建立决策树流量类型识别模型的输入特征。可以使用上文表2或表3的特征作为输入特征,其中优选地使用上文表3的数据作为流量类型识别模型的输入特征。应当注意,本发明不局限于使用表2或表3的特征,本发明的其他实施例可以使用表2或表3中的特征的子集,或者使用通过图2-图5描述的方法生成的任何其他特征作为流量类型识别模型的输入特征。使用大量具有类型标签(即网络流量类型已知)的网络流量数据来训练决策树模型,在训练收敛后,就得到了具有自动网络流量识别能力的分类模型。
在一个实施例中,训练决策树流量类型识别模型的具体步骤是:
第一步:收集大量已知APP域名和网站域名的网络流量作为网络流量样本。与实际应用经训练的流量类型识别模型时不同,在收集网络流量样本时,已经提前知道网络流量样本对应的域名是APP类型还是网站类型;
第二步:对所收集的每个网络流量样本,用图3至图5描述的预处理方法进行处理,分别生成表3的特征。对每个网络流量样本的特征添加类型标签,其中类型标签值为1表示该网络流量样本属于APP业务,类型标签值为0表示该网络流量样本属于网站业务。决策树是有监督学习算法,为每个网络流量样本生成的表3中的特征作为决策树模型的输入特征,而类型标签值作为决策树模型的期望输出;
第三步:在收集大量有类型标签的网络流量样本并对其进行预处理以得到流量类型识别模型的输入特征和期望输出后,训练决策树模型,其中优选地使用Gini指数作为增益方式,并且训练样本和测试样本的数量比为4:1。经过多次测试验证,这样的配置可以取得最佳训练效果,但本发明并不局限于此。
在本实施例中使用以Gini指数作为增益方式的CART(Classification AndRegression Tree)算法来训练上述决策树流量类型识别模型,但同样可以使用ID3算法、C4.5算法和其他决策树训练方法来训练上述决策树流量类型识别模型,本发明并不局限于训练决策树模型所使用的具体算法。以下描述在收集大量网络流量样本并对其进行预处理之后使用CART算法训练基于决策树的流量类型识别模型的具体过程。
首先将用于训练的网络流量样本集作为决策树模型的根节点。针对网络流量样本的每个特征,选取根节点的可能的划分点,其中取值为布尔值的特征(例如对网络流量的字段按照判定规则进行判定所得到的特征)的划分点只有一个,而取值为连续值的特征(例如对表2中的特征按照统计规则进行统计所得到的特征)的划分点最多可以有[网络流量样本数-1]个。使用CART算法训练的决策树为二叉树,每个输入特征的每个可能划分点都可以将网络流量样本集划分为两部分(即,二元划分),即该输入特征的取值大于该划分点的网络流量样本和该输入特征的取值小于该划分点的网络流量样本。
然后,计算每个可能的划分点对应的Gini指数,Gini指数的计算公式如下
其中D为划分点,K为分类数,p k 为样本属于第k类的概率。由于流量类型识别模型仅涉及APP类型和网站类型两种分类结果,因此是二分类问题,二分类问题对应的Gini指数计算公式为:
其中,p可以是网络流量样本属于APP类型或网站类型的概率。
选择具有最小Gini指数的可能划分点作为根节点的最优划分点,最优划分点对应的特征为最优划分特征,根据最优划分特征和最优划分点来划分网络流量样本集,从而产生根节点的两个子节点,也就是说产生网络流量样本集的两个子集。
对于所产生的每个子节点,判断子节点是否符合预设的停止划分条件。停止划分条件可以是该子节点中的所有网络流量样本均属于同一个网络流量类型,但这样训练得到的决策树过于复杂而泛化能力可能较差。因此可以增加其他的停止划分条件,例如在决策树划分的深度到达一定层数时停止划分,在子节点的样本数量小于某一阈值时停止划分或者在子节点对应的网络流量样本集的Gini指数小于某一阈值时停止划分。这样提前停止划分的决策树虽然划分的精度不是100%,但是泛化能力更强,不容易出现过拟合问题。
如果子节点符合停止划分的条件则停止对该子节点的进一步划分,将该子节点作为叶节点,决策树的分叉到叶节点停止。如果子节点不符合停止划分的条件,则对该子节点作进一步划分,即继续进行层级划分。在对子节点进行划分时,针对当前子节点的网络流量样本子集的每个未经划分的特征,选取可能的划分点,同样计算每个可能的划分点对应的Gini指数,选择具有最小Gini指数的划分点作为当前子节点的最优划分点,根据当前子节点的新的最优划分特征和最优划分点来再次划分当前子节点。依此类推,递归进行划分当前节点以产生子节点和判断子节点是否符合预设的停止划分条件的步骤,直至决策树的所有划分路径均到达叶节点,从而得到“完全生长”的决策树模型。
最后使用基于代价复杂度的剪枝方法从完全生长的决策树流量类型识别模型的底端剪去一些子树,使决策树变小,从而能够对未知数据有更高的分类精确度(即具有更强的泛化能力)。CART算法的剪枝过程由两步组成:首先从完全生长的决策树T0底端开始不断剪枝,直到决策树的根结点,形成子决策树序列{T0,T1,...,Tn}。然后通过交叉验证法在独立的验证数据集上对子决策树序列进行测试,从中选择最优的子决策树作为最终训练得到的流量类型识别模型。
使用以上训练过程,收集100个以上APP域名和网站域名的100万个以上的网络流量数据来训练基于决策树的流量类型识别模型。训练后模型的指标结果如表4所示。其中精确率=0.98、召回率=0.98、f1值=0.98。也就是说整个模型的准确程度达到了98%,满足现网需求。
精确率 | 召回率 | f1值 | |
网站类型 | 0.99 | 0.98 | 0.99 |
APP类型 | 0.97 | 0.97 | 0.97 |
宏平均 | 0.98 | 0.98 | 0.98 |
加权平均 | 0.98 | 0.98 | 0.98 |
表4
图9是示出根据本发明一个或多个实施例的训练流量类型识别模型的学习曲线图。从图9可以看到训练网络流量样本集和测流量样本集的得分随着输入样本量增加逐渐稳定在98%左右,这说明流量类型识别模型的训练已经完成收敛,准确率到达到最佳水平。
图10示出根据本发明一个或多个实施例的识别网络流量类型的装置的结构示意图。图10中的实线方框代表功能模块,虚线方框代表与处理模块相关但未必是必须存在的单元或构件,其可以是以软件、硬件、固件或其组合的形式存在。
如图10所示,示例装置1000包括以下模块:采集模块1010、预处理模块1020以及识别模块1030。
下面将简单地介绍每个模块的概括性功能,需要理解的是,每个模块的布置顺序以及存在必要性不限于此。例如,某个(某些)模块可以不必要存在,或者某个(某些)模块的功能可以由另一个(一些)模块代替地实现。
采集模块1010,用于从获取的网络流量中采集与所述网络流量的类型相关联的字段集;在一些实施例中,所述字段集包括以下中的至少一个:Host字段、CGI字段、UA字段、Referrer字段、contentType字段或responseContent字段。在一些实施例中,所述网络流量类型包括应用程序网络流量和网站网络流量。在一些实施例中,所述网络流量是双向网络流量,包括网络请求和网络应答。在一些实施例中,所述网络流量使用以下协议中的一个或多个进行传输:HTTP和HTTPS。
预处理模块1020,用于按照预定规则对所述字段集进行处理以获得特征参数集,所述预定规则包括判定规则,可选地还包括统计规则。
在一些实施例中,所述预处理模块包括:判定单元1022,用于对所述字段集中的一个或多个字段按照所述判定规则进行判定,以生成对应的判定值作为第一特征参数集,其中所述第一特征参数集是所述特征参数集的第一子集。
在一些实施例中,所述预处理模块还包括:统计单元1024,对所述第一特征参数集中的一个或多个特征参数按照所述统计规则进行统计,以生成对应的统计值作为第二特征参数集,其中所述第二特征参数集是所述特征参数集的第二子集。
在一些实施例中,所述判定规则包括以下步骤:将所述字段集中的一个或多个字段的取值分别与不同的判定条件进行匹配,其中,所述不同的判定条件包括字段的取值是否命中特定字符、字段的取值是否为空、或字段的取值是否符合特定格式;以及取决于匹配结果,生成对应于所述不同的判定条件的布尔值,以作为所述第一特征参数集中的特征参数。
在一些实施例中,所述统计规则包括以下步骤:将所述字段集中的至少一个字段取值相同的网络流量归类成一组或多组同类网络流量;统计所获取的网络流量中每组同类网络流量的总流量数目;统计每组同类网络流量中所述第一特征参数集中的特定特征参数的判定值为真的流量数目;以及计算特定特征参数的判定值为真的流量数目占总流量数目的比例值,以作为所述第二特征参数集中的特征参数。
识别模块1030,用于根据所述字段集中的至少一个字段和所述特征参数集中的至少一个特征参数进行层级划分,将层级划分结果作为识别的所述网络流量类型。。
在一个或多个实施例中,当示例装置1000充当为服务器提供网络安全防护的装置时,还包括:接收模块(未示出),用于接收从终端到所述服务器的网络请求;判断模块(未示出),用于判断网络请求的网络流量类型是否已被识别;获取模块(未示出),用于在采集网络流量的数据之前通过复制实际网络流量获取对应的镜像网络流量作为下一步分析处理以及学习的对象;防护模块(未示出),用于根据识别模块1030反馈的网络流量类型对同类型的网络请求采取对应的防护措施。
参见图11,图11示出根据本发明一个或多个实施例的计算设备的结构示意图。在一个实施例中,在所述计算设备上可以部署有根据本发明一个或多个实施例提供的基于人工智能识别网络流量类型的装置,用于执行图3-图5对应的网络流量类型识别的步骤。在另一个实施例中,在所述计算设备上还可以部署有根据本发明一个或多个实施例提供的网络安全系统,用于执行图6对应的网络安全防护的步骤。
在一些实施例中,图11所示的计算设备1100包括:至少一个处理器1110、存储器1150、以及至少一个网络接口1120。计算设备1100中的各个组件通过总线1140耦合在一起。可理解,总线1140用于实现这些组件之间的连接通信。总线1140除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图11中将各种总线都标为总线1140。
处理器1110可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立逻辑器件或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器1150可以是可移除的存储器、不可移除的存储器或其组合。存储器的示例性硬件组件包括固态存储器、硬盘驱动器和光盘驱动器等。存储器1150可选地包括在物理位置上远离处理器1110的一个或多个存储设备。
存储器1150包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本发明实施例描述的存储器1150旨在包括任意适合类型的存储器。
在一些实施例中,存储器1150能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面对存储器1150中的组成部分进行示例性说明。
操作系统1151可从Windows ServerTM、Mac OS XTM、UnixTM、LinuxTM或者FreeBSDTM等操作系统中选取。具体而言,操作系统1151包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;网络通信模块1152,用于经由一个或多个(有线或无线)网络接口1120到达其他计算设备,示例性的网络接口1120包括:双绞线接口、光纤接口、蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等。
在一些实施例中,根据本发明实施例提供的装置可以采用硬件、软件、固件或其中的组合方式实现。作为示例,如图11示出的存储在存储器1150中的基于人工智能识别网络流量类型的装置1153,其可以是程序和插件等形式的软件,包括如前述图10中的装置1000所包含的以下模块:采集模块1010、预处理模块1020以及识别模块1030。这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
在另一些实施例中,根据本发明一个或多个实施例提供的装置可以采用硬件方式实现。作为示例,根据本发明一个或多个实施例提供的基于人工智能识别网络流量类型的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的基于人工智能识别网络流量类型的方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件。
本发明实施例中还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如前述图3至图5所示方法流程图中描述的步骤,或者,使得计算机设备执行如前述图6所示方法流程图中描述的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的一个或多个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其他的方式实现。例如,一方面,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一方面,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其他的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明技术方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种识别网络流量类型的方法,其特征在于,所述方法包括:
对客户端与服务器之间通信的网络流量进行复制以获取所述网络流量;
从获取的网络流量中采集与所述网络流量的类型相关联的字段集;
对所述字段集进行判定和统计以获得特征参数集;以及
根据所述字段集中的至少一个字段和所述特征参数集中的至少一个特征参数进行层级划分,将层级划分结果作为识别的所述网络流量类型;
其中,对所述字段集进行判定和统计以获得特征参数集包括:
对所述字段集中的一个或多个字段进行判定,以生成对应的判定值作为第一特征参数集,其中所述第一特征参数集是所述特征参数集的第一子集;
对所述第一特征参数集中的一个或多个特征参数进行统计,以生成对应的统计值作为第二特征参数集,其中所述第二特征参数集是所述特征参数集的第二子集;
其中,根据所述字段集中的至少一个字段和所述特征参数集中的至少一个特征参数进行层级划分包括:
使用决策树算法将所述至少一个字段和所述至少一个特征参数作为输入值;
通过决策树中的各级节点对所述输入值中的一个或多个进行二元划分,其中各级节点中的每个节点表示不同的停止划分条件;以及
如果在一个节点处所述输入值中的一个或多个符合对应于该节点的停止划分条件,则在该节点处终止划分,否则继续划分。
2.根据权利要求1所述的方法,其特征在于,所述第一特征参数集是通过如下方式生成的:
将所述字段集中的一个或多个字段的取值分别与不同的判定条件进行匹配,
其中,所述不同的判定条件包括字段的取值是否命中特定字符、字段的取值是否为空、或字段的取值是否符合特定格式;以及
取决于匹配结果,生成对应于所述不同的判定条件的布尔值,以作为所述第一特征参数集中的特征参数。
3.根据权利要求1所述的方法,其特征在于,所述第二特征参数集是通过如下方式生成的:
将所述字段集中的至少一个字段取值相同的网络流量归类成一组或多组同类网络流量,其中所获取的网络流量是多个网络流量;
统计所获取的网络流量中每组同类网络流量的总流量数目;
统计每组同类网络流量中所述第一特征参数集中的特定特征参数的判定值为真的流量数目;以及
计算特定特征参数的判定值为真的流量数目占总流量数目的比例值,以作为所述第二特征参数集中的特征参数。
4.根据权利要求1-3中任一项所述的方法,其特征在于:
所述网络流量类型包括应用程序网络流量和网站网络流量;
所述网络流量是双向网络流量,包括网络请求和网络应答;以及
所述网络流量使用以下协议中的一个或多个进行传输:超文本传输协议和安全套接层上的超文本传输协议。
5.根据权利要求1所述的方法,其特征在于,通过以下步骤训练所述决策树以得到流量类型识别模型:
获取多个网络流量样本,所述多个网络流量样本被标记有已知网络流量类型;
从所述多个网络流量样本中采集每个网络流量样本的字段集;
对每个网络流量样本的字段集进行处理以获得每个网络流量样本的特征参数集;以及
使用标记有已知网络流量类型的所述多个网络流量样本,基于字段集中的至少一个字段、特征参数集中的至少一个特征参数来训练所述决策树以得到所述流量类型识别模型。
6.一种识别网络流量类型的装置,其特征在于,所述装置包括:
采集模块,被配置成从获取的网络流量中采集与所述网络流量的类型相关联的字段集;
预处理模块,被配置成对所述字段集进行判定和统计以获得特征参数集;以及
识别模块,被配置成根据所述字段集中的至少一个字段和所述特征参数集中的至少一个特征参数进行层级划分,将层级划分结果作为识别的所述网络流量类型;
其中,预处理模块进一步被配置成:
对所述字段集中的一个或多个字段进行判定,以生成对应的判定值作为第一特征参数集,其中所述第一特征参数集是所述特征参数集的第一子集;
对所述第一特征参数集中的一个或多个特征参数进行统计,以生成对应的统计值作为第二特征参数集,其中所述第二特征参数集是所述特征参数集的第二子集;
其中,识别模块进一步被配置成:
使用决策树算法将所述至少一个字段和所述至少一个特征参数作为输入值;
通过决策树中的各级节点对所述输入值中的一个或多个进行二元划分,其中各级节点中的每个节点表示不同的停止划分条件;以及
如果在一个节点处所述输入值中的一个或多个符合对应于该节点的停止划分条件,则在该节点处终止划分,否则继续划分。
7.一种为服务器提供网络安全防护的方法,其特征在于,所述方法包括:
接收从终端到所述服务器的网络请求;
判断所述网络请求的网络流量类型是否已被识别;
如果没有被识别,则使用权利要求1-5中任一项所述的方法识别所述网络流量类型;以及
根据所述网络流量类型对所述网络请求采取对应的防护措施。
8.一种为服务器提供网络安全防护的系统,其特征在于,所述系统包括:
核心路由器,配置成从网络服务提供商获取来自其他用户终端针对所述服务器的网络请求;
防护子系统,配置成判断所述网络请求的网络流量类型是否已被识别;
分光器,配置成如果所述网络流量类型未被识别,则对客户端与服务器之间通信的网络流量进行复制以获取所述网络流量;
采集与预处理子系统,配置成从所述网络流量中采集与所述网络流量的类型相关联的字段集,并且对所述字段集进行判定和统计以获得特征参数集;以及
识别子系统,配置成根据所述字段集中的至少一个字段和所述特征参数集中的至少一个特征参数进行层级划分,将层级划分结果作为识别的所述网络流量类型,
其中,防护子系统还配置成根据所述网络流量类型采取对应的防护措施;
其中,采集与预处理子系统还配置成:
对所述字段集中的一个或多个字段进行判定,以生成对应的判定值作为第一特征参数集,其中所述第一特征参数集是所述特征参数集的第一子集;
对所述第一特征参数集中的一个或多个特征参数进行统计,以生成对应的统计值作为第二特征参数集,其中所述第二特征参数集是所述特征参数集的第二子集
其中,识别子系统进一步被配置成:
使用决策树算法将所述至少一个字段和所述至少一个特征参数作为输入值;
通过决策树中的各级节点对所述输入值中的一个或多个进行二元划分,其中各级节点中的每个节点表示不同的停止划分条件;以及
如果在一个节点处所述输入值中的一个或多个符合对应于该节点的停止划分条件,则在该节点处终止划分,否则继续划分。
9.一种计算设备,其特征在于,所述计算设备包括:
存储器,用于存储计算机可执行程序;以及
处理器,配置成执行存储在所述存储器上的所述计算机可执行程序,以实现如权利要求1-5中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行程序,所述计算机可执行程序可被处理器加载并执行以实现如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011059401.6A CN114338064B (zh) | 2020-09-30 | 2020-09-30 | 识别网络流量类型的方法、装置、系统、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011059401.6A CN114338064B (zh) | 2020-09-30 | 2020-09-30 | 识别网络流量类型的方法、装置、系统、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114338064A CN114338064A (zh) | 2022-04-12 |
CN114338064B true CN114338064B (zh) | 2023-07-07 |
Family
ID=81010947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011059401.6A Active CN114338064B (zh) | 2020-09-30 | 2020-09-30 | 识别网络流量类型的方法、装置、系统、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114338064B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115296834B (zh) * | 2022-06-16 | 2024-03-01 | 上海电信工程有限公司 | 一种用于识别边界网关协议劫持的方法和系统 |
CN115802355B (zh) * | 2023-01-20 | 2023-05-09 | 苏州派尔网络科技有限公司 | 一种移动物联网卡管理方法、装置及云平台 |
CN116743672A (zh) * | 2023-06-08 | 2023-09-12 | 新分享科技服务(深圳)有限公司 | 基于人工智能的流量分发方法、系统、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104022920A (zh) * | 2014-06-26 | 2014-09-03 | 重庆重邮汇测通信技术有限公司 | 一种lte网络流量识别系统及方法 |
CN109063745A (zh) * | 2018-07-11 | 2018-12-21 | 南京邮电大学 | 一种基于决策树的网络设备类型识别方法及系统 |
CN109245963A (zh) * | 2018-10-22 | 2019-01-18 | 杭州迪普科技股份有限公司 | 网络终端类型的识别方法及相关设备 |
CN110213208A (zh) * | 2018-05-09 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种处理请求的方法和装置以及存储介质 |
WO2019214831A1 (en) * | 2018-05-08 | 2019-11-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and nodes for enabling management of traffic |
CN111355670A (zh) * | 2018-12-24 | 2020-06-30 | 中移(杭州)信息技术有限公司 | 一种流量识别方法、装置、电子设备及存储介质 |
-
2020
- 2020-09-30 CN CN202011059401.6A patent/CN114338064B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104022920A (zh) * | 2014-06-26 | 2014-09-03 | 重庆重邮汇测通信技术有限公司 | 一种lte网络流量识别系统及方法 |
WO2019214831A1 (en) * | 2018-05-08 | 2019-11-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and nodes for enabling management of traffic |
CN110213208A (zh) * | 2018-05-09 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种处理请求的方法和装置以及存储介质 |
CN109063745A (zh) * | 2018-07-11 | 2018-12-21 | 南京邮电大学 | 一种基于决策树的网络设备类型识别方法及系统 |
CN109245963A (zh) * | 2018-10-22 | 2019-01-18 | 杭州迪普科技股份有限公司 | 网络终端类型的识别方法及相关设备 |
CN111355670A (zh) * | 2018-12-24 | 2020-06-30 | 中移(杭州)信息技术有限公司 | 一种流量识别方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114338064A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200412767A1 (en) | Hybrid system for the protection and secure data transportation of convergent operational technology and informational technology networks | |
Radoglou-Grammatikis et al. | Modeling, detecting, and mitigating threats against industrial healthcare systems: a combined software defined networking and reinforcement learning approach | |
US20210019674A1 (en) | Risk profiling and rating of extended relationships using ontological databases | |
US20220224706A1 (en) | Artificial intelligence-based network security protection method and apparatus, and electronic device | |
US20200389495A1 (en) | Secure policy-controlled processing and auditing on regulated data sets | |
CN114338064B (zh) | 识别网络流量类型的方法、装置、系统、设备和存储介质 | |
Adewole et al. | SMSAD: a framework for spam message and spam account detection | |
CN107579956B (zh) | 一种用户行为的检测方法和装置 | |
Al-Janabi et al. | Using supervised machine learning algorithms to detect suspicious URLs in online social networks | |
CN110012005B (zh) | 识别异常数据的方法、装置、电子设备及存储介质 | |
CN107547490B (zh) | 一种扫描器识别方法、装置及系统 | |
US11483337B2 (en) | Threat mitigation system and method | |
CN115134099B (zh) | 基于全流量的网络攻击行为分析方法及装置 | |
CN103457909A (zh) | 一种僵尸网络检测方法及装置 | |
RU2659482C1 (ru) | Способ защиты веб-приложений при помощи интеллектуального сетевого экрана с использованием автоматического построения моделей приложений | |
US11659007B2 (en) | Threat mitigation system and method | |
CN115840965B (zh) | 一种信息安全保障模型训练方法和系统 | |
CN116738369A (zh) | 一种流量数据的分类方法、装置、设备及存储介质 | |
CN115442159B (zh) | 一种基于家用路由的风险管控方法、系统和存储介质 | |
WO2021243197A1 (en) | Threat mitigation system and method | |
de la Torre-Abaitua et al. | A compression based framework for the detection of anomalies in heterogeneous data sources | |
CN113055334B (zh) | 终端用户的网络行为的监管方法和装置 | |
US11483420B2 (en) | Fast network recognition of active applications for real time user notification | |
US20230336528A1 (en) | System and method for detecting dictionary-based dga traffic | |
Upreti et al. | FENCE: Fairplay Ensuring Network Chain Entity for Real-Time Multiple ID Detection at Scale In Fantasy Sports |
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 |