一种结构化查询语言SQL注入攻击的检测方法和装置制造方法及图纸

技术编号:15895710 阅读:62 留言:0更新日期:2017-07-28 20:00
本发明专利技术公开了一种结构化查询语言SQL注入攻击的检测方法和装置,包括:插件关联模块、解析模块、自学习模块和检测模块,基于Java虚拟机环境的网页应用系统服务器,通过对客户端的业务请求信息中的URL及参数信息和所触发的SQL语句进行关联,并对所述SQL语句进行语法分析构建SQL语法树,通过自学习所述URL识别出有效参数信息,在自学习后建立的URL及有效参数信息所属的业务请求信息和所关联的SQL语句的SQL语法树的关系模型,将该关系模型作为检查基准,对后续的业务请求信息和所关联的SQL语句的SQL语法树的关系与该基准进行检查,如果检查结果不一致,可以确认检测到SQL注入攻击,则拒绝业务访问,从而能够精确检测SQL注入的威胁,从而保证了网络应用的业务访问安全。

Method and device for detecting SQL injection attack in structured query language

The invention discloses a method and a device for testing, a structured query language SQL injection attacks include: plug association module, analysis module, self-learning module and detection module, web application server system based on Java virtual machine environment, based on the client service request information in URL and parameter information and triggered by SQL the statement of Association, and the SQL statement to construct SQL syntax tree grammar analysis, through self-learning of the URL to identify effective parameter information in the relational model SQL syntax tree SQL statement establish self-learning after URL and belongs to business information request information and effective parameters associated with the relationship between the check the model as a benchmark, the relationship between the SQL syntax tree SQL statement on the subsequent service request information and associated with the inspections and the reference, if inconsistent test results can be To confirm the detection of SQL injection attacks, then deny access to the business, thus enabling accurate detection of the threat of SQL injection, thus ensuring the access security of network applications.

