CN113315789B - 一种基于多级联合网络的Web攻击检测方法及系统 - Google Patents
一种基于多级联合网络的Web攻击检测方法及系统 Download PDFInfo
- Publication number
- CN113315789B CN113315789B CN202110860477.7A CN202110860477A CN113315789B CN 113315789 B CN113315789 B CN 113315789B CN 202110860477 A CN202110860477 A CN 202110860477A CN 113315789 B CN113315789 B CN 113315789B
- Authority
- CN
- China
- Prior art keywords
- word
- vector
- http
- http request
- words
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 45
- 239000013598 vector Substances 0.000 claims abstract description 171
- 230000002159 abnormal effect Effects 0.000 claims abstract description 65
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 36
- 238000012545 processing Methods 0.000 claims abstract description 31
- 238000012549 training Methods 0.000 claims abstract description 24
- 238000007781 pre-processing Methods 0.000 claims abstract description 21
- 230000011218 segmentation Effects 0.000 claims abstract description 19
- 238000012163 sequencing technique Methods 0.000 claims abstract description 17
- 238000000034 method Methods 0.000 claims description 51
- 238000004364 calculation method Methods 0.000 claims description 19
- 238000010276 construction Methods 0.000 claims description 4
- 230000008030 elimination Effects 0.000 claims description 2
- 238000003379 elimination reaction Methods 0.000 claims description 2
- 238000000926 separation method Methods 0.000 claims 2
- 230000006870 function Effects 0.000 description 19
- 238000011176 pooling Methods 0.000 description 17
- 238000010606 normalization Methods 0.000 description 12
- 239000011159 matrix material Substances 0.000 description 9
- 238000013507 mapping Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 4
- 238000003062 neural network model Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/242—Dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提出了一种基于多级联合网络的Web攻击检测方法及系统,属于Web攻击检测领域,提取若干条http攻击样本的payload特征词;对payload特征词和原始http请求数据分别进行数据预处理;再对预处理后的payload特征词进行分词处理和排序处理,构建异常http攻击载荷词汇表;将异常http攻击载荷词汇表与预处理后的原始http请求数据输入至Word2Vec模型中进行训练得到词向量;计算位置向量,将位置向量与词向量进行拼接得到输入向量;将输入向量输入至由注意力机制模型和卷积神经网络模型构成的多级联合网络模型中,输出检测结果,可提升Web攻击的分类精度。
Description
技术领域
本发明涉及Web攻击检测领域,特别是涉及一种基于由注意力机制和卷积神经网络构成的多级联合网络的Web攻击检测方法及系统。
背景技术
目前,Web服务已经应用于我们网络生活的方方面面,大多数企业向公众提供开放的Web服务,因此很容易发生基于Web服务的网络攻击。恶意http请求是进行网络犯罪的主要手段之一,会在未经允许的情况下攻击不知情的用户,对用户造成经济损失和个人信息泄露,危及用户安全。因此,高效准确地检测识别出Web攻击流量中的恶意http请求是应对网络攻击的重要任务之一。
深度学习方法是一种Web攻击检测的主流方法,虽然深度学习方法用于Web攻击检测任务中已经有了很大进展,但是由于其数据的不规律性和实际中文本字段的多变性以及极为庞大的数据量的情况下,在实际的Web服务使用中还存在以下三个问题:
(1)采用单个字符或者数字字母与符号分开的词作为词汇表,而单个字符作为词汇表的缺点在于编码出来的序列长度较长,而且采用字符编码方式,无法包含语义信息,在进行向量化时也会因为词表太短而产生泛化精度不够的情况;而采取训练数据中数字字母与符号分开的词作为词汇表时,由于http请求文本的不规律性,词汇表通常过于庞大,而且对于文本中词的覆盖程度也不够高,因此模型预测的精度也不会特别高。
(2)传统的http请求数据的处理只涉及到url解码与规则替换的结合,但是对于面对实际应用环境下各种http的攻击请求数据来说,由于数据具有长度长短不一、语境复杂、各字段序列不明确、不同网站的噪声干扰多且杂等特点,仅通过url解码与规则替换的处理数据在编码后依然无法准确的取得序列的最好长度,也容易造成预测结果精度不高的问题。
(3)在以往的Web攻击检测任务中,对于正常http请求与异常http请求的二分类任务,往往只使用了单一的深度学习模型,而单一的深度学习模型往往将文本中提取出的每一个特征视为同等重要,但事实上对于http请求文本来说,由于其文本长度不一,词构成不规律,其中存在着大量不平衡的数据特征,这无疑大大制约了模型预测的精度;其次大多数工作只关注了对正常http请求与异常http请求的二分类任务,没有考虑异常http请求的多分类任务,对于实际问题,Web攻击的具体种类也应当能够识别,如果使用单一模型进行多分类会导致分类精度低的问题。
综上,目前的Web攻击检测方法普遍存在Web攻击分类精度低的问题。因此,目前亟需一种高精度的Web攻击检测方法。
发明内容
本发明的目的是提供一种基于多级联合网络的Web攻击检测方法及系统,利用基于注意力机制和卷积神经网络的多级联合网络模型对Web攻击进行检测以及多分类识别,可有效提升模型的分类精度,不仅可准确识别出当前http请求是正常http请求还是异常http请求,还可针对异常http请求进行更加细致的分类,确定Web攻击的具体类型。
为实现上述目的,本发明提供了如下方案:
一种基于多级联合网络的Web攻击检测方法,包括:
提取若干条http攻击样本,得到所述http攻击样本的payload特征词;
对所述payload特征词和原始http请求数据分别进行数据预处理,得到预处理后的payload特征词和预处理后的原始http请求数据;
对所述预处理后的payload特征词进行分词处理和排序处理,构建异常http攻击载荷词汇表;
将所述异常http攻击载荷词汇表与所述预处理后的原始http请求数据输入至Word2Vec模型中进行词向量训练,得到词向量;
计算位置向量,并将所述位置向量与所述词向量进行拼接,得到输入向量;
采用由注意力机制模型和卷积神经网络模型构成的多级联合网络模型,将所述输入向量输入至所述多级联合网络模型中,输出检测结果。
一种基于多级联合网络的Web攻击检测系统,包括:
特征词获取模块,用于提取若干条http攻击样本,得到所述http攻击样本的payload特征词;
数据预处理模块,用于对所述payload特征词和原始http请求数据分别进行数据预处理,得到预处理后的payload特征词和预处理后的原始http请求数据;
词汇表构建模块,用于对所述预处理后的payload特征词进行分词处理和排序处理,构建异常http攻击载荷词汇表;
词向量获取模块,用于将所述异常http攻击载荷词汇表与所述预处理后的原始http请求数据输入至Word2Vec模型中进行词向量训练,得到词向量;
位置向量计算和输入向量获取模块,用于计算位置向量,并将所述位置向量与所述词向量进行拼接,得到输入向量;
多级联合网络模型检测模块,用于采用由注意力机制模型和卷积神经网络模型构成的多级联合网络模型,将所述输入向量输入至所述多级联合网络模型中,输出检测结果。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明提出了一种基于多级联合网络的Web攻击检测方法,首先提取若干条http攻击样本,得到http攻击样本的payload特征词;然后对payload特征词和原始http请求数据分别进行数据预处理,数据预处理使得在庞大的数据量的情况下,有效去除了多余的噪声信息,从而提高了模型的分类精度;再对预处理后的payload特征词进行分词处理和排序处理,构建异常http攻击载荷词汇表,通过这些词汇进行编码可以突出正常http请求与异常http请求的特征,从而大大提高模型的精度;再将异常http攻击载荷词汇表与预处理后的原始http请求数据输入至Word2Vec模型中进行词向量训练,得到词向量;然后计算位置向量,并将位置向量与词向量进行拼接,得到输入向量;最后采用由注意力机制模型和卷积神经网络模型构成的多级联合网络模型,将输入向量输入至多级联合网络模型中,输出检测结果。利用多级联合网络模型可以在识别出正常http请求和异常http请求之后,继续对Web攻击的类型进行细化分类。相比单一模型直接进行多分类的方法,基于注意力机制和卷积神经网络的多级联合网络模型可有效提升模型的分类精度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1提供的基于多级联合网络的Web攻击检测方法的流程图;
图2为本发明实施例1提供的基于多级联合网络的Web攻击检测方法的原理图;
图3为本发明实施例1提供的数据预处理的流程图;
图4为本发明实施例1提供的注意力机制模型的多头注意力机制的流程图;
图5为本发明实施例1提供的注意力机制模型的计算流程图;
图6为本发明实施例1提供的卷积神经网络模型进行分类的流程图;
图7为本发明实施例1提供的多级联合网络模型进行预测的流程图;
图8为本发明实施例2提供的基于多级联合网络的Web攻击检测系统的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于多级联合网络的Web攻击检测方法及系统,基于注意力机制和卷积神经网络结合形成的多级联合网络模型,通过注意力机制能够为http请求文本序列的每一个特征自动赋予一个权重,减小无效特征对多级联合网络模型的影响,大大提高了二分类任务数据预测的精度。并且,利用注意力机制模型与卷积神经网络模型进行联合预测,能够准确识别正常http请求与异常http请求,然后继续识别异常http请求的类型,满足二分类与多分类联合任务的要求。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例1
如图1和图2所示,本实施例示出了一种基于多级联合网络的Web攻击检测方法,该方法具体包括以下步骤:
S1、提取若干条http攻击样本,得到所述http攻击样本的payload特征词。具体包括:
从不同的http网站中收集若干条不同的所述http攻击样本,并确定每一条所述http攻击样本的所述payload特征词。本实施例中,提取的http攻击样本的数量为一百万条,需要说明的是,一百万条不同的http攻击样本,仅仅是一个优选值,并不是固定值,例如二百万条或八十万条等数量的http攻击样本均可,可根据实际情况自行确定。
S2、对所述payload特征词和原始http请求数据分别进行数据预处理,得到预处理后的payload特征词和预处理后的原始http请求数据。
由于传统的http请求文本处理方式仅仅是url解码加上个别敏感词的替换等处理,使用的规则替换也只是停留在request字段中,噪声干扰还保留在其他字段之中,对于最终的分类结果仍然具有很大影响。为了解决这一问题,本实施例采用了一种全新的数据预处理流程来清洗数据,如图3所示。本实施例中,数据预处理包括url解码、规则替换和文本规范化等步骤,将原始数据经过数据预处理后得到文本数据。其中,原始数据包括步骤S1提取的payload特征词和原始http请求数据,得到的文本数据即http请求文本数据,多个http请求的文本数据形成http请求文本序列。通过对http请求文本数据进行数据url解码、规则替换以及文本规范化等数据预处理操作,在庞大的数据量的情况下,也可以去除多余的噪声信息,使原始数据统一规范化,从而提高了模型的分类精度。
本实施例的数据预处理具体包括以下步骤:
S2.1、url解码处理。由于payload特征词和原始http请求数据构成的原始数据集包含request、headers和body三个字段,其中,headers中又包含着多个不同的子字段,在对Web服务进行http请求时,http请求文本都进行过url编码,这样就会显得杂乱无章,因此,需要1-2次url解码后才能使用。而本发明中,采用python中的urllib库的unquote函数分别对所述payload特征词和所述原始http请求数据的request字段以及body字段进行url解码。
S2.2、规则替换处理,包括去噪、去重以及重新组合过程。
由于不同网站的http请求文本相差较大,会影响正常分类的精度,因此,用规则去除各个http请求本身的特征是必要的。本实施例中,根据http请求文本的共同特征,采用相应的正则表达式对所述payload特征词和所述原始http请求数据中的每一字段进行去噪处理,以去除冗余噪声。
其中,正则表达式又称规则表达式,是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
举例说明,对于两个不同网站的http请求中的两个不同的字符串如“baidu/people”与“tienda1/publico”,由于“baidu/people”与“tienda1/publico”这两个字符串对于分类没有正相关关系,反而由于数据的不同在不同标签中容易产生噪声,对分类结果有不利影响,因此,本实施例采用了一个过滤的正则表达式来过滤这种噪声词,直接利用正则表达式过滤掉“baidu/people”与“tienda1/publico”这两个字符串。需要说明的是,上述“baidu/people”与“tienda1/publico”两个字符串仅仅是举例说明,并不是固定的、唯一的,还可以为其他各种内容的字符串,不应作为对本发明保护范围的限定,可根据实际情况自行选择,均可达到去噪的效果。
由于http请求数据中的Request,Headers和Body三个字段名中都含有不同的子字段,不同数据种类之间字段的构成成分千差万别,并且请求文本大多具有重复信息,因此,数据的规范化尤为重要。本实施例中,将每一字段的字段名的值按照字母数字与符号分离的方式进行分离,并将分离后的字母数字和符号分别放入到一个集合中进行去重,将去重后的字母数字和符号组合形成一个新的字段名的值,达到去除各个字段的重复信息的目的。
S2.3、文本规范化处理。对所述payload特征词和所述原始http请求数据中各个所述字段的所述字段名进行格式规范化处理,使各个所述字段名的顺序统一。
S2.4、针对缺少字段名的值的字段,将所述字段的字段名的值设置为UNK,得到所述预处理后的payload特征词和所述预处理后的原始http请求数据。
相比于传统的http文本处理方式,本发明采用的数据预处理方法既可以去除大部分的噪声干扰,又可以统一规范化文本字段,使得文本数据对齐,对预测结果有很大提升,可显著提高预测的准确率。
S3、对所述预处理后的payload特征词进行分词处理和排序处理,构建异常http攻击载荷词汇表。
基于http请求文本如何编码的问题,现有的编码方法主要包括两种,一种是直接采取字符编码方式,这种方式的缺陷在于编码出来的序列长度较长,并且无法包含语义信息,对于测试数据的泛化能力也比较弱;另一种是采取训练数据中数字字母与符号分开的词汇作为词汇表,由于http请求文本的不规律性,词汇表通常过于庞大,并且对于http请求文本中词汇的覆盖程度也不够高,因此,模型预测的精度也就会比较高。为了解决http请求文本编码的问题,本发明提出了一种新的词汇表来进行文本的编码,采用对异常http请求中出现频次较高的payload特征词即攻击载荷特征词构成词汇表,利用该词汇表对文本数据进行编码,编码时能够过滤http请求文本中的非典型干扰,可以使正常http请求与异常http请求的特征更加突出,从而更易区分开正常http请求与异常http请求,进而大幅提高了模型的分类精度。
本实施例构建异常http攻击载荷词汇表的过程包括以下步骤:
S3.1、对步骤1提取的http攻击样本的payload特征词经过步骤2的数据预处理后,由于payload特征词包含的信息多且杂,并且长短不一,为了更好的匹配原始文本的信息,因此,本实施例我们采用数字和字母分离的方式,对所述预处理后的payload特征词进行分词处理,得到分词处理后的词汇。
S3.2、采用统计词频方法对所述分词处理后的词汇进行排序,并从左到右依次提取排序队列中预设数量的词汇,即提取排序队列中靠前的L个词汇,L为自定义长度参数,利用提取的L个词汇构建出异常http攻击载荷词汇表。
本发明采用的统计词频方法,简单来说就是某一词汇出现的次数除以在这个http请求文本中所有词出现的次数,得到该词汇在该http请求文本的出现频率,简称词频。
采用统计词频方法对所述分词处理后的词汇进行排序,具体包括:
S3.2.1、利用公式(1)计算每一个词汇的词频:
其中,tf j,z 表示第j个词汇在http请求文本z中的词频,n j,z 表示第j个词汇在http请求文本z中的出现次数,Σn j,z 表示在http请求文本z中所有词汇出现次数之和。
S3.2.2、根据每一所述词汇的所述词频,按照所述词频从大到小的顺序对所有所述词汇进行排序。
本发明通过统计词频方法过滤掉http请求文本中不常见的词汇,保留重要的词汇,最后得到异常http攻击载荷词汇表。相比于字符词表的编码方式,通过统计词频方法构建的异常http攻击载荷词汇表在进行编码时能够包含其语义信息,而且编码出来的序列长度也比较适合,提高了模型的预测精度。而相比于数字字母与符号分开的词汇作为词汇表,通过统计词频方法构建的异常http攻击载荷词汇表在进行编码时能够通过自定义长度参数L来改变词汇表的长度,可避免词汇表过长的问题,进行编码时能够过滤http请求文本中的典型的特征干扰,进而突出正常http请求与异常http请求的文本数据的特征,进一步提高了模型的分类精度。
S4、将所述异常http攻击载荷词汇表与所述预处理后的原始http请求数据输入至Word2Vec模型中进行词向量训练,得到词向量。由于http请求数据中的很多词都存在于多个字段之中,相同的词在不同字段中表达的意义不一样,存在一词多义的现象。并且,基于注意力机制的模型本身没有使用卷积操作和基于时序的RNN模型,所以模型无法学习到句子的序列关系。基于这两方面的考虑,本发明将词向量和位置向量加起来组成最终的输入向量。因此,需要先要训练出词向量,具体包括以下步骤:
S4.1、将所述异常http攻击载荷词汇表与所述预处理后的原始http请求数据输入至所述Word2Vec模型中;
S4.2、利用所述Word2Vec模型对所述异常http攻击载荷词汇表中每一词汇的词向量进行训练,得到训练后的词向量。本实施例中,采用Python中的gensim工具包中的Word2Vec模块,词向量空间维度设置为300维,通过训练语料训练出词汇表中的每个词的词向量。这里训练语料取的是经过去重以及数据预处理后的一百万条http攻击样本。通过Word2Vec模型对异常http攻击载荷词汇表中每一词汇的词向量进行训练,得到训练后的词向量。应说明,词向量空间维度设置为300维是一个优选值,还可以设置为其他值,可根据实际情况自行设定。
S4.3、对各个所述词汇的所述训练后的词向量进行拼接,得到http请求文本序列的词向量表示,对于一个http请求文本序列,将http请求文本中的每个词的词向量拼接起来,就可以得到整个http请求文本序列的词向量表示,其中拼接即直接相加。所述词向量表示为:
S5、计算位置向量,并将所述位置向量与所述词向量进行拼接,得到输入向量。位置向量的计算方法有两种,一种是采用基于不同频率的sin函数和cos函数的三角函数计算的方式;另一种是采用如步骤S4的模型训练的方法训练位置向量的方式,与步骤S4的模型训练过程相同,此处不再赘述。本实施例优选第一种的三角函数计算法计算位置向量。
S5.1、采用三角函数计算法计算位置向量,具体包括以下步骤:
S5.1.1、采用不同频率的sin函数和cos函数计算第pos个词汇在第i维位置向量的值PE (pos,i):
其中,PE (pos,i)表示第pos个词汇在第i维位置向量的值,PE (pos,2i)表示第pos个词汇在第2i维位置向量的值,PE (pos,2i+1)表示第pos个词汇在第2i+1维位置向量的值;d model 表示位置向量的维度,pos表示词汇在句子中的索引,i表示词汇位置向量的维度索引;
S5.1.2、http请求文本中第j个词汇的位置向量P j 用公式表示为:
S5.2、将所述位置向量与所述词向量进行拼接,得到所述输入向量,表达式为:
其中,F j 表示输入向量,C j 表示词向量,P j 表示位置向量,j表示第j个词汇。
S6、采用由注意力机制模型和卷积神经网络模型构成的多级联合网络模型,将所述输入向量输入至所述多级联合网络模型中,输出检测结果。
如图4所示,本实施例中,注意力机制是将Q(query)和一组K-V(key-value)键值对映射到一个输出。图4中,N表示网络层数,Q、K、V分别是通过输入向量乘以三个不同权值矩阵WQ、WK、WV得到新的向量,其中,三个权值矩阵是由Q与相应K的兼容性函数计算得到的,本实施例采用pytorch工具包中的linear线性映射函数进行映射,还可以采用其他任意的线性映射函数。
本实施例中,注意力机制模型主要包含多头注意力机制、基于位置的前馈网络和归一化层三个部分。注意力机制具体步骤如下:
(1)通过输入向量计算Q、K、V三个向量的值。首先将多个输入向量F j 累加,即X=ΣF j ,得到输入向量X,利用输入向量X与向量维度d model ,通过linear线性映射函数分别计算权值矩阵WQ、WK、WV,由于采用自注意力机制(self-attention)进行计算,因此初始时输入的三个输入向量Q、K、V的值相同,并且权值矩阵WQ、WK、WV的值也相同,表示为:
其中,WQ、WK、WV表示权值矩阵,linear表示线性映射函数,d model 表示向量维度。
(2)利用多头注意力机制对线性映射后的Q、K、V三个向量进行点积式注意力计算,计算过程如图5所示,其中,多头注意力机制由多个并行的注意力层组成,h表示注意力层的层数。
通过注意力层数h和向量维度d model 分别计算K和V的维度d k 、d v ,计算公式表示为:
其中,h表示注意力层数,d k 表示向量K的维度,d v 表示向量V的维度,d model 表示向量维度。
将d k 、d v 分别输入到点积式注意力层中计算,计算公式表示为:
其中,Q、K、V均为向量,T表示矩阵转置,Attention(Q,K,V)表示Q、K、V三个向量的注意力值。
对h个计算出的Attention值进行拼接,得到多头注意力机制的计算结果即输出向量MultiHead(Q,K,V),计算过程表示为:
其中,Concat(·)表示拼接,h表示注意力层数,,W O 表示计算出的总的权重矩阵,参数矩阵,,、、、分别为Q、K、V、O向量的参数矩阵,R表示实数集,这些参数矩阵均为通过公式(7)计算得来,将公式(7)中的linear参数修改为实数集R的维度即可。
(3)将输入向量X与经过多头注意力机制输出的向量相加,然后进行归一化处理。本实施例中,归一化过程采用的是pytorch中的normalize函数,还可以为其他归一化函数。归一化过程如公式(11)和(12)所示:
其中,x表示输入向量X与多头注意力机制输出向量的和,Y表示x经normalize函数归一化后得到的向量。
(4)基于位置的前馈网络计算,将向量Y与计算后的向量相加再进行一次归一化处理。前馈网络计算过程如公式(13)所示,通过两层全连接层进行计算,每一层全连接层都是一次线性映射,经过两层全连接层得到前馈网络的输出FFN(Y):
其中,FFN(Y)表示向量Y经过两层全连接层的前馈网络的输出结果,linear表示线性映射函数;
然后利用公式(12)中的normalize函数将向量Y+FFN(Y)进行归一化,则可以得到第一层全连接层的输出outputs,如公式(14)所示:
(5)将第一层的输出outputs当成第二层的输入,循环步骤(1)至(4)N次,即可得到注意力机制所得到的输出值。然后经过一次全连接层使得输出的维度为2,最后再经过softmax函数后可以得到最终的二分类的分类结构,如公式(15)所示。经过softmax函数2维的所有值加起来为1,因此可以准确地判断出最终结果是正常http请求还是异常http请求。
其中,x i 表示softmax函数第i维的值,e为底数。
本发明采用注意力机制模型,相比循环神经网络、卷积神经网络等非注意力机制模型,采用注意力机制可以为每一个提取的特征赋予权重,减小无效特征对模型的影响,从而大幅提高了数据预测的精度。并且,由于采用的是注意力机制,初始输入向量和权值矩阵的值均相同,因此,计算更加简便,计算参数较少,模型训练速度更快。
为了识别异常http的具体种类,本发明采用卷积神经网络模型对正常http请求和异常http请求进行区分,卷积神经网络模型的分类过程如图6所示。本实施例中,异常http请求最终分类为Codeinjection攻击、Commandinjection攻击以及Crawler攻击等共计12类。需要说明的是,异常http请求的类别数量以及具体类别并不是固定的、唯一的,取决于不同的Web服务。
如图6所示,卷积神经网络模型进行分类的过程包括以下步骤:
(1)将输入向量X输入到卷积神经网络模型的卷积层1中,这里的卷积层采用1维卷积方法,卷积参数可在实验中自行设定。输入的维度应与输入向量X的维度一致。
(2)将卷积层1的卷积结果输入至池化层1中进行池化处理,池化策略采用最大值策略。
(3)将池化层1得到的池化结果作为输入,输入到卷积层2中进行第二次卷积,输入维度应与池化层的结果的维度保持一致。
(4)将卷积层2的卷积结果输入至池化层2中进行第二次池化处理,这里的池化层2采用的池化策略与池化层1一致,仍为最大值策略。
(5)将池化层2的池化结果输入至卷积神经网络模型的全连接层中,此时的全连接层的输出维度为分类类别数,由于预先设定的异常http请求的类别共有12种,因此,此时全连接层的输出结果的维度也为12维。
需要说明的是,本发明采用的卷积神经网络模型为已经预先通过已标记好的异常http请求数据进行训练得到的模型,通过大量异常http请求数据对卷积神经网络模型进行训练,可提升卷积神经网络模型识别异常http请求类别的精度。另外,本实施例中卷积神经网络模型中各个池化层的池化处理过程,各个卷积层的卷积过程,以及采用异常http请求数据对卷积神经网络模型进行训练的过程,均与普通的卷积神经网络相同,此处不再赘述。
本发明将卷积神经网络模型应用于Web攻击检测中,利用卷积神经网络可以准确地识别出异常http请求的12个类别,实现多类别的分类。卷积层的卷积处理结合池化层的池化处理能够自动提取http请求文本序列中最为显著的特征,提高了识别精度和分类精度。并且,由于输入的http请求文本序列较长,相比循环神经网络模型,卷积神经网络模型在长序列文本的处理上更加占据优势。
本发明,将注意力机制模型和卷积神经网络模型进行联合构成多级联合网络模型,结合注意力机制模型和卷积神经网络模型各自的优势,利用多级联合网络模型可以在准确识别出正常http请求和异常http请求后,还可继续对Web攻击的类型进行细化分类。相比单一模型直接进行多分类的方法,基于注意力机制和卷积神经网络的多级联合网络模型可有效提升模型的分类精度。
如图7所示,本发明利用多级联合网络模型进行Web攻击检测的过程包括以下步骤:
S6.1、将所述输入向量输入至所述多级联合网络模型中;所述多级联合网络模型中包含所述注意力机制模型和所述卷积神经网络模型;
S6.2、通过所述注意力机制模型对所述输入向量进行预测,得到基于正常http请求和异常http请求的二分类结果;
S6.3、根据所述二分类结果判断当前http请求是否为正常http请求;当所述二分类结果是正常http请求时,则输出正常http请求;当所述二分类结果是异常http请求时,则执行步骤S6.4;
S6.4、当所述二分类结果是异常http请求时,采用所述卷积神经网络模型对所述输入向量进行分类,得到异常http请求的多分类结果;所述卷积神经网络模型为预先通过已标记好的异常http请求数据训练得到的模型。
相比现有的Web攻击检测方法,本发明利用多级联合网络模型在准确地识别出正常的http请求和异常的http请求之后,还能够继续识别Web攻击的具体种类,对于防范Web攻击有针对性作用。并且,采用多级联合网络模型预测,可满足对于Web攻击检测这类的二分类和多分类的不同精度要求,均可在不同分类的任务中保证检测精度,相比传统的单一模型检测方法,本发明的多分类精度有明显提高。
实施例2
如图8所示,本实施例示出了一种基于多级联合网络的Web攻击检测系统,该系统使用的是实施例1中的Web攻击检测方法,系统具体包括:
特征词获取模块M1,用于提取若干条http攻击样本,得到所述http攻击样本的payload特征词;
数据预处理模块M2,用于对所述payload特征词和原始http请求数据分别进行数据预处理,得到预处理后的payload特征词和预处理后的原始http请求数据;
词汇表构建模块M3,用于对所述预处理后的payload特征词进行分词处理和排序处理,构建异常http攻击载荷词汇表;
词向量获取模块M4,用于将所述异常http攻击载荷词汇表与所述预处理后的原始http请求数据输入至Word2Vec模型中进行词向量训练,得到词向量;
位置向量计算和输入向量获取模块M5,用于计算位置向量,并将所述位置向量与所述词向量进行拼接,得到输入向量;
多级联合网络模型检测模块M6,用于采用由注意力机制模型和卷积神经网络模型构成的多级联合网络模型,将所述输入向量输入至所述多级联合网络模型中,输出检测结果。
本说明书中各个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。本说明书中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种基于多级联合网络的Web攻击检测方法,其特征在于,包括:
提取若干条http攻击样本,得到所述http攻击样本的payload特征词;
对所述payload特征词和原始http请求数据分别进行数据预处理,得到预处理后的payload特征词和预处理后的原始http请求数据;
对所述预处理后的payload特征词进行分词处理和排序处理,构建异常http攻击载荷词汇表;具体包括:
采用数字字母分离的方式,对所述预处理后的payload特征词进行分词处理,得到分词处理后的词汇;
采用统计词频方法对所述分词处理后的词汇进行排序,并从左到右依次提取排序队列中预设数量的词汇,利用提取的所述词汇构建所述异常http攻击载荷词汇表;
将所述异常http攻击载荷词汇表与所述预处理后的原始http请求数据输入至Word2Vec模型中进行词向量训练,得到词向量;
计算位置向量,并将所述位置向量与所述词向量进行拼接,得到输入向量;
采用由注意力机制模型和卷积神经网络模型构成的多级联合网络模型,将所述输入向量输入至所述多级联合网络模型中,输出检测结果。
2.根据权利要求1所述的基于多级联合网络的Web攻击检测方法,其特征在于,所述提取若干条http攻击样本,得到所述http攻击样本的payload特征词,具体包括:
从不同的http网站中收集若干条不同的所述http攻击样本,并确定每一所述http攻击样本的所述payload特征词。
3.根据权利要求1所述的基于多级联合网络的Web攻击检测方法,其特征在于,所述对所述payload特征词和原始http请求数据分别进行数据预处理,得到预处理后的payload特征词和预处理后的原始http请求数据,具体包括:
采用python中的urllib库的unquote函数分别对所述payload特征词和所述原始http请求数据的request字段以及body字段进行url解码;
根据http请求文本的共同特征,采用正则表达式对所述payload特征词和所述原始http请求数据中的每一字段进行去噪处理;
将每一所述字段的字段名的值按照字母数字与符号分离的方式进行分离,并将分离后的所述字母数字和所述符号分别放入到一个集合中进行去重,将去重后的所述字母数字和所述符号组合形成一个新的所述字段名的值;
对所述payload特征词和所述原始http请求数据中各个所述字段的所述字段名进行格式规范化处理,使各个所述字段名的顺序统一;
针对缺少所述字段名的值的所述字段,将所述字段的所述字段名的值设置为UNK,得到所述预处理后的payload特征词和所述预处理后的原始http请求数据。
5.根据权利要求1所述的基于多级联合网络的Web攻击检测方法,其特征在于,所述将所述异常http攻击载荷词汇表与所述预处理后的原始http请求数据输入至Word2Vec模型中进行词向量训练,得到词向量,具体包括:
将所述异常http攻击载荷词汇表与所述预处理后的原始http请求数据输入至所述Word2Vec模型中;
利用所述Word2Vec模型对所述异常http攻击载荷词汇表中每一词汇的词向量进行训练,得到训练后的词向量;
对各个所述词汇的所述训练后的词向量进行拼接,得到http请求文本序列的词向量表示,所述词向量表示为:
6.根据权利要求1所述的基于多级联合网络的Web攻击检测方法,其特征在于,所述计算位置向量,并将所述位置向量与所述词向量进行拼接,得到输入向量,具体包括:
采用三角函数计算法计算所述位置向量;
将所述位置向量与所述词向量进行拼接,得到所述输入向量。
7.根据权利要求6所述的基于多级联合网络的Web攻击检测方法,其特征在于,所述采用三角函数计算法计算所述位置向量,具体包括:
采用不同频率的sin函数和cos函数计算第pos个词汇在第i维位置向量的值PE (pos,i):
其中,PE (pos,i)表示第pos个词汇在第i维位置向量的值,PE (pos,2i)表示第pos个词汇在第2i维位置向量的值,PE (pos,2i+1)表示第pos个词汇在第2i+1维位置向量的值;d model 表示位置向量的维度,pos表示词汇在句子中的索引,i表示词汇位置向量的维度索引;
则http请求文本中第j个词汇的位置向量P j 用公式表示为:
8.根据权利要求1所述的基于多级联合网络的Web攻击检测方法,其特征在于,所述采用由注意力机制模型和卷积神经网络模型构成的多级联合网络模型,将所述输入向量输入至所述多级联合网络模型中,输出检测结果,具体包括:
将所述输入向量输入至所述多级联合网络模型中;所述多级联合网络模型包括所述注意力机制模型和所述卷积神经网络模型;
通过所述注意力机制模型对所述输入向量进行预测,得到基于正常http请求和异常http请求的二分类结果;
根据所述二分类结果判断当前http请求是否为所述正常http请求;
当所述二分类结果是所述正常http请求时,则输出所述正常http请求;
当所述二分类结果是所述异常http请求时,采用所述卷积神经网络模型对所述输入向量进行分类,得到所述异常http请求的多分类结果;所述卷积神经网络模型为预先通过已标记好的异常http请求数据训练得到的模型。
9.一种基于多级联合网络的Web攻击检测系统,其特征在于,包括:
特征词获取模块,用于提取若干条http攻击样本,得到所述http攻击样本的payload特征词;
数据预处理模块,用于对所述payload特征词和原始http请求数据分别进行数据预处理,得到预处理后的payload特征词和预处理后的原始http请求数据;
词汇表构建模块,用于对所述预处理后的payload特征词进行分词处理和排序处理,构建异常http攻击载荷词汇表;具体包括:
所述词汇表构建模块采用数字字母分离的方式,对所述预处理后的payload特征词进行分词处理,得到分词处理后的词汇;
所述词汇表构建模块采用统计词频方法对所述分词处理后的词汇进行排序,并从左到右依次提取排序队列中预设数量的词汇,利用提取的所述词汇构建所述异常http攻击载荷词汇表;
词向量获取模块,用于将所述异常http攻击载荷词汇表与所述预处理后的原始http请求数据输入至Word2Vec模型中进行词向量训练,得到词向量;
位置向量计算和输入向量获取模块,用于计算位置向量,并将所述位置向量与所述词向量进行拼接,得到输入向量;
多级联合网络模型检测模块,用于采用由注意力机制模型和卷积神经网络模型构成的多级联合网络模型,将所述输入向量输入至所述多级联合网络模型中,输出检测结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110860477.7A CN113315789B (zh) | 2021-07-29 | 2021-07-29 | 一种基于多级联合网络的Web攻击检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110860477.7A CN113315789B (zh) | 2021-07-29 | 2021-07-29 | 一种基于多级联合网络的Web攻击检测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113315789A CN113315789A (zh) | 2021-08-27 |
CN113315789B true CN113315789B (zh) | 2021-10-15 |
Family
ID=77381863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110860477.7A Active CN113315789B (zh) | 2021-07-29 | 2021-07-29 | 一种基于多级联合网络的Web攻击检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113315789B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110971603B (zh) * | 2019-12-04 | 2022-03-08 | 四川虹微技术有限公司 | 一种基于深度学习的异常流量检测方法及系统 |
CN114297640B (zh) * | 2021-12-29 | 2023-10-27 | 中国电信股份有限公司 | 攻击检测方法、装置、介质及设备 |
CN114117056B (zh) * | 2022-01-29 | 2022-04-08 | 腾讯科技(深圳)有限公司 | 一种训练数据的处理方法、装置以及存储介质 |
CN117560225B (zh) * | 2024-01-09 | 2024-04-09 | 长沙市智为信息技术有限公司 | 一种基于对抗生成网络的Web攻击检测方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109522017A (zh) * | 2018-11-07 | 2019-03-26 | 中山大学 | 一种基于神经网络和自注意力机制的网页截图代码生成方法 |
CN109960729A (zh) * | 2019-03-28 | 2019-07-02 | 国家计算机网络与信息安全管理中心 | Http恶意流量的检测方法及系统 |
CN111198995A (zh) * | 2020-01-07 | 2020-05-26 | 电子科技大学 | 一种恶意网页识别方法 |
CN112468501A (zh) * | 2020-11-27 | 2021-03-09 | 安徽大学 | 一种面向url的钓鱼网站检测方法 |
CN112800427A (zh) * | 2021-04-08 | 2021-05-14 | 北京邮电大学 | webshell检测方法、装置、电子设备和存储介质 |
CN112925877A (zh) * | 2019-12-06 | 2021-06-08 | 中国科学院软件研究所 | 一种基于深度度量学习的一人多案关联识别方法及系统 |
CN113032777A (zh) * | 2021-02-26 | 2021-06-25 | 济南浪潮高新科技投资发展有限公司 | 一种Web恶意请求检测方法及设备 |
CN113168523A (zh) * | 2018-11-30 | 2021-07-23 | 索尼互动娱乐股份有限公司 | 用于将图像数据转换成自然语言描述的系统和方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7599931B2 (en) * | 2006-03-03 | 2009-10-06 | Microsoft Corporation | Web forum crawler |
US10275458B2 (en) * | 2014-08-14 | 2019-04-30 | International Business Machines Corporation | Systematic tuning of text analytic annotators with specialized information |
CN108667816B (zh) * | 2018-04-19 | 2021-07-13 | 重庆邮电大学 | 一种网络异常的检测定位方法及系统 |
-
2021
- 2021-07-29 CN CN202110860477.7A patent/CN113315789B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109522017A (zh) * | 2018-11-07 | 2019-03-26 | 中山大学 | 一种基于神经网络和自注意力机制的网页截图代码生成方法 |
CN113168523A (zh) * | 2018-11-30 | 2021-07-23 | 索尼互动娱乐股份有限公司 | 用于将图像数据转换成自然语言描述的系统和方法 |
CN109960729A (zh) * | 2019-03-28 | 2019-07-02 | 国家计算机网络与信息安全管理中心 | Http恶意流量的检测方法及系统 |
CN112925877A (zh) * | 2019-12-06 | 2021-06-08 | 中国科学院软件研究所 | 一种基于深度度量学习的一人多案关联识别方法及系统 |
CN111198995A (zh) * | 2020-01-07 | 2020-05-26 | 电子科技大学 | 一种恶意网页识别方法 |
CN112468501A (zh) * | 2020-11-27 | 2021-03-09 | 安徽大学 | 一种面向url的钓鱼网站检测方法 |
CN113032777A (zh) * | 2021-02-26 | 2021-06-25 | 济南浪潮高新科技投资发展有限公司 | 一种Web恶意请求检测方法及设备 |
CN112800427A (zh) * | 2021-04-08 | 2021-05-14 | 北京邮电大学 | webshell检测方法、装置、电子设备和存储介质 |
Non-Patent Citations (4)
Title |
---|
Anomaly-based web attack detection:the application of deep neural network seq2seq with attention mechanism;Shahriar Mohammadi et al.;《ISecure》;20200131;第3-4节 * |
named entity recognition of electronic modical record in ophthalmology based on crf model;Xingliang Mao et al.;《ICCTEC》;20171231;全文 * |
基于深度学习的Web安全事件分析系统及其实现;仲思超等;《江苏通信》;20190430;全文 * |
基于深度学习的Web应用攻击检测;李建聪;《中国硕士学位论文信息科技辑》;20200301;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113315789A (zh) | 2021-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113315789B (zh) | 一种基于多级联合网络的Web攻击检测方法及系统 | |
Dahouda et al. | A deep-learned embedding technique for categorical features encoding | |
CN111241837B (zh) | 基于对抗迁移学习的盗窃案件法律文书命名实体识别方法 | |
CN110750640B (zh) | 基于神经网络模型的文本数据分类方法、装置及存储介质 | |
EP4009219A1 (en) | Analysis of natural language text in document using hierarchical graph | |
CN111783419A (zh) | 地址相似度计算方法、装置、设备和存储介质 | |
CN109413028A (zh) | 基于卷积神经网络算法的sql注入检测方法 | |
CN109189925A (zh) | 基于点互信息的词向量模型和基于cnn的文本分类方法 | |
CN111061843A (zh) | 一种知识图谱引导的假新闻检测方法 | |
CN112231562A (zh) | 一种网络谣言识别方法及系统 | |
CN112989052B (zh) | 一种基于组合-卷积神经网络的中文新闻长文本分类方法 | |
CN109325125B (zh) | 一种基于cnn优化的社交网络谣言检测方法 | |
CN113593661A (zh) | 临床术语标准化方法、装置、电子设备及存储介质 | |
CN111597333B (zh) | 一种面向区块链领域的事件与事件要素抽取方法及装置 | |
CN114547670A (zh) | 利用差分隐私词嵌入扰动的敏感文本脱敏方法 | |
CN115017879A (zh) | 文本对比方法、计算机设备及计算机存储介质 | |
CN113343235B (zh) | 基于Transformer的应用层恶意有效负载检测方法、系统、设备及介质 | |
CN114461760A (zh) | 案件事实与法条匹配的方法及装置 | |
CN116186562B (zh) | 基于编码器的长文本匹配方法 | |
CN113051886A (zh) | 一种试题查重方法、装置、存储介质及设备 | |
CN115309899B (zh) | 一种文本中特定内容识别存储方法及系统 | |
CN116049396A (zh) | 一种基于预训练模型融合的虚假新闻检测方法 | |
CN116227486A (zh) | 一种基于检索和对比学习的情感分析方法 | |
CN113312903B (zh) | 一种5g移动业务产品词库的构建方法及系统 | |
CN112364666B (zh) | 文本表征方法、装置及计算机设备 |
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 |