[发明专利]基于深度学习的SQL注入检测方法在审
| 申请号: | 202110356950.8 | 申请日: | 2021-04-01 |
| 公开(公告)号: | CN112800435A | 公开(公告)日: | 2021-05-14 |
| 发明(设计)人: | 许明龙;常承伟;杨枭;王定宇 | 申请(专利权)人: | 北京计算机技术及应用研究所 |
| 主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F16/242;G06F40/284;G06K9/62;G06N3/04;G06N3/08 |
| 代理公司: | 中国兵器工业集团公司专利中心 11011 | 代理人: | 王雪芬 |
| 地址: | 100854*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 深度 学习 sql 注入 检测 方法 | ||
1.一种基于深度学习的SQL注入检测方法,其特征在于,包括以下步骤:特征工程、方法训练、分类检测;其中,所述特征工程是先将数据集进行预处理,随后把处理好的数据通过Word2Vec模型生成词向量模型;所述方法训练是先将预处理好得到的训练数据集经过词向量模型生成训练集词向量,再通过CNN进一步提取数据特征,最后使用softmax分类器进行分类,通过反向传播算法更新方法参数;所述分类检测是将训练集词向量放入训练好的CNN分类方法中进行测试,测试模型使用测试集。
2.如权利要求1所述的方法,其特征在于,所述数据集包括正常SQL语句和SQL注入语句,数据集预处理具体包括以下步骤:
1)解码处理
先对正常SQL语句和SQL注入语句进行解码处理;
2)大小写统一处理
对SQL语句中的所有字符全部转换为小写;
3)泛化处理
对数据采用泛化处理操作;
4)分词处理
采用分词处理将SQL语句切分为字符串序列,对部分特殊字符进行针对性处理,以构建符合机器学习算法模型的数据特征;
(2)通过Word2Vec模型生成词向量模型
使用Word2Vec的连续词袋模型构造词向量模型,采用负例采样的方式进行优化;
(3)通过卷积神经网络CNN进一步提取数据特征
其中,通过卷积神经网络CNN提取数据特征时,采用改进的CNN分类方法实现:针对的数据为文本数据,因此使用卷积神经网络的一维卷积层对数据进行特征提取,一维卷积只设置卷积核高的维度,默认使用词向量长度作为卷积核宽的维度,一维卷积操作是使用卷积核按一个维度移动进行卷积运算。
3.如权利要求2所述的方法,其特征在于,泛化处理时,将用户输入的数字用0来替代。
4.如权利要求2所述的方法,其特征在于,分词处理时,对于、=、!=、#这些特殊字符,先对其前后加上空格的方式来替换保留,然后对于替换后的字符串序列用空格分离的方法来进行切分处理。
5.如权利要求2所述的方法,其特征在于,一维卷积操作时,若输入的词向量维度为6,卷积核大小为2*6,步长为1,卷积核由上至下进行卷积运算。
6.如权利要求2所述的方法,其特征在于,采用改进的CNN分类方法实现时,还将池化层替换为卷积层。
7.如权利要求6所述的方法,其特征在于,将池化层替换为卷积层时,使用卷积核大小为2、步长为2的卷积层代替池化窗口大小为2的池化层,先用卷积核依次对特征图做卷积运算,充分考虑特征图中每个特征点的信息,随后经过激活函数提升模型非线性表达能力,通过该卷积层对特征图进行下采样,使得输出矩阵与池化运算后的矩阵大小一致。
8.如权利要求6所述的方法,其特征在于,采用改进的CNN分类方法实现时,还将全连接层替换为1*1卷积层。
9.如权利要求2所述的方法,其特征在于,解码处理中包含的编码操作有base64编码、URL编码以及对中文的编码,其中一些语句可能经过多次编码,因此将语句进行多次编码判断和解码操作,直到该语句为可执行的SQL语句内容。
10.一种如权利要求1至9中任一项所述方法在信息安全技术领域中的应用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京计算机技术及应用研究所,未经北京计算机技术及应用研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110356950.8/1.html,转载请声明来源钻瓜专利网。