【技术实现步骤摘要】
一种结构化查询语言SQL注入攻击的检测方法和装置
本专利技术涉及网络应用安全
,尤指一种结构化查询语言SQL注入攻击的检测方法和装置。
技术介绍
目前,随着网络技术的迅速发展,越来越多的应用业务都采用网络(Web)的方式来对外提供交互和服务,然而大部分应用业务在使用时很容易受到安全威胁,其中,最常见的安全威胁是结构化查询语言(StructuredQueryLanguage,简称:SQL)注入攻击,会造成敏感数据泄露、木马植入等后果,从而危害很大。现有技术中,大部分厂商通常检测SQL注入的方法主要是基于特征检测,该特征检测方法是指在Web请求头的各个参数中检查是否含有SQL语句关键字,例如select,union,where等等,如果出现关键字则报警;还有个别厂商会采用语法检测,因为构成有效的SQL注入,其中,参数部分必须是完整SQL语句的一部分,所以可以通过语法检查来判断是不是完整的SQL语句;另外,还有厂商会在了解Web服务器源码情况下,通过将源码中SQL语句的用户输入部分替换成变量形成SQL语句模板,作为后续SQL注入检测基础。但是,基于特征检测方法,如果SQL语法的关键字也往往是自然语言的词汇,在正常的web交互中,有一定概率出现上述关键字,这样会导致检测误判;采用语法检测方式的精度虽然比特征检测好很多,但一些比较简单的参数可能会命中语法,造成误报;另外,第三种检测方式的局限性则在于需要了解Web服务器上每个涉及SQL语句提交的源码片段,并且需要针对性设置,普适性比较差。因此,综上所述,现有技术的检测SQL注入的方法精度低或普适性差。专利技术内容为了解决上述技术问题,本专利技术提供了一种结构化查询语言SQL注入攻击的检测方法和装置,基于Java虚拟机环境的网页应用系统服务器,能够精确检测SQL注入,从而保证了网络应用的业务访问安全。第一方面,本专利技术实施例提供一种结构化查询语言SQL注入攻击的检测方法,基于Java虚拟机环境的网页应用系统服务器,所述方法包括:获取业务请求信息和对应的数据库事件信息,其中,所述业务请求信息包括统一资源定位符URL及参数信息,所述数据库事件信息包括根据所述业务请求信息向数据库请求数据时所触发的SQL语句,并将所述业务请求信息和所述SQL语句进行关联;根据所述SQL语句构建SQL语法树;自学习所述URL识别出有效参数信息,自学习后建立所述URL及有效参数信息所属的业务请求信息和所关联的SQL语句的SQL语法树的关系模型;检查后续业务请求信息和所关联的SQL语句的SQL语法树的关系,当检查结果和所述关系模型不一致时,则确认检测到SQL注入攻击。第二方面,本专利技术实施例提供一种结构化查询语言SQL注入攻击的检测装置,基于Java虚拟机环境的网页应用系统服务器,所述装置包括:插件关联模块、解析模块、自学习模块和检测模块;所述插件关联模块,用于获取业务请求信息和对应的数据库事件信息,其中,所述业务请求信息包括统一资源定位符URL及参数信息,所述数据库事件信息包括根据所述业务请求信息向数据库请求数据时所触发的SQL语句,并将所述业务请求信息和所述SQL语句进行关联;所述解析模块,用于根据所述SQL语句构建SQL语法树;所述自学习模块,用于自学习所述URL识别出有效参数信息,自学习后建立所述URL及有效参数信息所属的业务请求信息和所关联的SQL语句的SQL语法树的关系模型;所述检测模块,用于检查后续业务请求信息和所关联的SQL语句的SQL语法树的关系,当检查结果和所述关系模型不一致时,则确认检测到SQL注入攻击。本专利技术提供的一种结构化查询语言SQL注入攻击的检测方法和装置,基于Java虚拟机环境的网页应用系统服务器,通过对客户端的业务请求信息和所触发的SQL语句进行关联,并对所述SQL语句进行语法分析构建SQL语法树,自学习所述URL识别出有效参数信息,在自学习后建立所述URL及有效参数信息和所属的业务请求信息所关联的SQL语句的SQL语法树的关系模型,将该关系模型做为检查基准,对后续的业务请求信息和所关联的SQL语句的SQL语法树的关系与该基准进行检查,如果检查结果不一致,确认检测到SQL注入攻击,则拒绝业务访问,从而能够精确检测SQL注入的威胁,从而保证了网络应用的业务访问安全。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本专利技术技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本专利技术的技术方案,并不构成对本专利技术技术方案的限制。图1为本专利技术提供的一种结构化查询语言SQL注入攻击的检测方法实施例一的流程示意图;图2为本专利技术提供的一种结构化查询语言SQL注入攻击的检测方法实施例一的SQL语法结构树示意图;图3为本专利技术提供的一种结构化查询语言SQL注入攻击的检测装置实施例一的结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,下文中将结合附图对本专利技术的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本专利技术实施例涉及的基于Java虚拟机环境的网页应用系统服务器,可以为部署了网页应用和网页应用的资源的服务器,用于检测网页应用系统抗SQL注入攻击的能力,但并不以此为限。本专利技术实施例涉及的数据库可以部署在上述网页应用系统服务器上,还可以部署在与上述网页应用系统服务器不同的其他服务器上,只要能与上述网页应用系统服务器进行交互即可。本专利技术实施例涉及的终端,可以是例如:移动终端、测试设备、计算机等,用于发送业务请求信息的,但并不以此为限。本专利技术实施例涉及的方法,旨在解决现有技术中的检测SQL注入的方法精度低或普适性差的技术问题。下面以具体地实施例对本专利技术的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。图1为本专利技术提供的一种结构化查询语言SQL注入攻击的检测方法实施例一的流程示意图,本实施例涉及的是如何进行结构化查询语言SQL注入攻击检测的具体过程。如图1所示,基于Java虚拟机环境的网页应用系统服务器,该方法包括:S101、获取业务请求信息和对应的数据库事件信息,其中,所述业务请求信息包括统一资源定位符URL及参数信息,所述数据库事件信息包括根据所述业务请求信息向数据库请求数据时所触发的SQL语句,并将所述业务请求信息和所述SQL语句进行关联。具体的,终端向网页应用系统服务器发送业务请求信息,该业务可以为某个网页应用,该网页应用可以是网易邮箱、网上银行、淘宝购物等应用,该网页应用系统服务器在接收到业务请求信息,即进行Http请求时,获取网页应用统一资源定位符(UniformResourceLocator,简称:URL)及参数信息;并且,该网页应用系统服务器在向数据库请本文档来自技高网...
一种结构化查询语言SQL注入攻击的检测方法和装置

