【技术实现步骤摘要】
本专利技术涉及一种基于人工神经元网络的SQL漏洞检测方法,属于计算机软件领域。
技术介绍
近年来,随着Web应用的广泛使用,Web安全问题也日益突出。SQL注入(SQLInjection)漏洞已成为Web应用中普遍存在的安全隐患之一,它是指攻击者利用Web应用系统用户输入和信息上传的动态特性,将一些恶意数据或代码上传到Web应用系统中,并使这些恶意数据或代码在Web应用系统的服务器端或客户端执行,从而造成Web应用目标系统崩溃、数据被篡改和泄露。由于目前多数的Web应用都采取了应用程序与数据库访问的交互式结构,即用户提交输入,应用程序根据输入构建SQL语句提交给数据库管理系统,执行后将结果返回给用户。SQL漏洞的产生是由于部分开发人员编写Web应用时,多关注业务逻辑,疏于验证用户输入,导致恶意的用户的输入嵌入在SQL语句中,欺骗服务器端执行,以获取超越权限的数据和使用功能,从而导成数据库信息的泄露等严重后果。因此,对SQL漏洞的检测是非常必要的。通过调研国内外流行的SQL漏洞检测技术,我们发现目前存在的主要缺点是误报率和漏报率较高,精度较差。本文提出的方法是利用大量已知的SQL漏洞注入数据和人工神经元网络算法来训练产生SQL语句漏洞分析模型,可提高检测的精度,减少检测的时间。本方法的设计是基于这样一种观察:虽然SQL注入漏洞可能有多种样式,但是其攻击种类仍然是有限的,而且其中包含了大量相似的关键词和组合语句。如果对攻击的种类进行总结和分类,并设计一个能够自主学习的模型,通过大量的样本训练就能够得到一个比较准确的SQL注入漏洞检测模型,用来分析SQL语句是 ...
【技术保护点】
一种基于人工神经元网络的SQL漏洞检测方法,实现本方法的为基于神经元网络的检测模型,该模型由SQL语句分析模块和人工神经元网络检测模块组成;其特征在于:(1)SQL语句分析模块SQL语句分析模块的主要功能是将Web应用提交的SQL语句转换一个特征向量组r,r是由0和1组成的特征向量;通过对SQL注入攻击语句的分类研究,本方法将r设计为由12个ri组成;如果ri=1,则说明SQL语句中包含关键字;如果ri=0,则说明SQL语句中不包含某一关键字;定义C代表某一语句是否为SQL注入语句,并定义:若该语句是SQL注入语句,C的值为1,若该语句不是SQL注入攻击语句,C值为0;如此,每一条SQL查询语句都能够用特征向量r和C来表示;语句分析模块实现的功能就是将SQL语句转换为特征向量,然后再将得到的特征向量提交给人工神经元网络检测模块进行分析与检测;(2)人工神经元网络模块人工神经元网络模块是该模型的核心部分,本专利技术设计的人工神经网络模型是由四层组成的,其中包含4个隐藏层、12个输入和1个输出;该模块用来训练、验证和测试SQL语句相关的数据,通过不断改变内部的权值,得到一个稳定权值的人工神 ...
【技术特征摘要】
1.一种基于人工神经元网络的SQL漏洞检测方法,实现本方法的为基于神经元网络的检测模型,该模型由SQL语句分析模块和人工神经元网络检测模块组成;其特征在于:(1)SQL语句分析模块SQL语句分析模块的主要功能是将Web应用提交的SQL语句转换一个特征向量组r,r是由0和1组成的特征向量;通过对SQL注入攻击语句的分类研究,本方法将r设计为由12个ri组成;如果ri=1,则说明SQL语句中包含关键字;如果ri=0,则说明SQL语句中不包含某一关键字;定义C代表某一语句是否为SQL注入语句,并定义:若该语句是SQL注入语句,C的值为1,若该语句不是SQL注入攻击语句,C值为0;如此,每一条SQL查询语句都能够用特征向量r和C来表示;语句分析模块实现的功能就是将SQL语句转换为特征向量,然后再将得到的特征向量提交给人工神经元网络检测模块进行分析与检测;(2)人工神经元网络模块人工神经元网络模块是该模型的核心部分,本发明设计的人工神经网络模型是由四层组成的,其中包含4个隐藏层、12个输入和1个输出;该模块用来训练、验证和测试SQL语句相关的数据,通过不断改变内部的权值,得到一个稳定权值的人工神经网络检测模型;人工神经训练模块的输入矩阵、目标矩阵和神经元网络的设计如下:1)输入矩阵:这个矩阵是由n×12的逻辑矩阵组成的,其中矩阵的元素由0或者1组成的;其中的0代表错误,1代表正确;2)目标矩阵:这个矩阵是由n×1的逻辑矩阵组成的,其中矩阵的元素由0或者1组成;其中的0代表错误,1代表正确;3)神经元网络:该神经网络的中间层是由4个隐藏层组成的,该层利用输入矩阵和输出矩阵来对数据进行训练、验证和测试;基于人工神经网络的验证模块的样本矩阵、输出矩阵的设计如下:1)样本矩阵:这个矩阵是从输入矩阵得到的数据,然后组成一个n×12的逻辑矩阵;2)输出矩阵:这个矩阵包含了一个n×1的逻辑矩阵,由输入样本矩阵输入训练好的神经网络,然后预测得到的输出值,把输出值存到矩阵中,就可以得到该输出矩阵。2.根据权利要求1所述的一种基于人工神经元网络的SQL漏洞检测方法,其特征在于:本方法的人工神经网络采用BP神经元网络模型,用Java语言实现,在Windows64位系统上编写,在Windows64位系统上正常运行。3.根据权利要求1所述的一种基于人工神经元网络的SQL漏洞检测方法,其特征在于:本系统由SQL语句分析模块和人工神经元网络模块两个部分组成;SQL语句分析模块SQL语句分析模块的主要功能是将Web应用提交的SQL语句转换一个特征向量组r,r是由0和1组成的特征向量;通过对SQL注入攻击语句的分类,本模块将r设计为由12个ri组成,i代表个数;如果ri=1,则说明SQL语句中包含关键字;如果ri=0,则说明SQL语句中不包含某一关键字;若C代表某一语句是否为SQL注入语句,并定义:若该语句是SQL注入语句,C的值为1,若该语句不是SQL注入攻击语句,C值为0;这样一来,每一条SQL查询语句都可以用特征向量r和C来表示;语句分析模块实现的功能就是将SQL语句转换为特征向量,然后再将得到的特征向量提交给人工神经元网络分析模块进行分析;语句分析模块中包含SQL注入关键词表,该表中存放有SQL语...
【专利技术属性】
技术研发人员:王丹,张志超,赵文兵,付利华,杜金莲,苏航,
申请(专利权)人:北京工业大学,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。