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虚拟机环境的网页应用系统服务器,其特征在于,所述方法包括:获取业务请求信息和对应的数据库事件信息,其中,所述业务请求信息包括统一资源定位符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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。