【技术保护点】
一种结构化查询语言SQL注入攻击的检测方法,基于Java虚拟机环境的网页应用系统服务器,其特征在于,所述方法包括:获取业务请求信息和对应的数据库事件信息,其中,所述业务请求信息包括统一资源定位符URL及参数信息,所述数据库事件信息包括根据所述业务请求信息向数据库请求数据时所触发的SQL语句,并将所述业务请求信息和所述SQL语句进行关联;根据所述SQL语句构建SQL语法树;自学习所述URL识别出有效参数信息,自学习后建立所述URL及有效参数信息所属的业务请求信息和所关联的SQL语句的SQL语法树的关系模型;检查后续业务请求信息和所关联的SQL语句的SQL语法树的关系,当检查结果和所述关系模型不一致时,则确认检测到SQL注入攻击。

【技术特征摘要】
1.一种结构化查询语言SQL注入攻击的检测方法,基于Java虚拟机环境的网页应用系统服务器,其特征在于,所述方法包括:获取业务请求信息和对应的数据库事件信息,其中,所述业务请求信息包括统一资源定位符URL及参数信息,所述数据库事件信息包括根据所述业务请求信息向数据库请求数据时所触发的SQL语句,并将所述业务请求信息和所述SQL语句进行关联;根据所述SQL语句构建SQL语法树;自学习所述URL识别出有效参数信息,自学习后建立所述URL及有效参数信息所属的业务请求信息和所关联的SQL语句的SQL语法树的关系模型;检查后续业务请求信息和所关联的SQL语句的SQL语法树的关系,当检查结果和所述关系模型不一致时,则确认检测到SQL注入攻击。2.根据权利要求1所述的方法,其特征在于,还包括:当检查结果和所述关系模型一致时,则允许进行业务访问。3.根据权利要求2所述的方法,其特征在于,所述自学习所述URL识别出有效参数信息,包括:根据所述URL预设自学习的阈值,并按照阈值设定的学习次数自学习所述URL,识别出影响所属的业务请求信息和所关联的SQL语句的SQL语法树的对应关系的有效参数信息。4.根据权利要求3所述的方法,其特征在于,所述自学习所述URL识别出有效参数信息,还包括:若确定所述URL按照设定的学习次数完成自学习时,则停止所述URL的自学习。5.根据权利要求3所述的方法,其特征在于,所述自学习所述URL识别出有效参数信息,还包括:若确定所述URL未按照设定的学习次数完成自学习时,则对已识别出影响所属的业务请求信息和所关联的SQL语句的SQL语法树的对应关系的有效参数信息进行存储,直至确定按照设定的学习次数完成自学习时,则停止所述URL的自学习。6.一种结构化查询语言SQL注入攻击的检测装置,基于Java虚拟机环境的网页应用系统服务器,其特征在于,所述装置包括:插件关联模块、解析模...

【专利技术属性】
技术研发人员:黄宇鸿姜天宇许金鹏
申请(专利权)人:北京启明星辰信息安全技术有限公司启明星辰信息技术集团股份有限公司
类型:发明
国别省市:北京,11

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

1