CN114168938B - 一种基于少量异常标签的半监督sql注入攻击检测方法 - Google Patents
一种基于少量异常标签的半监督sql注入攻击检测方法 Download PDFInfo
- Publication number
- CN114168938B CN114168938B CN202111269323.7A CN202111269323A CN114168938B CN 114168938 B CN114168938 B CN 114168938B CN 202111269323 A CN202111269323 A CN 202111269323A CN 114168938 B CN114168938 B CN 114168938B
- Authority
- CN
- China
- Prior art keywords
- sql
- sample
- semi
- supervised
- abnormal
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/253—Fusion techniques of extracted features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于少量异常标签的半监督SQL注入攻击检测方法,目的是解决现有SQL注入检测方法在数据标签不平衡时,检测性能下降的问题,满足实际场景需求;提出一种基于比特编码的SQL注入攻击检测框架,该框架无需预训练词嵌入模型和语法规则解析;并基于该框架提出一种基于注意力机制的半监督SQL注入攻击检测模型,该模型具有优异的特征关注能力和泛化能力;对新型SQL注入攻击也具有一定的检测性能。
Description
技术领域
本发明属于信息安全技术领域,具体涉及一种基于少量异常标签的半监督SQL注入攻击检测方法。
背景技术
SQL(Structured Query Language)是一种通用的、功能极强的关系数据库语言,是对关系数据存取的标准接口,也是不同数据库系统之间互操作的基础。它集数据查询、数据操作、数据定义、和数据控制功能于一体,被用来进行网页应用数据和后台数据库数据的交互。
SQL注入(SQL inject)是指通过把恶意的SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令,达到窃取、破坏数据的目的。SQL注入攻击具有隐蔽性强、变种多、易突变等特点,是一种简单但很有效的攻击手段。
目前关于SQL注入攻击检测的研究,主要分为三类:传统检测算法、机器学习检测算法和深度学习检测算法。以下分别对这三类方法简单介绍如下:
1、传统的SQL注入攻击检测算法包括静态检测、动态检测、动静态结合检测。静态检测通过对源码的分析推测可能存在的攻击;动态检测是指通过在运行时执行动态渗透测试或生成模型来检测错误和正确性。而动静态结合检测则是融合了前两种方式共同检测。Gould等人提出一种基于静态分析的JDBC源码分析器,该分析器只能检测出不符合输入类型的SQL注入攻击;王溢等人提出一种基于动态分析的方法,通过SQL语法解析构建语法树,进而对语法树进行检测,然而这种方式会隐藏一些SQL注入攻击的关键特征,致使检测性能下降。
2、基于机器学习算法主要通过人工提取属性特征,训练模型进行检测,检测结果依赖于人工选取的特征,容易产生误检和误报。Kim等人首先提出从SQL注入攻击样本中提取n维特征训练SVM模型的方法,然而这种方法的检测率不高;Komiya等人通过空白分割和令牌验证的方式提取特征,并使用集成算法进行检测,增强了模型的泛化能力,但空白分割的特征提取方式难以应对SQL注入攻击的复杂情况。
3、深度学习因其强大的特征学习能力受到关注,越来越多的研究者尝试使用深度学习方法解决SQL注入攻击问题。罗等人直接使用Payload负载的编码特征作为卷积神经网络模型的输入,解决了浅层机器学习维度灾难的问题。谢鑫等人提出能够处理变长序列的弹性池化卷积神经网络,解决了传统卷积神经网络难以处理不定长序列的问题。但是这些方法无法应对数据标签不平衡的环境。李淇等人提出一类数据增强的方法,通过扩充SQL注入攻击样本,达到缓解模型过拟合的目的。然而该方法无法应对新的SQL注入攻击类型,且依赖先验知识和生成样本的质量。
以上现有技术的研究内容弊端较为明显,在实际场景中,由于SQL注入攻击易突变,先验知识匮乏,标注困难,因此迫切的需要一种攻击样本仅需少量攻击样本标签的算法,即可实现对已知、未知SQL注入攻击的检测。
发明内容
针对现有技术中的上述不足,本发明提供的一种基于少量异常标签的半监督SQL注入攻击检测方法,解决了现有SQL注入检测方法在数据标签不平衡时检测性能下降的问题。
为了达到上述发明目的,本发明采用的技术方案为:一种基于少量异常标签的半监督SQL注入攻击检测方法,包括以下步骤:
S1、根据采集的正常SQL样本和异常SQL样本,构建原始数据集;
S2、对原始数据集进行预处理,得到原始数据集中每个SQL样本对应的被编码后的SQL样本;
S3、根据被编码后的SQL样本,构建并训练得到基于注意力机制的半监督检测模型;
S4、通过基于注意力机制的半监督检测模型对未知的SQL样本进行检测,完成SQL注入攻击的检测。
进一步地:所述步骤S1中,采集的正常SQL样本和异常SQL样本的方法具体为:
通过筛选的方式从公开数据集中获取正常SQL样本;通过自动注入工具攻击WEB应用的方式生成异常SQL样本。
上述进一步方案的有益效果为:在生成异常SQL样本的过程中,通过修改Sqlmap脚本tamper的方式可以丰富SQL注入攻击类型。
进一步地:所述步骤S2中,对原始数据集进行预处理的方法具体为:
SA1、在原始数据集中筛除高度相似或重复的SQL样本,并甄别和去除异常SQL样本中包含的正常SQL样本;
SA2、对原始数据集进行关键词大小写统一,对表名和查询内容的特定字段进行修正,并删除异常SQL样本中包含的网站账号信息;
SA3、通过比特编码策略对原始数据集中的SQL样本进行编码。
进一步地:所述步骤SA3中,比特编码策略的编码方式具体为:
将原始数据集中的每个SQL样本进行定长编码,将其按字符转为ASCII-256十进制数向量,进而将其转为二进制流;其中,对SQL样本进行定长编码时,若SQL样本长度不足256位,则通过空格填充的方式补齐,否则截断保留256位。
上述进一步方案的有益效果为:比特编码解决了预训练词嵌入模型带来的弊端,编码后的SQL样本可以作为基于注意力机制的半监督检测模型的输入。
进一步地:所述步骤S3具体为:
根据被编码后的SQL样本,通过模型优化和参数调节的方式,得到最优模型参数的基于注意力机制的半监督检测模型。
上述进一步方案的有益效果为:通过模型优化和参数调节等方式更新,得到的基于注意力机制的半监督检测模型可以作为最优的未知SQL样本检测模型。
进一步地:所述步骤S3中,基于注意力机制的半监督检测模型包括相互连接的数据分布学习模块和检测器模块。
上述进一步方案的有益效果为:本发明的数据分布学习模块使用基于数据分布学习的模型,为检测器模块提供样本特征中心趋势和离散程度等高层次特征;且检测器模块融合数据分布学习模块提供的高层次特征和SQL样本比特编码特征作为输入,通过特征提取子模块和注意力子模块实现对特征的有效提炼和关注,进而判断SQL样本是否包含SQL注入攻击。
进一步地:数据分布学习模块包括相互连接的推理器和生成器;
其中,推理器的表达式具体为:
I(yi)=cat(y|π)
I(zi|ai,yi,xi)=N(zi|ui(ai,xi,yi),
式中,ai为第i个编码后的SQL样本的辅助向量,ui(·)为第i个编码后的SQL样本的期望向量通式,xi为第i个编码后的SQL样本的样本编码特征,yi为第i个被编码后的SQL样本的样本标签,zi为第i个被编码后的SQL样本的样本后验分布通式,σi(·)为第i个被编码后的SQL样本的标准差向量通式,cat(·)为多维的数据分布通式,N(·)为高斯采样通式,I(·)为推理器通式,i为被编码后的SQL样本的序数;
生成器的表达式具体为:
G(yi)=cat(y|π)
G(ai|zi,yi,xi)=f(ai;zi,yi,xi,w)
G(xi|zi,yi)=f(xi;zi,yi,w)
式中,f(·)为多层非线性变换通式,w为权重,G(·)为生成器通式。
上述进一步方案的有益效果为:数据分布学习模块通过引入辅助变量增强了传统变分自编码器表征数据分布的能力。
进一步地:检测器模块包括相互连接的特征提取子模块和注意力子模块;
其中,特征提取子模块的表达式具体为:
f1=relu(W1X+b1)
fj=relu(Wjfj-1+bj)
式中,X为SQL样本原始编码特征及样本特征中心趋势和离散程度等高维特征的融合特征,W1为第1层非线性变换的权重,Wj为第j层非线性变换的权重,b1为第1层非线性变换的偏置,bj为第j层非线性变换的偏置,f1为第1层线性变换,fj-1为第j-1层线性变换,fj为第j层非线性变换,j为非线性变换层的序数,relu(·)为激活函数;
注意力子模块的表达式具体为:
gj=SoftMax(Wgj+b)
gk=gj·gw
F=Concat(gj,gk)
式中,gj为隐层特征,gw为特征权重,gk为加权特征,F为融合特征,W为线性变换层的权重,Concat(·)为特征拼接通式,SoftMax(·)为激活函数。
上述进一步方案的有益效果为:检测器模块在传统多层感知机构建的检测器基础上引入了注意力机制和残差机制,实现了特征的有效果关注和泛化能力的增强。
进一步地:所述步骤S4中,对未知的SQL样本进行检测的方法具体为:
根据比较基于注意力机制的半监督检测模型输出的两维概率分布,判断未知的SQL样本是否包含SQL注入攻击。
本发明的有益效果为:
(1)本发明的SQL注入攻击检测方法可以实现在数据标签不平衡时,检测性能稳定,满足实际场景需求。
(2)本发明基于该框架提出一种基于注意力机制的半监督SQL注入攻击检测模型,该模型具有优异的特征关注能力和泛化能力。
(3)本发明的特征提取子模块引入样本特征中心趋势和离散程度等高层次特征,增加了异常与正常样本之间的差异,且注意力子模块中引入注意力机制和残差机制,增强了模型检测能力和泛化能力,对新型的SQL注入攻击也具有一定的检测性能。
附图说明
图1为一种基于少量异常标签的半监督SQL注入攻击检测方法的流程图;
图2为本发明基于注意力机制的半监督检测模型的框图;
图3为本发明的消融实验一结果图;
图4为本发明的消融实验二结果图;
图5为本发明的不同类型异常含标签训练样本数量对模型性能影响实验结果图;
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
实施例1:
如图1所示,一种基于少量异常标签的半监督SQL注入攻击检测方法,包括以下步骤:
S1、根据采集的正常SQL样本和异常SQL样本,构建原始数据集;
S2、对原始数据集进行预处理,得到原始数据集中每个SQL样本对应的被编码后的SQL样本;
S3、根据被编码后的SQL样本,构建并训练得到基于注意力机制的半监督检测模型;
S4、通过基于注意力机制的半监督检测模型对未知的SQL样本进行检测,完成SQL注入攻击的检测。
本实施例中,为了解决传统SQL注入攻击检测框架采用语法解析、词嵌入编码可能隐藏SQL注入关键特征并引入噪声等问题,本发明提出一种基于比特编码的检测框架。该框架采用基于位的比特编码策略降低了需编码字符的数量,同时无需预训练词编码模型,包括数据采集模块、数据预处理模块、模型训练模块和SQL注入检测模块;该框架首先通过数据采集模块和数据预处理模块构建用于模型训练和测试的高质量数据集;然后通过模型训练模块获取性能最优的模型;最后使用该模型对测试样本检测。
所述步骤S1中,采集的正常SQL样本和异常SQL样本的方法具体为:
通过筛选的方式从公开数据集中获取正常SQL样本;通过自动注入工具攻击WEB应用的方式生成异常SQL样本。
本实施例中,公开数据集采用耶鲁大学公布的Spider数据集,自动注入工具为Sqlmap,WEB应用为DVWA;在生成异常SQL样本的过程中,通过修改Sqlmap脚本tamper的方式丰富SQL注入攻击类型。
所述步骤S2中,对原始数据集进行预处理的方法具体为:
SA1、在原始数据集中筛除高度相似或重复的SQL样本,并甄别和去除异常SQL样本中包含的正常SQL样本;
SA2、对原始数据集进行关键词大小写统一,对表名和查询内容的特定字段进行修正,并删除异常SQL样本中包含的网站账号信息;
SA3、通过比特编码策略对原始数据集中的SQL样本进行编码;
所述步骤SA3中,比特编码策略的编码方式具体为:
将原始数据集中的每个SQL样本进行定长编码,将其按字符转为ASCII-256十进制数向量,进而将其转为二进制流;其中,对SQL样本进行定长编码时,若SQL样本长度不足256位,则通过空格填充的方式补齐,否则截断保留256位。
本发明考虑到词嵌入编码存在的弊端,采用比特编码策略。该编码策略以位为单位,降低了需编码字符的数量;且无需扫描已知样本构建词库用于预训练编码模型,能够客观的描述样本属性特征。
所述步骤S3具体为:
根据被编码后的SQL样本,通过模型优化和参数调节的方式,得到最优模型参数的基于注意力机制的半监督检测模型。
在模型训练模块中进行模型优化和参数调节等方式更新,得到的基于注意力机制的半监督检测模型可以作为最优的未知SQL样本检测模型。
实施例2:
针对实施例1的步骤S3生成的基于注意力机制的半监督检测模型,包括相互连接的数据分布学习模块和检测器模块。
在本实施例中,如图2所示,数据分布学习模块使用基于数据分布学习的模型为检测器模块提供样本特征中心趋势和离散程度等的高层次特征;且检测器模块融合数据分布学习模块提供的高层次特征和样本编码特征作为输入,通过特征提取子模块和注意力子模块实现对特征的有效提炼和关注,进而判断SQL样本是否包含SQL注入攻击。
在本实施例中,数据分布学习模块使用“Auxiliary deep generative models”中提出的辅助深度生成模型实现,所述模型通过引入辅助变量增强了传统变分自编码器表征数据分布的能力。
数据分布学习模块包括相互连接的推理器和生成器;推理器可以产生高层次特征;生成器可以产生重构样本比特编码特征,根据重构样本比特编码特征可以使高层次特征更能反应该SQL样本的真实分布信息。
其中,推理器的表达式具体为:
I(yi)=cat(y|π)
I(zi|ai,yi,xi)=N(zi|ui(ai,xi,yi),
式中,ai为第i个编码后的SQL样本的辅助向量,ui(·)为第i个编码后的SQL样本的期望向量通式,xi为第i个编码后的SQL样本的样本编码特征,yi为第i个被编码后的SQL样本的样本标签,zi为第i个被编码后的SQL样本的样本后验分布通式,σi(·)为第i个被编码后的SQL样本的标准差向量通式,cat(·)为多维的数据分布通式,N(·)为高斯采样通式,I(·)为推理器通式,i为被编码后的SQL样本的序数;
生成器的表达式具体为:
G(yi)=cat(y|π)
G(ai|zi,yi,xi)=f(ai;zi,yi,xi,w)
G(xi|zi,yi)=f(xi;zi,yi,w)
式中,f(·)为多层非线性变换通式,w为权重,G(·)为生成器通式。
本实施例的有益效果为:数据分布学习模块通过引入辅助变量增强了传统变分自编码器表征数据分布的能力。
在本实施例中,检测器模块通过关注重点特征和特征细节弥补提升效果。检测器模块在传统多层感知机构建的检测器基础上引入了注意力机制和残差机制,既能对特征实施有效的关注,又保证了检测器的泛化能力。由于注意力机制强大的特征关注能力会使得极少量特征获得较大的权重,造成整体特征细节的丢失,使得检测性能下降,因此引入残差机制可以对丢失的特征细节进行补充。
检测器模块包括相互连接的特征提取子模块和注意力子模块;
特征提取子模块被设计为梯形结构,实现样本特征的降维打击及简单去噪,尽可能保留相对重要的特征。
其中,特征提取子模块的表达式具体为:
f1=relu(W1X+b1)
fj=relu(Wjfj-1+bj)
式中,X为SQL样本原始编码特征及样本特征中心趋势和离散程度等高维特征的融合特征,W1为第1层非线性变换的权重,Wj为第j层非线性变换的权重,b1为第1层非线性变换的偏置,bj为第j层非线性变换的偏置,f1为第1层线性变换,fj-1为第j-1层线性变换,fj为第j层非线性变换,j为非线性变换层的序数,relu(·)为激活函数;
为了提升检测器模块对与任务目标联系密切特征的关注力度并保持模型泛化能力,在注意力子模块引入注意力机制的同时引入残差机制,这是因为注意力机制强大的特征关注能力会使得极少量特征获得较大的权重,造成整体特征细节的丢失,使得检测性能下降,而残差机制可以对丢失的特征细节进行补充。
注意力子模块的表达式具体为:
gj=SoftMax(Wgj+b)
gk=gj·gw
F=Concat(gj,gk)
式中,gj为隐层特征,gw为特征权重,gk为加权特征,F为融合特征,W为线性变换层的权重,Concat(·)为特征拼接通式,SoftMax(·)为激活函数。
所述步骤S4中,对未知的SQL样本进行检测的方法具体为:
根据比较基于注意力机制的半监督检测模型输出的两维概率分布,判断未知的SQL样本是否包含SQL注入攻击;所述两维概率分布具体为第一维概率和第二概率;可以设置第一维概率或第二维概率为异常SQL样本的概率;
若设置的异常SQL样本的概率大于另一个概率时,则未知的SQL样本包含SQL注入攻击;
否则未知的SQL样本为正常样本。
实施例3:
针对实施例2的基于注意力机制的半监督检测模型,采用消融实验的实验结果。
通过引入样本特征中心趋势、离散程度等高层次信息以及注意力子模块两方面提升模型的检测效果,为验证两方面因素对模型性能的影响,分别进行了消融实验研究。
为评估引入样本特征中心趋势、离散程度信息对模型性能的影响,将本发明方法与引入样本特征后验分布信息对模型性能的影响进行了比较。实验结果如图3所示,其中ASDM为本发明的方法,ASDM-Z为引入样本特征的后验分布的方法;使用样本特征中心趋势和离散程度等高层次特征能够使得模型性能提升。ADSM模型相较于ASDM-Z最高性能差(HD)、准确率分别提升1.02%、0.62%,误检率降低了1.34%,而检测率降低0.32%。
为评估注意力子模块对模型性能影响,将本发明方法与不使用注意力子模块对比。实验结果如图4所示,其中ASDM为本发明的方法,ASDM No AM表示不含注意力子模块;注意力子模块能够明显提升模型的性能。ADSM模型相较于ASDM-No AM最高性能差(HD)、准确率分别提升0.98%、0.35%,误检率降低0.92%,检测率几乎相同。
通过以上消融研究,证明了本发明方法的有效性。这是因为样本特征中心趋势、离散程度信息不但能够表达特征的后验分布,还能表达特征偏离程度等信息,而注意力子模块加强了模型对于特征的关注能力。因此本发明提出的方法能够有效的检测SQL注入攻击。
实施例4:
针对实施例2的基于注意力机制的半监督检测模型,采用新型SQL注入攻击检测的实验结果。
由于新型SQL注入攻击难以标记,因此数据效率是评估半监督方法的重要因素。本发明按照SQL注入攻击类型采样标注样本,取3、5、10、15条不等,对本发明方法的数据效率进行实验验证。
本发明方法性能的总体趋势随着异常样本标记数量的增加而增加,但并未发生剧变,性能稳定。实验结果如图5所示。随着可标注的异常样本的增加,本发明方法整体性能(HD、ACC)由94.05%、96.96%提升至95.72%、97.8,误检率由4.7%降至2.5%。检测率的结果与总体趋势相反,这是因为不同的异常之间分布不同,还可能存在相互冲突的信息,随着标记异常样本数量的增加,这种趋势会被增大,因此检测性能降低。
为了验证本发明方法对新型SQL注入攻击的检测能力,并保障验证结果并非因偶然原因造成的,进行了三组新型SQL注入攻击检测实验。本实验使用的数据设置与对比试验中的数据设置不同之处在于:本实验训练集中的有标签异常样本由对比实验训练集的有标签异常样本随机选择取七至八种攻击类型的样本组成(大约45至80条)。
实验结果如表1所示,可以看出当有未曾被标注出的新类型SQL注入样本出现时,本发明方法依然具有良好的检测能力:检测率达到93%以上,误检率在5%以下。本发明方法之所以能够对新型SQL注入攻击依然有较优的检测效果,原因有两点:一方面时因为引入样本特征中心趋势和离散程度等高层次特征,增加了异常与正常样本之间的差异,另一方面是因为注意力子模块中引入残差机制,增强了模型的泛化能力。
表1
本发明方法的实施过程为:采用不同的方式和途径采集正常SQL样本和异常SQL样本,构建用于模型训练的原始数据集;对原始数据集中的SQL样本进行预处理,得到原始数据集中的SQL样本对应的被编码后的SQL样本;根据被编码后的SQL样本在模型训练模块构建和优化,得到最优模型参数的基于注意力机制的半监督检测模型;使用基于注意力机制的半监督检测模型对输入的未知的SQL样本检测,根据基于注意力机制的半监督检测模型输出两维概率分布,判断未知的SQL样本是否包含SQL注入攻击,完成SQL注入攻击的检测。
本发明的有益效果为:本发明的SQL注入攻击检测方法在数据标签不平衡时,检测性能稳定,满足实际场景需求;本发明提出一种基于比特编码的SQL注入攻击检测框架,该框架无需预训练词嵌入模型和语法规则解析。
本发明并基于该框架提出一种基于注意力机制的半监督SQL注入攻击检测模型,该模型具有优异的特征关注能力和泛化能力。
本发明的特征提取子模块引入样本特征中心趋势和离散程度等高层次特征,增加了异常与正常样本之间的差异,且注意力子模块中引入残差机制,增强了模型的泛化能力,对新型的SQL注入攻击也具有一定的检测性能。
在本发明的描述中,需要理解的是,术语“中心”、“厚度”、“上”、“下”、“水平”、“顶”、“底”、“内”、“外”、“径向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的设备或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或隐含指明的技术特征的数量。因此,限定由“第一”、“第二”、“第三”的特征可以明示或隐含地包括一个或者更多个该特征。
Claims (5)
1.一种基于少量异常标签的半监督SQL注入攻击检测方法,其特征在于,包括以下步骤:
S1、根据采集的正常SQL样本和异常SQL样本,构建原始数据集;
S2、对原始数据集进行预处理,得到原始数据集中每个SQL样本对应的被编码后的SQL样本;
S3、根据被编码后的SQL样本,构建并训练得到基于注意力机制的半监督检测模型;
S4、通过基于注意力机制的半监督检测模型对未知的SQL样本进行检测,完成SQL注入攻击的检测;
所述步骤S3具体为:
根据被编码后的SQL样本,通过模型优化和参数调节的方式,得到最优模型参数的基于注意力机制的半监督检测模型;
所述步骤S3中,基于注意力机制的半监督检测模型包括相互连接的数据分布学习模块和检测器模块;
数据分布学习模块包括相互连接的推理器和生成器;
其中,推理器的表达式具体为:
I(yi)=cat(y|π)
I(zi|ai,yi,xi)=N(zi|ui(ai,xi,yi),
式中,ai为第i个编码后的SQL样本的辅助向量,ui(·)为第i个编码后的SQL样本的期望向量通式,xi为第i个编码后的SQL样本的样本编码特征,yi为第i个被编码后的SQL样本的样本标签,zi为第i个被编码后的SQL样本的样本后验分布通式,σi(·)为第i个被编码后的SQL样本的标准差向量通式,cat(·)为多维的数据分布通式,N(·)为高斯采样通式,I(·)为推理器通式,i为被编码后的SQL样本的序数;
生成器的表达式具体为:
G(yi)=cat(y|π)
G(ai|zi,yi,xi)=f(ai;zi,yi,xi,w)
G(xi|zi,yi)=f(xi;zi,yi,w)
式中,f(·)为多层非线性变换通式,w为权重,G(·)为生成器通式;
检测器模块包括相互连接的特征提取子模块和注意力子模块;
其中,特征提取子模块的表达式具体为:
f1=relu(W1X+b1)
fj=relu(Wjfj-1+bj)
式中,X为SQL样本原始编码特征及样本特征中心趋势和离散程度等高维特征的融合特征,W1为第1层非线性变换的权重,Wj为第j层非线性变换的权重,b1为第1层非线性变换的偏置,bj为第j层非线性变换的偏置,f1为第1层线性变换,fj-1为第j-1层线性变换,fj为第j层非线性变换,j为非线性变换层的序数,relu(·)为激活函数;
注意力子模块的表达式具体为:
gj=SoftMax(Wgj+b)
gk=gj·gw
F=Concat(gj,gk)
式中,gj为隐层特征,gw为特征权重,gk为加权特征,F为融合特征,W为线性变换层的权重,Concat(·)为特征拼接通式,SoftMax(·)为激活函数。
2.根据权利要求1所述的基于少量异常标签的半监督SQL注入攻击检测方法,其特征在于,所述步骤S1中,采集的正常SQL样本和异常SQL样本的方法具体为:
通过筛选的方式从公开数据集中获取正常SQL样本;通过自动注入工具攻击WEB应用的方式生成异常SQL样本。
3.根据权利要求1所述的基于少量异常标签的半监督SQL注入攻击检测方法,其特征在于,所述步骤S2中,对原始数据集进行预处理的方法具体为:
SA1、在原始数据集中筛除高度相似或重复的SQL样本,并甄别和去除异常SQL样本中包含的正常SQL样本;
SA2、对原始数据集进行关键词大小写统一,对表名和查询内容的特定字段进行修正,并删除异常SQL样本中包含的网站账号信息;
SA3、通过比特编码策略对原始数据集中的SQL样本进行编码。
4.根据权利要求3所述的基于少量异常标签的半监督SQL注入攻击检测方法,其特征在于,所述步骤SA3中,比特编码策略的编码方式具体为:
将原始数据集中的每个SQL样本进行定长编码,将其按字符转为ASCII-256十进制数向量,进而将其转为二进制流;其中,对SQL样本进行定长编码时,若SQL样本长度不足256位,则通过空格填充的方式补齐,否则截断保留256位。
5.根据权利要求1所述的基于少量异常标签的半监督SQL注入攻击检测方法,其特征在于,所述步骤S4中,对未知的SQL样本进行检测的方法具体为:
根据比较基于注意力机制的半监督检测模型输出的两维概率分布,判断未知的SQL样本是否包含SQL注入攻击。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111269323.7A CN114168938B (zh) | 2021-10-29 | 2021-10-29 | 一种基于少量异常标签的半监督sql注入攻击检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111269323.7A CN114168938B (zh) | 2021-10-29 | 2021-10-29 | 一种基于少量异常标签的半监督sql注入攻击检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114168938A CN114168938A (zh) | 2022-03-11 |
CN114168938B true CN114168938B (zh) | 2023-04-07 |
Family
ID=80477700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111269323.7A Active CN114168938B (zh) | 2021-10-29 | 2021-10-29 | 一种基于少量异常标签的半监督sql注入攻击检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114168938B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114726614B (zh) * | 2022-04-06 | 2023-05-23 | 广东工业大学 | 一种基于条件变分自编码器和SENet的XSS攻击检测方法 |
CN115001791B (zh) * | 2022-05-27 | 2024-02-06 | 北京天融信网络安全技术有限公司 | 攻击资源标注方法及装置 |
CN115361176B (zh) * | 2022-08-03 | 2024-03-01 | 昆明理工大学 | 一种基于FlexUDA模型的SQL注入攻击检测方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108549814A (zh) * | 2018-03-24 | 2018-09-18 | 西安电子科技大学 | 一种基于机器学习的sql注入检测方法、数据库安全系统 |
CN109194677A (zh) * | 2018-09-21 | 2019-01-11 | 郑州云海信息技术有限公司 | 一种sql注入攻击检测方法、装置及设备 |
CN110414219A (zh) * | 2019-07-24 | 2019-11-05 | 长沙市智为信息技术有限公司 | 基于门控循环单元与注意力机制的注入攻击检测方法 |
CN112333128A (zh) * | 2019-08-05 | 2021-02-05 | 四川大学 | 一种基于自编码器的Web攻击行为检测系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11765202B2 (en) * | 2020-01-17 | 2023-09-19 | Cisco Technology, Inc. | Automatic detection and prevention of injection attacks |
US20210336987A1 (en) * | 2020-04-26 | 2021-10-28 | Bluedon Information Security Technologies Corp. | Method for Detecting Structured Query Language (SQL) Injection Based on Big Data Algorithm |
-
2021
- 2021-10-29 CN CN202111269323.7A patent/CN114168938B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108549814A (zh) * | 2018-03-24 | 2018-09-18 | 西安电子科技大学 | 一种基于机器学习的sql注入检测方法、数据库安全系统 |
CN109194677A (zh) * | 2018-09-21 | 2019-01-11 | 郑州云海信息技术有限公司 | 一种sql注入攻击检测方法、装置及设备 |
CN110414219A (zh) * | 2019-07-24 | 2019-11-05 | 长沙市智为信息技术有限公司 | 基于门控循环单元与注意力机制的注入攻击检测方法 |
CN112333128A (zh) * | 2019-08-05 | 2021-02-05 | 四川大学 | 一种基于自编码器的Web攻击行为检测系统 |
Non-Patent Citations (1)
Title |
---|
解银朋等.基于自训练的半监督SQL注入检测算法.《陕西师范大学学报(自然科学版)》.2021,第49卷(第1期),第37-43页. * |
Also Published As
Publication number | Publication date |
---|---|
CN114168938A (zh) | 2022-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114168938B (zh) | 一种基于少量异常标签的半监督sql注入攻击检测方法 | |
CN109413028B (zh) | 基于卷积神经网络算法的sql注入检测方法 | |
CN108667816A (zh) | 一种网络异常的检测定位方法及系统 | |
CN112491796B (zh) | 一种基于卷积神经网络的入侵检测及语义决策树量化解释方法 | |
CN107241352A (zh) | 一种网络安全事件分类与预测方法及系统 | |
CN110191096A (zh) | 一种基于语义分析的词向量网页入侵检测方法 | |
CN113269228B (zh) | 一种图网络分类模型的训练方法、装置、系统及电子设备 | |
CN111866004A (zh) | 安全评估方法、装置、计算机系统和介质 | |
Zixian et al. | Outburst prediction and influencing factors analysis based on Boruta-Apriori and BO-SVM algorithms | |
CN117176433A (zh) | 网络数据的异常行为检测系统及方法 | |
CN115733673B (zh) | 一种基于多尺度残差分类器的数据异常检测方法 | |
Sun et al. | LogPal: A generic anomaly detection scheme of heterogeneous logs for network systems | |
CN116340039A (zh) | 基于预训练BERT句向量与Informer-encoder的日志异常检测方法 | |
CN113946682B (zh) | 基于自适应图神经网络的敏感文本检测方法及系统 | |
CN112131570B (zh) | 一种基于pca的密码硬编码检测方法、装置及介质 | |
CN113935023A (zh) | 一种数据库异常行为检测方法及装置 | |
CN112052453A (zh) | 基于Relief算法的webshell检测方法及装置 | |
CN116484384B (zh) | 一种基于深度学习的以太坊智能合约漏洞的检测和定位方法 | |
CN117792801B (zh) | 一种基于多元事件分析的网络安全威胁识别方法及系统 | |
CN116527373B (zh) | 针对恶意url检测系统的后门攻击方法和装置 | |
CN117473571B (zh) | 一种数据信息安全处理方法及系统 | |
CN117938430A (zh) | 基于Bert模型的Webshell检测方法 | |
CN116881642A (zh) | 一种基于深度学习的检测数据分析方法和系统 | |
Zhang et al. | ASTNN-Based System for Auditing PHP Code | |
Abdelli et al. | Risky event classification leveraging transfer learning for very limited datasets in optical networks |
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 |