一种基于机器学习的SQL注入攻击识别方法技术

技术编号:32510822 阅读:77 留言:0更新日期:2022-03-02 10:55
本发明专利技术公开了一种基于机器学习的SQL注入攻击识别方法,包括以下步骤:S1、获取请求数据:搭建含有SQL注入靶洞的靶场,使用SQLMAP和人工渗透的方式收集含有SQL注入的相关数据,对相关数据进行分类标注;S2、相关数据特征工程:对相关数据进行数据清洗,提取特征数据并将其转化为向量;S3、机器学习:将向量采用集成学习算法通过分类器模型进行训练,并已少数服从多数的判别方法进行最终类别的判断,得到用于SQL注入检测的分类器模型;S4、SQL注入攻击识别:将Web请求数据经过特征工程及向量化处理后进入分类器模型进行预测,识别SQL注入攻击。本发明专利技术能够有效提高SQL注入攻击识别效率,提高安全性。提高安全性。提高安全性。

【技术实现步骤摘要】
一种基于机器学习的SQL注入攻击识别方法


[0001]本专利技术涉及网络数据安全
,具体涉及一种基于机器学习的SQL注入攻击识别方法。

技术介绍

[0002]基于Web的应用程序通常依靠后端数据库服务器来管理应用程序特定的持久状态,并通过执行使用应用程序的用户提供的输入进行组合的查询来提取数据。假如没有正确处理用户的请求,攻击者通过操纵用户输入来改变SQL语句的结构。服务器可能因此遭受到基于Web应用程序的SQL注入攻击,甚至会危及继续数据库的安全。
[0003]SQL注入攻击检测分为入侵前检测和入侵后检测,入侵前检测可以通过手工方式,也可以使用SQL注入工具软件。检测的目的是为预防SQL注入攻击,而对于SQL注入攻击后的检测,主要是针对日志的检测。
[0004]传统的检测方式有如下几种,基于传统的敏感字符过滤,基于攻击特征的匹配过滤,还有基于漏洞原理的主动扫描。通过以上几种方式我们不难发现,传统的检测SQL注入攻击方式效率低下、而且受个人主观因素的影响比较大,对渗透人员依赖程度很高,识别效率也不高、不同的渗透人员对最后的识别结果也不一样。

技术实现思路

[0005]本专利技术是为了解决现有技术中人们在使用互联网数据时无法及时有效预防SQL注入攻击的技术问题,提供一种基于机器学习的SQL注入攻击识别方法,能够有效提高SQL注入攻击识别效率,提高安全性。
[0006]本专利技术提供一种基于机器学习的SQL注入攻击识别方法,包括以下步骤:
[0007]S1、获取请求数据:搭建含有SQL注入靶洞的靶场,使用SQLMAP和人工渗透的方式收集含有SQL注入的相关数据,对相关数据进行分类标注;
[0008]S2、相关数据特征工程:对相关数据进行数据清洗,提取特征数据并将其转化为向量;
[0009]S3、机器学习:将向量采用集成学习算法通过分类器模型进行训练,并已少数服从多数的判别方法进行最终类别的判断,得到用于SQL注入检测的分类器模型;
[0010]S4、SQL注入攻击识别:将Web请求数据经过特征工程及向量化处理后进入分类器模型进行预测,识别SQL注入攻击。
[0011]SQL注入攻击是黑客对数据库进行攻击的常用手段之一;用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
[0012]本专利技术所述的一种基于机器学习的SQL注入攻击识别方法,作为优选方式,相关数据包括请求参数、请求方法、响应内容、响应状态。
[0013]本专利技术所述的一种基于机器学习的SQL注入攻击识别方法,作为优选方式,分类标
注包括SQL注入攻击类和非SQL注入攻击类。
[0014]本专利技术所述的一种基于机器学习的SQL注入攻击识别方法,作为优选方式,步骤S2进一步包括以下步骤:
[0015]S21、采用下采样算法将相关数据中包含缺失值的数据清除;
[0016]S22、使用xpath将响应内容中的标签去除,只保留页面内容;
[0017]S23、采用urlparse包中的方法将请求参数、IP地址、端口号进行区分;
[0018]S24、使用Pearson相关系数评价相关数据的特征变量跟特征之间的关系,去除和最终类别无关的数据;
[0019]S25、采用TF

