CN113596007A - 一种基于深度学习的漏洞攻击检测方法和设备 - Google Patents
一种基于深度学习的漏洞攻击检测方法和设备 Download PDFInfo
- Publication number
- CN113596007A CN113596007A CN202110834371.XA CN202110834371A CN113596007A CN 113596007 A CN113596007 A CN 113596007A CN 202110834371 A CN202110834371 A CN 202110834371A CN 113596007 A CN113596007 A CN 113596007A
- Authority
- CN
- China
- Prior art keywords
- url
- word
- deep learning
- vector
- model
- 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.)
- Granted
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 42
- 238000013135 deep learning Methods 0.000 title claims abstract description 26
- 239000013598 vector Substances 0.000 claims abstract description 87
- 238000000034 method Methods 0.000 claims abstract description 41
- 239000011159 matrix material Substances 0.000 claims abstract description 28
- 238000013136 deep learning model Methods 0.000 claims abstract description 19
- 238000007781 pre-processing Methods 0.000 claims abstract description 10
- 230000011218 segmentation Effects 0.000 claims abstract description 6
- 238000013528 artificial neural network Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 18
- 238000006243 chemical reaction Methods 0.000 claims description 16
- 230000006870 function Effects 0.000 claims description 14
- 238000012549 training Methods 0.000 claims description 14
- 238000002347 injection Methods 0.000 claims description 13
- 239000007924 injection Substances 0.000 claims description 13
- 230000002457 bidirectional effect Effects 0.000 claims description 12
- 230000000306 recurrent effect Effects 0.000 claims description 8
- 238000004422 calculation algorithm Methods 0.000 claims description 7
- 230000007246 mechanism Effects 0.000 claims description 7
- 238000011478 gradient descent method Methods 0.000 claims description 6
- 239000013604 expression vector Substances 0.000 claims description 5
- 230000004913 activation Effects 0.000 claims description 4
- 238000013526 transfer learning Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 5
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000000605 extraction Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000013527 convolutional neural network Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 238000013515 script Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000013067 intermediate product Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- BULVZWIRKLYCBC-UHFFFAOYSA-N phorate Chemical compound CCOP(=S)(OCC)SCSCC BULVZWIRKLYCBC-UHFFFAOYSA-N 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000000844 transformation 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/1425—Traffic logging, e.g. anomaly detection
-
- 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
-
- 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/08—Learning methods
-
- 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
-
- 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/1433—Vulnerability analysis
-
- 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/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Machine Translation (AREA)
Abstract
本发明提出了一种基于深度学习的漏洞攻击检测方法和设备。所述方法包括:对获取的Web数据进行预处理,将URL字段以字符形式表示;对预处理后的URL进行分词,并转换成统一的表示形式,得到URL语句的集合;将URL语句的集合中的每个词转化为向量,得到表示URL中有效语义信息和其他潜在属性信息的词向量矩阵;词向量矩阵输入预先构建的深度学习模型DMA‑BiLSTM中,对URL特征进行分类。本发明通过分析URL中隐藏的攻击,将攻击检测任务转换为分类任务,通过深度学习模型有效进行检测,取得了较好的效果。
Description
技术领域
本发明涉及一种基于深度学习的漏洞攻击检测方法和设备,适用于Web应用攻击检测领域。
背景技术
随着信息通信技术的不断发展,电力信息系统应用环境发生了巨大变化,许多业务场景中,一些最危险的Web攻击(例如跨站点脚本和SQL注入)利用Web应用程序中的漏洞,这些漏洞可能在未经适当验证或过滤的情况下接收和处理不确定来源的数据,从而允许注入和执行动态或特定域的语言代码。尽管在过去的多年研究中提出了许多应对的策略,但是这些攻击一直是各种安全公告提供者的榜首。
Web应用攻击检测旨在通过各种方法检测用户向服务器发送的请求是否为攻击请求。随着Web应用数量的增加,数据量的复杂化,Web应用攻击检测的准确率以及稳定性变得尤为重要。针对Web应用攻击,通常采集的网页数据包括URL和网页内容中的源码。URL网址给的数据包含四部分:数据编号、网页标识、URL编码、URL网址。网页内容的数据则是网页的内容源代码数据。传统的词法特征包括URL字符串统计特征和结构特征,另一种为从URL中提取单词,即词袋模型。如果直接使用词袋模型,会丢失单词在URL中出现的顺序信息。Sahoo等人在“Sahoo D,Liu C,Hoi S C H.Malicious URL Detection using MachineLearning:A Survey[J].2017.14-16.”中提取URL文本特征用于攻击检测,首先将原始的URL转化为特征向量X。使用URL的分隔符将URL分割为单词,训练集中的所有URL分词后的单词构成字典,字典中的每个单词代表一个维度的特征。Kar等在“Kar D,Panigrahi S,Sundararajan S.SQLiDDS:SQL injection detection using query transformation anddocument similarity[C]//International Conference on Distributed Computing andInternet Technology.Springer,Cham,2015:377-390.”中首先定义了一个包含web攻击中常用的关键词的集合,然后将这些关键词和特殊符号替换成自定义的符号,将所有URL统一表示,利用聚类算法进行分类。然而,以上的研究中,一方面特征提取依靠专家进行特征定义,专家知识库直接决定了相关特征定义和选取规则的好坏;另一方面无法对于URL中的有效信息进行完整的保留。Web应用数据相对于图像、音频等数据更加复杂,直接使用已有深度学习模型无法取得较好的检测效果。特别是现有模型在面对具有时序类型的信息检测的有效性和稳定性方面难以满足电网信息系统的高要求。
发明内容
发明目的:针对现有技术的不足,本发明提出一种基于深度学习的漏洞攻击检测方法,对URL语义语法特征提取,进而从深度学习模型出发并对其进行改善,使得其更好的适用Web应用攻击检测领域。
本发明的另一目的是提供一种基于深度学习的漏洞攻击检测设备。
技术方案:根据本发明的第一方面,提供一种基于深度学习的漏洞攻击检测方法,包括以下步骤:
对获取的Web数据进行预处理,将URL字段以字符形式表示;
对预处理后的URL进行分词,并转换成统一的表示形式,得到URL语句的集合;
将URL语句的集合中的每个词转化为向量,得到表示URL中有效语义信息和其他潜在属性信息的词向量矩阵;
词向量矩阵输入预先构建的DMA-BiLSTM深度学习模型中,对URL特征进行分类,确定攻击类型。
其中,所述对获取的Web数据进行预处理包括:格式转换、解码工作、URL大小写转换,其中格式转换是指将URL统一转换为UTF-8编码;解码工作是指对URL中某些特殊符号的编码进行解码;URL大小写转换是指将URL中的所有大写统一转换为小写。
进一步地,所述对预处理后的URL进行分词,并转换成统一的表示形式,得到URL语句的集合包括:
选取特殊符号,构成分词参考线集合;
遍历URL中所有字符,当字符匹配上任一特殊符号时,通过在该字符的左右两侧加上空格对字符进行替换,将服务器解析的关键词和符号进行分隔;
其中对于预设的关键词加以保留,不进行替换。
进一步地,所述将URL语句的集合中的每个词转化为向量包括:将URL语句集合输入word2vec模型,所述word2vec模型为只有一个隐层的全连接神经网络,预测给定单词的关联度大的单词,并计算得到一个数值矩阵,矩阵的行表示每一个词的词向量。
进一步地,所述word2vec模型在输入层将一个词转化为One-Hot向量,在隐层建立一个线性模型,输入的是W*x+b,其中x是输入的词向量,W、b分别是权重和偏置参数,在输出层用softmax回归,输出每个词对应的概率。
进一步地,所述词向量矩阵输入预先构建的DMA-BiLSTM深度学习模型中,对URL特征进行分类包括:模型的输入为URL的特征表示向量,即词向量矩阵,其中特征向量长度表示每个词或者符号的向量长度,特征向量的高度表示URL的长度;使用BERT算法进行迁移学习,得到每个词补充特征向量,将补充特征向量和输入的特征表示向量进行整合;将整合后特征向量输入循环神经网络RNN进行语法和语义的特征学习;将RNN得到的中间向量输入到双向LSTM模型中,双向LSTM模型通过对这些中间向量进行拟合进行分类输出;接着进入注意力层,由Bi-LSTM层产生的输出向量使用注意力attention机制来加强重要特征的权重,得到文本的表示;最后通过带有dropout的全连接层,使用softmax激活函数输出各类别的概率。
进一步地,所述DMA-BiLSTM深度学习模型对URL特征进行分类包括:
将URL的词向量矩阵表示看作在时间上具有先后顺序的向量序列,矩阵的每一行为不同时刻的输入,设存在输入URL,其词向量序列为:
V=[v1,v2,……,vm]
其中vi第i个词的词向量,m为词向量数目;
根据双向LSTM模型得到时刻t的输出:
Ht=BiLSTM(vi)
得到整个深度学习模型的全部输出为H=[h1,h2,……,hm]。
进一步地,所述双向LSTM模型在训练时使用小批的梯度下降法,所述小批的梯度下降法把数据分为若干个批,按批来更新参数,通过调节模型batch_size在每次迭代中分多个批次训练样本完成LSTM训练过程。
根据本发明的第二方面,提供一种基于深度学习的漏洞攻击检测设备,包括:
一个或多个处理器;存储器;以及一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述程序被处理器执行时实现如本发明第一方面所述漏洞攻击检测方法的各步骤。
有益效果:本发明针对电力信息系统中Web安全隐患,利用深度学习技术对SQL注入和XSS攻击进行检测,该检测方法通过对SQL注入和XSS的URL分析和处理,基于语法和语义上进行攻击的特征提取,在URL的向量化过程中,通过word2vec模型进行特征表示。然后利用深度学习模型DMA-BiLSTM学习URL中词和符号之间的语义关系并且进行特征表示,通过引入注意力机制有效提高重要特征的权重,针对LSTM模型训练时候的收敛性问题,通过小批的梯度下降方法有效提高了训练的效率。通过实验验证表明本发明提出的方法在具备较高攻击检测识别率同时具备极好的稳定性。本发明基于深度学习技术实现电力信息系统漏洞攻击检测有效保障了电力信息核心资产安全的目标。
附图说明
图1为本发明实施例的基于深度学习的漏洞攻击检测方法总体流程图;
图2为本发明实施例的批梯度下降过程示意图;
图3为本发明实施例的小批次梯度下降过程示意图。
具体实施方式
下面结合附图对本发明的技术方案做出进一步的说明。
在当前利用URL进行的网络攻击中,其中SQL注入和XSS攻击占比最高,危害性最大。所谓SQL注入,就是通过把SQL命令插入到提交的Web表单或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,导致数据库中的信息泄露或者更改。XSS攻击(Cross Site Scripting)中文名为跨站脚本攻击,指的是将xss代码植入到提供给其他用户使用的页面中,从而达到盗取用户信息和执行一些违法操作的目的,比如这些代码包括HTML代码和客户端脚本是发生在目标用户的浏览器层面上的,当渲染DOM树的过程成发生了不在预期内执行的JS代码时,就发生了XSS攻击。SQL注入和XSS的攻击均是通过向Web服务器提交的参数进行修改或者添加实现的。本发明从攻击的原理和特点出发,提出一种基于深度学习的漏洞攻击检测方法,通过深度学习与网络安全的结合,利用深度学习的特点对Web安全中SQL注入攻击和XSS攻击进行检测。
参照图1,一种基于深度学习的漏洞攻击检测方法,包括以下步骤:
步骤S1,获取数据,进行URL特征提取。
本发明目的是检测针对URL的网络攻击,一方面通过基于电力业务网站访问日志收集网页数据,另一方面通过从网页上挖掘具有攻击性的网页代码和正常的网页代码,所谓的攻击性主要是指有恶意的网页链接、具有攻击性的HTML标签以及恶意的JavaScript脚本。在这里将它们统称为URL数据或Web数据。
通过将URL作为文本语言处理,对URL中的组成进行分词,基于URL的语法和语义分析攻击者的意图,进而有效发现攻击。
URL的整个特征表示分为两部分:URL统一表示和URL向量化。首先,将经过预处理后的URL转换成统一的表示形式,接着通过URL的向量化,将URL中的有效语义信息和其他潜在属性信息进行数字化表示。在该过程中,针对URL的统一表示需要对数据进行简化,同时保留其中的语义和语法的信息。
在URL进行统一表示前,需要对URL进行数据预处理,在Web应用中,不同前端和后台会对用户提交的URL采用不同的编码方式,以便后台代码可以正常处理。攻击者通常会利用某些字符的特殊编码格式来对后台设置的防护规则进行绕过。比如,利用特殊编码形式对URL中的敏感字符进行替换、进行多层次编码等。URL作为Web应用资源请求与访问的表达形式,它的标准组成格式为:[协议类型]://[服务器地址]:[端口号]/[资源层级unix文件路径][文件名]?[查询语句]。
数据预处理主要包括格式转换、解码工作、URL大小写转换等。针对数据集中各个网站URL的编码方式不统一,为了保证预处理阶段不损失有价值的信息,因此将URL统一转换为UTF-8编码;解码工作是指对URL中某些特殊符号的编码进行解码,甚者需要二次或三次解码,攻击者为了绕过网站上对特殊字符的检查,会对URL中的特殊字符进行多次编码;URL大小写转换,是因为在特征提取工作中,URL的大小写会对特征权值产生影响,为避免大小写对模型效果的影响,因此将URL中的所有大写统一转换为小写。
在URL的统一表示过程中,首先对预处理后的URL进行分词,将URL中的服务器解析的关键词与符号进行分离。保障在后期的特征提取选择中可以将词与词之间,符号与符号之前的特征进行有效区分。通过数据预处理,将URL字段以字符形式表示,由字符、字母、数字和特殊符号组成。为了有效保留URL中的信息,通过特殊符号如:?‘/“,:!@#¥&等进行分词。对在URL中出现的符号通过在符号的左右两侧加上空格对字符进行替换,将服务器解析的关键词和符号进行有效地分隔,但对于不会出现攻击代码载荷的协议类型和服务器地址可以进行有效保留。经过分词处理后,根据常见的前端语言、后台语言和服务器系统的关键词进行汇总,将这些语言或者系统保留的关键字作为一个保留的词集合,对于其余的则进行词转换处理。通过这一个过程化的处理之后,URL语句的集合将会缩小,同时可以转换成为一个统一的表达形式,既可以保留语义信息,又可以剔除干扰信息保留隐藏特征。最后得到一个统一形式的URL数据集,是一个文本,便于进行向量化操作。
在URL的向量化过程中,主要通过word2vec模型进行特征表示。word2vec是一个语言模型,只有一个隐层的全连接神经网络,用来预测给定单词的关联度大的单词。
在输入层中,一个词被转化为One-Hot向量,然后在第一个隐层,输入的是一个W*x+b(x就是输入的词向量,W、b是权重和偏置参数),做一个线性模型,输出层是一个分类器用softmax回归,最后输出每个词对应的概率。在这个过程中,为了让模型先基于数据进行神经网络模型的训练,当整个模型被训练好后,保留这些训练好的模型参数,接着重新输入数据到这个训练好的模型中进行处理,整个模型处理的中间产物就是这些输入数据的特征向量的表示。通过该方式可以有效保留特征向量X与其相邻词之间的语义关系。具体而言,其中输入层是一个one-hot向量,隐层是一个N维稠密向量,输出层是一个V维稠密向量,W表示词典的向量化矩阵,也是输入到隐层以及隐层到输出的权重参数;因此输入层到隐层表示对上下文词进行向量化,而隐层到输出层,表示计算上下文词与词典的每个目标词进行点积计算(softmax过程)。最终URL将转换为数值矩阵,矩阵的行表示每一个词的词向量。
步骤S2,构建深度学习模型DMA-BiLSTM,对URL特征进行分类。
在模型优化方面,卷积神经网络也开始应用在Web应用攻击检测领域。将Web应用攻击数据进行预处理,使其转换成二维矩阵数据。然后将Web应用攻击检测看作一个二分类问题,即将数据分为正常及攻击两类。使用卷积神经网络对二维矩阵数据进行处理,得到最终的分类结果,以此判断数据是否为攻击数据。卷积神经网络使用卷积核在输入数据上滑动以对输入数据进行处理。能够有效的提取具有空间结构的数据所包含的特征。并且,卷积神经网络能够减少模型的参数,避免模型参数过多导致训练缓慢以及容易过拟合的问题。但是,其在面对具有时序类型的信息检测的有效性和稳定性方面难以满足电网信息系统的高要求。
本发明通过构建深度学习模型DMA-BiLSTM有效结合URL中SQL注入和XSS攻击的特点进行分类。模型主要分为两个部分,分别为特征提取部分以及分类部分。特征提取部分主要是对数据的矩阵表示进行特征提取,即将矩阵表示转换为一个向量,这个向量称为特征向量。第二个部分是分类部分,分类部分是对特征向量进行分类,一般采用一个全连接网络完成。
整个深度学习模型的输入部分为URL的特征表示向量,经过上述的URL特征表示后,特征向量长度表示每个词或者符号的向量长度,特征向量的高度表示URL的长度。同时,使用BERT(Bidirectional Encoder Representations from Transformers)算法进行迁移学习,得到样本中每个词的Transformer的双向编码器表征,后得到特征向量作为补充特征向量加入到之前的特征向量中去。将整合后特征向量输入循环神经网络RNN(RecurrentNeural Network)进行语法和语义的特征学习。RNN得到的中间向量输入到双向LSTM模型中,双向LSTM模型通过对这些中间向量进行拟合从而进行分类输出。在Attention Layer,获得的输入是由Bi-LSTM层产生的输出向量,这些输出向量使用attention(注意力)机制来加强重要特征的权重,削弱噪声的影响,得到文本的表示。最后添加一个带有dropout的全连接层,使用softmax激活函数输出各类别的概率。
其中,BERT也是获取特征向量。其具有更多的参数,具有更强的词向量表示能力,获取的特征作为前面特征提取的补充。输入到模型中,在最后加上attention机制,不同特征的权重不同,对模型的影响不同。通过注意力机制可以更好地提高精度。
作为时间序列模型最常用最强大的算法之一,循环神经网络RNN是一种对序列数据建模的神经网络,即一个序列当前的输出与前面的输出也有关。普通神经网络和卷积神经网络的一个显而易见的局限就是他们接收一个固定尺寸的向量作为输入,并且产生一个固定尺寸的向量作为输出。不仅如此,这些模型甚至对于上述映射的演算操作的步骤也是固定的(比如模型中的层数)。RNN的不同之处在于其允许对向量的序列进行操作。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。
在循环神经网络中,xt是t时刻的输入,St表示t时刻的隐状态,ot表示t时刻的输出。与常规基于上一时刻的隐状态和当前输入得到:St=f(Uxt+WSt-1),其中f一般是非线性的激活函数,U、W分别为各分量的权重,特殊的是,在计算S0时,上一个隐藏层状态并不存在,因此一般置为0。原始数据通过输入层输入到神经网络中,经过计算节点时与节点上一时刻的输出进行加权、函数映射处理后进入下一节点,预测的结果即为输入数据不断经过各层计算节点处理后获得的值在输出层函数映射的结果,即:
式中output(t)为神经网络在t时刻的输出,wij为神经网络隐藏层节点的相对权重,xi(t)为神经网络t时刻的输入,output(t-1)为上一时刻神经网络的输出,uih为上一时刻隐藏层输出的相对权重。
RNN存在的问题在于,当时间间隔不断增大时,RNN会丧失学习过去较久远信息的能力,即梯度消失。全连接神经网络只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的。但是,电力信息系统中Web攻击预测需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。
LSTM是对普通循环神经网络的一种改进模型,能够避免普通循环神经网络梯度弥散或梯度爆炸的问题。长短时记忆网络考虑到了每个输入之间存在的关系,预测效果较好。在t时刻,LSTM的输入有三个:当前时刻网络的输入值xt、上一时刻LSTM的输出值ht-1、以及上一时刻的单元状态ct-1;LSTM的输出有两个:当前时刻LSTM输出值ht、和当前时刻的单元状态ct。以下为前向计算过程:
ft=σ(Wf·[ht-1,xt]+bf)
it=σ(Wi·[ht-1,xt]+bi)
ct′=tanh(Wc·[ht-1,xt]+bc)
ot=σ(Wo·[ht-1,xt]+bo)
其中,符号代表向量之间按元素相乘,σ表示sigmoid函数。Wf,Wi,Wc,Wo表示遗忘门、输入门、状态门、输出门的权重矩阵;[ht-1,xt]表示把两个向量连接成一个更长的向量;bf,bi,bc,bo表示各门的偏置项。
LSTM优势在于由于遗忘门的控制,它可以保存很久很久之前的信息,由于输入门的控制,它又可以避免当前无关紧要的内容进入记忆。
URL的矩阵表示会被看作在时间上具有先后顺序的向量序列组成。矩阵的每一行为不同时刻的输入。设存在输入URL,其词向量序列为:
V=[v1,v2,……,vm]
其中vi为第i个词的词向量。可以得到时刻t的输出:
Ht=BiLSTM(vi)
因此可以得到模型的全部输出为H=[h1,h2,……,hm]。循环神经网络用于特征提取,而最终的分类任务需要使用全连接网络完成。
最后,对于深度学习的优化算法,核心在于梯度下降。神经网络的参数更新有两种方式,第一种,遍历全部数据集计算一次损失函数,然后算函数对各个参数的梯度,更新梯度。这种方法每更新一次参数都要把数据集里的所有样本都看一遍,计算量开销大,计算速度慢,不支持在线学习,这称为Batch gradient descent,批梯度下降,如图2所示。另一种,每看一个数据就算一下损失函数,然后求梯度更新参数,这种称为随机梯度下降。这种方法速度比较快,但是收敛性能不太好,可能在最优点附近晃来晃去,找不到最优点。两次参数的更新也有可能互相抵消掉,造成目标函数震荡的比较剧烈。
为了克服两种方法的缺点,在训练LSTM模型时,采用一种折中手段,mini-batchgradient decent,即小批的梯度下降,如图3所示,这种方法把数据分为若干个批,按批来更新参数,这样,一个批中的一组数据共同决定了本次梯度的方向,下降起来就不容易跑偏,减少了随机性。另一方面因为批的样本数与整个数据集相比小了很多,计算量也不是很大,每次epoch的时间大大缩短,使得在线学习成为可能。
通过调节模型batch_size在每次迭代iteration中分多个批次训练样本,这样既可以利用向量化,有并行运算优势,又可以比批梯度下降法更快的收敛。
最后使用一个softmax分类器来预测文本的属性,将输入的文本转换为条件概率来判断该URL是否属于攻击脚本。如前所述,本发明通过对SQL注入和XSS攻击作为常见攻击进行特征来提取分析检测,检测结果输出URL属于SQL注入或XSS攻击的可能性。
本发明的DMA-BiLSTM模型中D指的是Double,表示对两种特征向量获取的结合;M指的是mini-batch gradient decent,即小批的梯度下降;A指的是Attention机制。一方面通过基于LSTM算法在不同批尺寸训练对比实验发现,在训练误差相近的情况下,mini-batch训练数据量较大的情况下,训练效率获得了大幅度的提升。另一方面,通过不同的深度学习模型如CNN、FC模型进行URL攻击检测对比实验发现,本发明通过分析URL中隐藏的SQL注入和XSS攻击,将攻击检测任务转换为分类任务,通过深度学习模型有效进行检测,可以有效检测出是否受到了攻击,在攻击的准确性和效率方面相比于其余模型具有显著优势。
基于与方法实施例相同的技术构思,根据本发明的另一实施例,提供一种计算机设备,所述设备包括:一个或多个处理器;存储器;以及一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述程序被处理器执行时实现方法实施例中的各步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (10)
1.一种基于深度学习的漏洞攻击检测方法,其特征在于,所述方法包括以下步骤:
对获取的Web数据进行预处理,将URL字段以字符形式表示;
对预处理后的URL进行分词,并转换成统一的表示形式,得到URL语句的集合;
将URL语句的集合中的每个词转化为向量,得到表示URL中有效语义信息和其他潜在属性信息的词向量矩阵;
词向量矩阵输入预先构建的DMA-BiLSTM深度学习模型中,对URL特征进行分类,确定攻击类型。
2.根据权利要求1所述的基于深度学习的漏洞攻击检测方法,其特征在于,所述对获取的Web数据进行预处理包括:格式转换、解码工作、URL大小写转换,其中格式转换是指将URL统一转换为UTF-8编码;解码工作是指对URL中某些特殊符号的编码进行解码;URL大小写转换是指将URL中的所有大写统一转换为小写。
3.根据权利要求1所述的基于深度学习的漏洞攻击检测方法,其特征在于,所述对预处理后的URL进行分词,并转换成统一的表示形式,得到URL语句的集合包括:
选取特殊符号,构成分词参考线集合;
遍历URL中所有字符,当字符匹配上任一特殊符号时,通过在该字符的左右两侧加上空格对字符进行替换,将服务器解析的关键词和符号进行分隔;
其中对于预设的关键词加以保留,不进行替换。
4.根据权利要求1所述的基于深度学习的漏洞攻击检测方法,其特征在于,所述将URL语句的集合中的每个词转化为向量包括:将URL语句集合输入word2vec模型,所述word2vec模型为只有一个隐层的全连接神经网络,预测给定单词的关联度大的单词,并计算得到一个数值矩阵,矩阵的行表示每一个词的词向量。
5.根据权利要求4所述的基于深度学习的漏洞攻击检测方法,其特征在于,所述word2vec模型在输入层将一个词转化为One-Hot向量,在隐层建立一个线性模型,输入的是W*x+b,其中x是输入的词向量,W、b分别是权重和偏置参数,在输出层用softmax回归,输出每个词对应的概率。
6.根据权利要求1所述的基于深度学习的漏洞攻击检测方法,其特征在于,所述词向量矩阵输入预先构建的DMA-BiLSTM深度学习模型中,对URL特征进行分类包括:模型的输入为URL的特征表示向量,即词向量矩阵,其中特征向量长度表示每个词或者符号的向量长度,特征向量的高度表示URL的长度;使用BERT算法进行迁移学习,得到每个词补充特征向量,将补充特征向量和输入的特征表示向量进行整合;将整合后特征向量输入循环神经网络RNN进行语法和语义的特征学习;将RNN得到的中间向量输入到双向LSTM模型中,双向LSTM模型通过对这些中间向量进行拟合进行分类输出;接着进入注意力层,由Bi-LSTM层产生的输出向量使用注意力attention机制来加强重要特征的权重,得到文本的表示;最后通过带有dropout的全连接层,使用softmax激活函数输出各类别的概率。
7.根据权利要求6所述的基于深度学习的漏洞攻击检测方法,其特征在于,所述DMA-BiLSTM深度学习模型对URL特征进行分类包括:
将URL的词向量矩阵表示看作在时间上具有先后顺序的向量序列,矩阵的每一行为不同时刻的输入,设存在输入URL,其词向量序列为:
V=[v1,v2,……,vm]
其中vi第i个词的词向量,m为词向量数目;
根据双向LSTM模型得到时刻t的输出:
Ht=BiLSTM(vi)
得到整个深度学习模型的全部输出为H=[h1,h2,……,hm]。
8.根据权利要求6所述的基于深度学习的漏洞攻击检测方法,其特征在于,所述双向LSTM模型在训练时使用小批的梯度下降法,所述小批的梯度下降法把数据分为若干个批,按批来更新参数,通过调节模型batch_size在每次迭代中分多个批次训练样本完成LSTM训练过程。
9.根据权利要求1-8中任一项所述的基于深度学习的漏洞攻击检测方法,其特征在于,所述漏洞攻击类型包括SQL注入和XSS攻击。
10.一种基于深度学习的漏洞攻击检测设备,其特征在于,包括:
一个或多个处理器;存储器;以及一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述程序被处理器执行时实现如权利要求1-9中任一项所述漏洞攻击检测方法的各步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110834371.XA CN113596007B (zh) | 2021-07-22 | 2021-07-22 | 一种基于深度学习的漏洞攻击检测方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110834371.XA CN113596007B (zh) | 2021-07-22 | 2021-07-22 | 一种基于深度学习的漏洞攻击检测方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113596007A true CN113596007A (zh) | 2021-11-02 |
CN113596007B CN113596007B (zh) | 2023-04-14 |
Family
ID=78249495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110834371.XA Active CN113596007B (zh) | 2021-07-22 | 2021-07-22 | 一种基于深度学习的漏洞攻击检测方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113596007B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114169432A (zh) * | 2021-12-06 | 2022-03-11 | 南京墨网云瑞科技有限公司 | 一种基于深度学习的跨站脚本攻击识别方法 |
CN114297079A (zh) * | 2021-12-30 | 2022-04-08 | 北京工业大学 | 基于时间卷积网络的xss模糊测试用例生成方法 |
CN114866279A (zh) * | 2022-03-24 | 2022-08-05 | 中国科学院信息工程研究所 | 基于http请求有效负载的漏洞攻击流量检测方法和系统 |
CN115086044A (zh) * | 2022-06-17 | 2022-09-20 | 湖北天融信网络安全技术有限公司 | 一种攻击特征的处理方法及装置、电子设备、存储介质 |
CN115296853A (zh) * | 2022-07-06 | 2022-11-04 | 国网山西省电力公司信息通信分公司 | 一种基于网络时空特征的网络攻击检测方法 |
CN115344869A (zh) * | 2022-08-10 | 2022-11-15 | 中国电信股份有限公司 | 风险确定方法、装置、存储介质及电子设备 |
CN115952411A (zh) * | 2023-03-14 | 2023-04-11 | 北京有生博大软件股份有限公司 | 一种前端界面的动态语言反混淆特征提取方法及提取系统 |
CN115242539B (zh) * | 2022-07-29 | 2023-06-06 | 广东电网有限责任公司 | 基于特征融合的电网信息系统网络攻击检测方法及装置 |
CN117176483A (zh) * | 2023-11-03 | 2023-12-05 | 北京艾瑞数智科技有限公司 | 一种异常url的识别方法、装置及相关产品 |
CN118445802A (zh) * | 2024-07-08 | 2024-08-06 | 合肥工业大学 | 基于cnn+bert的恶意网址检测分类模型的训练及检测方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109981631A (zh) * | 2019-03-20 | 2019-07-05 | 国家计算机网络与信息安全管理中心 | 一种基于深度学习的xss攻击检测方法 |
US20200042701A1 (en) * | 2018-08-02 | 2020-02-06 | Fortinet, Inc. | Malware identification using multiple artificial neural networks |
CN111797407A (zh) * | 2020-09-08 | 2020-10-20 | 江苏开博科技有限公司 | 一种基于深度学习模型优化的xss漏洞检测方法 |
-
2021
- 2021-07-22 CN CN202110834371.XA patent/CN113596007B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200042701A1 (en) * | 2018-08-02 | 2020-02-06 | Fortinet, Inc. | Malware identification using multiple artificial neural networks |
CN109981631A (zh) * | 2019-03-20 | 2019-07-05 | 国家计算机网络与信息安全管理中心 | 一种基于深度学习的xss攻击检测方法 |
CN111797407A (zh) * | 2020-09-08 | 2020-10-20 | 江苏开博科技有限公司 | 一种基于深度学习模型优化的xss漏洞检测方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114169432A (zh) * | 2021-12-06 | 2022-03-11 | 南京墨网云瑞科技有限公司 | 一种基于深度学习的跨站脚本攻击识别方法 |
CN114297079A (zh) * | 2021-12-30 | 2022-04-08 | 北京工业大学 | 基于时间卷积网络的xss模糊测试用例生成方法 |
CN114297079B (zh) * | 2021-12-30 | 2024-04-02 | 北京工业大学 | 基于时间卷积网络的xss模糊测试用例生成方法 |
CN114866279A (zh) * | 2022-03-24 | 2022-08-05 | 中国科学院信息工程研究所 | 基于http请求有效负载的漏洞攻击流量检测方法和系统 |
CN115086044A (zh) * | 2022-06-17 | 2022-09-20 | 湖北天融信网络安全技术有限公司 | 一种攻击特征的处理方法及装置、电子设备、存储介质 |
CN115296853A (zh) * | 2022-07-06 | 2022-11-04 | 国网山西省电力公司信息通信分公司 | 一种基于网络时空特征的网络攻击检测方法 |
CN115242539B (zh) * | 2022-07-29 | 2023-06-06 | 广东电网有限责任公司 | 基于特征融合的电网信息系统网络攻击检测方法及装置 |
CN115344869A (zh) * | 2022-08-10 | 2022-11-15 | 中国电信股份有限公司 | 风险确定方法、装置、存储介质及电子设备 |
CN115952411A (zh) * | 2023-03-14 | 2023-04-11 | 北京有生博大软件股份有限公司 | 一种前端界面的动态语言反混淆特征提取方法及提取系统 |
CN117176483A (zh) * | 2023-11-03 | 2023-12-05 | 北京艾瑞数智科技有限公司 | 一种异常url的识别方法、装置及相关产品 |
CN118445802A (zh) * | 2024-07-08 | 2024-08-06 | 合肥工业大学 | 基于cnn+bert的恶意网址检测分类模型的训练及检测方法 |
CN118445802B (zh) * | 2024-07-08 | 2024-09-03 | 合肥工业大学 | 基于cnn+bert的恶意网址检测分类模型的训练及检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113596007B (zh) | 2023-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113596007B (zh) | 一种基于深度学习的漏洞攻击检测方法和设备 | |
CN111371806B (zh) | 一种Web攻击检测方法及装置 | |
Chawla et al. | Host based intrusion detection system with combined CNN/RNN model | |
CN110414219B (zh) | 基于门控循环单元与注意力机制的注入攻击检测方法 | |
CN111600919B (zh) | 智能网络应用防护系统模型的构建方法和装置 | |
CN111552855A (zh) | 一种基于深度学习的网络威胁情报自动抽取方法 | |
KR102093275B1 (ko) | 악성코드 감염 유도정보 판별 시스템, 프로그램이 기록된 저장매체 및 방법 | |
CN112307473A (zh) | 一种基于Bi-LSTM网络和注意力机制的恶意JavaScript代码检测模型 | |
CN111931935B (zh) | 基于One-shot 学习的网络安全知识抽取方法和装置 | |
CN112989831B (zh) | 一种应用在网络安全领域的实体抽取方法 | |
CN110191096A (zh) | 一种基于语义分析的词向量网页入侵检测方法 | |
CN113591077B (zh) | 一种网络攻击行为预测方法、装置、电子设备及存储介质 | |
CN108718306A (zh) | 一种异常流量行为判别方法和装置 | |
CN113691542A (zh) | 基于HTTP请求文本的Web攻击检测方法及相关设备 | |
CN116541838A (zh) | 一种基于对比学习的恶意软件检测方法 | |
CN114357443A (zh) | 基于深度学习的恶意代码检测方法、设备与存储介质 | |
Hu et al. | Cross-site scripting detection with two-channel feature fusion embedded in self-attention mechanism | |
Zhu et al. | CCBLA: a lightweight phishing detection model based on CNN, BiLSTM, and attention mechanism | |
CN114238643A (zh) | 敏感信息识别模型的构建、敏感信息识别方法及装置 | |
CN113343235B (zh) | 基于Transformer的应用层恶意有效负载检测方法、系统、设备及介质 | |
CN117879934A (zh) | 一种基于网络数据包上下文的sql注入攻击检测方法 | |
CN112966507A (zh) | 构建识别模型及攻击识别方法、装置、设备及存储介质 | |
CN117370980A (zh) | 恶意代码检测模型生成及检测方法、装置、设备及介质 | |
CN113918936A (zh) | Sql注入攻击检测的方法以及装置 | |
CN113037729A (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 |