【技术实现步骤摘要】
一种基于少量异常标签的半监督SQL注入攻击检测方法
[0001]本专利技术属于信息安全
,具体涉及一种基于少量异常标签的半监督SQL注入攻击检测方法。
技术介绍
[0002]SQL(Structured Query Language)是一种通用的、功能极强的关系数据库语言,是对关系数据存取的标准接口,也是不同数据库系统之间互操作的基础。它集数据查询、数据操作、数据定义、和数据控制功能于一体,被用来进行网页应用数据和后台数据库数据的交互。
[0003]SQL注入(SQL inject)是指通过把恶意的SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令,达到窃取、破坏数据的目的。SQL注入攻击具有隐蔽性强、变种多、易突变等特点,是一种简单但很有效的攻击手段。
[0004]目前关于SQL注入攻击检测的研究,主要分为三类:传统检测算法、机器学习检测算法和深度学习检测算法。以下分别对这三类方法简单介绍如下:
[0005]1、传统的SQL注入攻击检测算法包括静态检 ...
【技术保护点】
【技术特征摘要】
1.一种基于少量异常标签的半监督SQL注入攻击检测方法,其特征在于,包括以下步骤:S1、根据采集的正常SQL样本和异常SQL样本,构建原始数据集;S2、对原始数据集进行预处理,得到原始数据集中每个SQL样本对应的被编码后的SQL样本;S3、根据被编码后的SQL样本,构建并训练得到基于注意力机制的半监督检测模型;S4、通过基于注意力机制的半监督检测模型对未知的SQL样本进行检测,完成SQL注入攻击的检测。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注入攻击检测方法,其特征在于,所述步骤S3具体为:根据被编码后的SQL样本,通过模型优化和参数调节的方式,得到最优模型参数的基于注意力机制的半监督检测模型。6.根据权利要求5所述的基于少量异常标签的半监督SQL注入攻击检测方法,其特征在于,所述步骤S3中,基于注意力机制的半监督检测模型包括相互连接的数据分布学习模块和检测器模块。7.根据权利要求6所述的基于少量异常标签的半监督SQL注入攻击检测方法,其特征在于,数据分布学习模块包括相互连接的推理器和生成器;其中,推理器的表达式具体为:I(y
i
)=cat(y|π)I(z
i
|a
i
,y
i
,x
i
)=N(z
i
|u
i
(a
i
,x
i
,y
i
),
式中,a
i
为第i个编码后的SQL样本的辅助向量,u
i
(
·
)为第i个编码后的SQL样本的期望向量通式,x
i
为第i个编码后的SQL样本的样本编码特征,y
i
为第i个被编码后的SQL样本的样本标签,z
i
为第i个被编...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。