IDF算法根据词频和逆文档词频将各维度的特征数据转换为向量。
[0020]XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言;XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。
[0021]Pearson相关系数(Pearson Correlation Coefficient)是用来衡量两个数据集合是否在一条线上面,它用来衡量定距变量间的线性关系。
[0022]TF

IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。TF

IDF加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级。
[0023]本专利技术所述的一种基于机器学习的SQL注入攻击识别方法,作为优选方式,步骤S3进一步包括以下步骤;
[0024]S31、从类别P数据集中随机采用N个数据组成一个新的数据集,新的数据集与类别Q的数据组成心对训练数据集T,生成分类器模型并对相关数据进行分类;
[0025]S32、通过多轮迭代,每轮迭代产生一个弱分类器,每个弱分类器以上一轮弱分类器基础上进行训练提高分类器模型的精度。
[0026]本专利技术所述的一种基于机器学习的SQL注入攻击识别方法,作为优选方式,步骤S3中集成学习算法为以下方法的一种:随机森林、Bagging、AdaBoost、GBDT。
[0027]随机森林指的是利用多棵树对样本进行训练并预测的一种分类器,在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。
[0028]Bagging算法(英语:Bootstrap aggregating,引导聚集算法),又称装袋算法,是机器学习领域的一种团体学习算法Bagging是通过结合几个模型降低泛化误差的技术。主要想法是分别训练几个不同的模型,然后让所有模型表决测试样例的输出。
[0029]Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。
[0030]GBDT也是集成学习Boosting家族的成员,但是却和传统的Adaboost有很大的不同。Adaboost是利用前一轮迭代弱学习器的误差率来更新训练集的权重,这样一轮轮的迭代下去。GBDT也是迭代,使用了前向分布算法,但是弱学习器限定了只能使用CART回归树模型,同时迭代思路和Adaboost也有所不同。在GBDT的迭代中,假设我们前一轮迭代得到的强学习器是ft

1(x)ft

1(x),损失函数是L(y,ft

1(x))L(y,ft

1(x)),我们本轮迭代的目标是找到一个CART回归树模型的弱学习器ht(x)ht(x),让本轮的损失函数L(y,ft(x)=L(y,
ft

1(x)+ht(x))L(y,ft(x)=L(y,ft

1(x)+ht(x))最小。也就是说,本轮迭代找到决策树,要让样本的损失尽量变得更小。
[0031]本专利技术具有以下优点:
[0032](1)提高了SQL注入攻击识别的效率;
[0033](2)减少对渗透人员的依赖程度;
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于机器学习的SQL注入攻击识别方法,其特征在于:包括以下步骤:S1、获取请求数据:搭建含有SQL注入靶洞的靶场,使用SQLMAP和人工渗透的方式收集含有SQL注入的相关数据,对所述相关数据进行分类标注;S2、相关数据特征工程:对所述相关数据进行数据清洗,提取特征数据并将其转化为向量;S3、机器学习:将所述向量采用集成学习算法通过分类器模型进行训练,并已少数服从多数的判别方法进行最终类别的判断,得到用于SQL注入检测的分类器模型;S4、SQL注入攻击识别:将Web请求数据经过特征工程及向量化处理后进入所述分类器模型进行预测,识别所述SQL注入攻击。2.根据权利要求1所述的一种基于机器学习的SQL注入攻击识别方法,其特征在于:所述相关数据包括请求参数、请求方法、响应内容、响应状态。3.根据权利要求1所述的一种基于机器学习的SQL注入攻击识别方法,其特征在于:所述分类标注包括SQL注入攻击类和非SQL注入攻击类。4.根据权利要求2所述的一种基于机器学习的SQL注入攻击识别方法,其特征在于:步骤S2进一步包括以下步骤:S21、采用下采样算法将所述相...

【专利技术属性】
技术研发人员:何召阳任玉坤谢鑫刘兵方仁贵尉俊强
申请(专利权)人:北京墨云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1