CN106991322A - 一种结构化查询语言sql注入攻击的检测方法和装置 - Google Patents

一种结构化查询语言sql注入攻击的检测方法和装置 Download PDF

Info

Publication number
CN106991322A
CN106991322A CN201610042113.7A CN201610042113A CN106991322A CN 106991322 A CN106991322 A CN 106991322A CN 201610042113 A CN201610042113 A CN 201610042113A CN 106991322 A CN106991322 A CN 106991322A
Authority
CN
China
Prior art keywords
sql
url
study
self
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201610042113.7A
Other languages
English (en)
Inventor
黄宇鸿
姜天宇
许金鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Venus Information Security Technology Co Ltd
Venustech Group Inc
Original Assignee
Beijing Venus Information Security Technology Co Ltd
Venustech Group Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Venus Information Security Technology Co Ltd, Venustech Group Inc filed Critical Beijing Venus Information Security Technology Co Ltd
Priority to CN201610042113.7A priority Critical patent/CN106991322A/zh
Publication of CN106991322A publication Critical patent/CN106991322A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computer And Data Communications (AREA)

Abstract

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

Description

一种结构化查询语言SQL注入攻击的检测方法和装置
技术领域
本发明涉及网络应用安全技术领域,尤指一种结构化查询语言SQL注入攻击的检测方法和装置。
背景技术
目前,随着网络技术的迅速发展,越来越多的应用业务都采用网络(Web)的方式来对外提供交互和服务,然而大部分应用业务在使用时很容易受到安全威胁,其中,最常见的安全威胁是结构化查询语言(Structured QueryLanguage,简称: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请求时,获取网页应用统一资源定位符(Uniform Resource Locator,简称:URL)及参数信息;并且,该网页应用系统服务器在向数据库请求数据时,获取业务请求信息所触发的对应的SQL语句,其中,通过在网页应用服务器上部署插件关联模块,使得该插件关联模块可以在处理该业务请求的类中加入统一资源定位符(Uniform Resource Locator,简称:URL)探针,在处理SQL语句的类中加入SQL探针,这样在网页应用系统服务器在向数据库请求时,在相应的SQL语句请求中携带上对应的URL信息,建立起网页应用访问URL和对应SQL语句的关联关系;在上述插件关联模块中的拦截代码可以采用Java字节码操作技术,直接在相关类加载的时候进行字节码操作,并采用Java模式中的代理模式从而达到获取URL及参数信息和SQL语句信息,并将所述业务的URL及参数信息和所对应的触发的SQL语句进行关联。
S102、根据所述SQL语句构建SQL语法树。
具体的,图2为本发明提供的一种结构化查询语言SQL注入攻击的检测方法实施例一的SQL语法树示意图,该网页应用系统服务器在获得Http请求所对应的数据库查询SQL语句信息后,对SQL语句做语法分析,即对该SQL语句的标识符、数据类型、函数、表达式、运算符、保留关键字等语法元素进行分析,从而构建SQL语法树,例如业务请求信息对应的SQL语句如下:
“Select name from table_a where pass=ppppp”
如图2所示,该SQL语法树为对上述SQL语句进行语法分析所构建SQL语法树。
S103、自学习所述URL识别出有效参数信息,自学习后建立所述URL及有效参数信息所属的业务请求信息和所关联的SQL语句的SQL语法树的关系模型。
具体的,通过将业务请求信息和对应的数据库事件信息中的SQL语句进行关联后,其中,业务请求信息的参数信息具有多样性,例如:张三登录网易邮箱,李四登录网易邮箱,这些都是登录网易邮箱的业务请求,仅仅是账户的参数信息不同,“张三”、“李四”这样的参数信息是不会影响上述“登录网易邮箱”的业务请求和所关联的数据库事件信息中的SQL语句的对应关系,采用自学习URL,对参数信息进行分类,可以分为无效参数信息和有效参数信息,继续上述实施例“张三”、“李四”即为无效参数信息,而对于“账户”是有效参数信息,识别出有效参数信息,即识别出对所属的业务请求信息所关联的SQL语句的SQL语法树有影响的有效参数信息,从而在自学习后建立所述URL及有效参数信息所属的业务请求信息和所关联的SQL语句的SQL语法树信息的关系模型,并通过对每个URL的粒度进行控制,从而使得可以在较短的时间内尽快完成业务请求信息中频率高的URL的自学习,而对于请求业务信息频率低的URL的自学习则可以保证学习的样本数量足够多,以便快速建立业务请求信息和SQL语法树的关系模型。
S104、检查后续业务请求信息和所关联的SQL语句的SQL语法树的关系,当检查结果和所述关系模型不一致时,则确认检测到SQL注入攻击。
具体的,按照自学习后所建立的关系模型来作为检查基准,检查后续业务请求信息和所关联的SQL语句的SQL语法树的关系,检查与自学习后所建立的关系模型是否一致,如果不一致,则确定检测到为SQL注入攻击,并将检查结果输出。
本发明实施例提供的一种结构化查询语言SQL注入攻击的检测方法,应用于基于Java虚拟机环境的网页应用系统服务器,通过对客户端的业务请求信息中的URL及参数信息和所触发的SQL语句进行关联,并对所述SQL语句进行语法分析构建SQL语法树,自学习所述URL识别出有效参数信息,在自学习后建立所述URL及有效参数信息所属的业务请求信息和所关联的SQL语句的SQL语法树的关系模型,将该关系模型做为检查基准,对后续的业务请求信息和所关联的SQL语句的SQL语法树的关系与该基准进行检查,如果检查结果不一致,则拒绝业务访问,从而能够精确检测SQL注入的威胁,从而保证了网络应用的业务安全。
进一步地,在上述实施例的基础上,还包括:
当检查结果和所述关系模型一致时,则允许进行业务访问。
具体的,按照自学习所建立的关系模型来作为检查基准,检查后续业务请求信息和所关联的SQL语句的SQL语法树的关系和自学习建立的关系模型是否一致,如果一致则认为是正常的业务访问,允许进行业务访问。
因为SQL注入攻击实质上是利用构建攻击向量来改变业务相关的SQL语句语义,所以要形成有效SQL注入攻击,所关联的SQL语句的SQL语法树结构和正常的语法树结构相比,必然发生变化,从而通过确定业务请求信息和SQL语句的SQL语法树的关系的一致性,进而保证了SQL注入攻击都能被该方法精确检测出来。
进一步地,在上述实施例的基础上,上述步骤103中所述采用自学习所述URL识别出有效参数信息,包括:
根据所述URL预设自学习的阈值,并按照阈值设定的学习次数自学习所述URL,识别出影响所属的业务请求信息和所关联的SQL语句的SQL语法树的对应关系的有效参数信息。
具体的,根据URL的不同可以预设自学习的阈值,即可以设定统一的学习次数,例如是5次,也可以根据不同的URL设定不同的学习次数,例如URL1可以是3次,URL2可以是4次,具体可以根据实际需求来进行预设,一旦预设自学习的学习次数后,则按照设定学习次数来自学习URL,对参数信息进行分类,其中,该参数信息可以分为无效参数和有效参数,识别出所属的业务请求信息和所关联的SQL语句的SQL语法树对应关系有影响的有效参数信息,剔除对所属的业务请求信息和所关联的SQL语句的SQL语法树对应关系无影响的无效参数,从而在自学习后建立所述URL及有效参数信息所属的业务请求信息和所关联的SQL语句的SQL语法树的关系模型。
通过预设自学习的阈值来对每个URL及参数信息的粒度进行控制,从而使得可以在较短的时间内尽快完成业务请求信息中频率高的URL的自学习,而对于请求业务信息频率低的URL的自学习则可以保证学习的样本数量足够多,以便快速建立业务请求信息和SQL语法树的关系模型。
进一步地,在上述实施例的基础上,所述自学习所述URL识别出有效参数信息,还包括:若确定所述URL按照设定的学习次数完成自学习时,则停止所述URL的自学习。
具体的,在所述自学习所述URL识别出有效参数信息的过程中,会确定该URL自学习的状态,若确定该URL按照设定的学习次数完成自学习时,即当相同URL访问预定的学习次数以后,则停止所述URL的自学习,直接将该关系模型作为检查的基准,这样可以不用一直都对业务请求信息中的URL进行自学习,尤其是使用频率高的业务请求信息,从而提高了网页应用的效率。
进一步地,在上述实施例的基础上,所述自学习所述URL识别出有效参数信息,还包括:若确定所述URL未按照设定的学习次数完成自学习时,则对已识别出影响所属的业务请求信息和所关联的SQL语句的SQL语法树的对应关系的有效参数信息进行存储,直至确定按照设定的学习次数完成自学习时,则停止所述URL的自学习。
具体的,在所述自学习所述URL识别出有效参数信息的过程中,会确定所述URL自学习的状态,若未按照设定的学习次数完成自学习时,则对已识别出影响所属的业务请求信息和所关联的SQL语句的语法树的对应关系的有效参数信息进行存储,在存储后允许业务进行访问,然后直至确定按照设定的学习次数完成完成自学习时,则停止所述URL的自学习,这样通过确定所述URL自学习的状态,从而避免重复构建关系模型基准,提高了网页应用的效率。
进一步地,图3为一种结构化查询语言SQL注入攻击的检测装置实施例一的结构示意图,如图3所示,该装置包括:插件关联模块10、解析模块20、自学习模块30和检测模块40;
所述插件关联模块10,用于获取业务请求信息和对应的数据库事件信息,其中,所述业务请求信息包括统一资源定位符URL及参数信息,所述数据库事件信息包括根据所述业务请求信息向数据库请求数据时所触发的SQL语句,并将所述业务请求信息和所述SQL语句进行关联;
所述解析模块20,用于根据所述SQL语句构建SQL语法树;
所述自学习模块30,用于自学习所述URL识别出有效参数信息,自学习后建立所述URL及有效参数信息所属的业务请求信息和所关联的SQL语句的SQL语法树的关系模型;
所述检测模块40,用于检查后续业务请求信息和所关联的SQL语句的SQL语法树的关系,当检查结果和所述关系模型不一致时,则确认检测到SQL注入攻击。
本发明实施例提供的一种结构化查询语言SQL注入攻击的检测装置,基于Java虚拟机环境的网页应用系统服务器,包括:插件关联模块10、解析模块20、自学习模块30和检测模块40,通过对客户端的业务请求信息中的URL及参数信息和所触发的SQL语句进行关联,并对所述SQL语句进行语法分析构建SQL语法树,自学习所述URL识别出有效参数信息,在自学习后建立所述URL及有效参数信息所属的业务请求信息和所关联的SQL语句的SQL语法树的关系模型,将该关系模型做为检查基准,对后续的业务请求信息和所关联的SQL语句的SQL语法树的关系与该基准进行检查,如果检查结果不一致,确认检测到SQL注入攻击,则拒绝业务访问,从而能够精确检测SQL注入的威胁,从而保证了网络应用的业务访问安全。
进一步地,在上述实施例的基础上,所述检测模块40还用于:
当检查结果和所述关系模型一致时,则允许进行业务访问。
本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
进一步地,在上述实施例的基础上,所述自学习模块30用于采用自学习所述URL识别出有效参数信息,包括:
所述自学习模块30用于根据所述URL预设自学习的阈值,并按照阈值设定的学习次数自学习所述URL,识别出影响所属的业务请求信息和所关联的SQL语句的SQL语法树的对应关系的有效参数信息。
本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
进一步地,在上述实施例的基础上,所述自学习模块30还用于若确定按照所述设定的学习次数完成自学习时,则停止所述URL的自学习。
本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
进一步地,在上述实施例的基础上,所述自学习模块30还用于若确定所述URL未按照设定的学习次数完成自学习时,则对已识别出影响所属的业务请求信息和所关联的SQL语句的SQL语法树的对应关系的有效参数信息进行存储,直至确定按照设定的学习次数完成自学习时,则停止所述URL的自学习。
本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (10)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610042113.7A CN106991322A (zh) 2016-01-21 2016-01-21 一种结构化查询语言sql注入攻击的检测方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610042113.7A CN106991322A (zh) 2016-01-21 2016-01-21 一种结构化查询语言sql注入攻击的检测方法和装置

Publications (1)

Publication Number Publication Date
CN106991322A true CN106991322A (zh) 2017-07-28

Family

ID=59413608

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610042113.7A Pending CN106991322A (zh) 2016-01-21 2016-01-21 一种结构化查询语言sql注入攻击的检测方法和装置

Country Status (1)

Country Link
CN (1) CN106991322A (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107483510A (zh) * 2017-10-09 2017-12-15 杭州安恒信息技术有限公司 一种提高Web应用层攻击检测准确率的方法及装置
CN107566363A (zh) * 2017-08-30 2018-01-09 杭州安恒信息技术有限公司 一种基于机器学习的sql注入攻击防护方法
CN107818148A (zh) * 2017-10-23 2018-03-20 南京南瑞集团公司 基于自然语言处理的自助式查询统计分析方法
CN107832618A (zh) * 2017-09-20 2018-03-23 武汉虹旭信息技术有限责任公司 一种基于细粒度权限控制的sql注入检测系统及其方法
CN107911466A (zh) * 2017-11-29 2018-04-13 北京安华金和科技有限公司 一种多层架构下应用关联方法
CN108052394A (zh) * 2017-12-27 2018-05-18 福建星瑞格软件有限公司 基于sql语句运行时间的资源分配的方法及计算机设备
CN108667840A (zh) * 2018-05-11 2018-10-16 腾讯科技(深圳)有限公司 注入漏洞检测方法及装置
CN109889471A (zh) * 2017-12-06 2019-06-14 阿里巴巴集团控股有限公司 结构化查询语句sql注入检测方法和系统
CN109992989A (zh) * 2017-12-29 2019-07-09 西普霍特公司 使用抽象语法树的用于查询注入检测的系统
CN110059480A (zh) * 2019-03-13 2019-07-26 深圳壹账通智能科技有限公司 网络攻击行为监控方法、装置、计算机设备及存储介质
CN110321711A (zh) * 2019-07-05 2019-10-11 杭州安恒信息技术股份有限公司 检测应用服务器sql注入点的方法及系统
CN110427754A (zh) * 2019-08-12 2019-11-08 腾讯科技(深圳)有限公司 网络应用攻击检测方法、装置、设备及存储介质
CN111818018A (zh) * 2020-06-18 2020-10-23 北京邮电大学 一种基于机器学习模型的sql注入攻击检测方法
CN112199677A (zh) * 2020-11-03 2021-01-08 安徽中安睿御科技有限公司 一种数据处理方法和装置
CN113158188A (zh) * 2021-03-26 2021-07-23 杭州数梦工场科技有限公司 检测sql注入攻击的方法及装置、电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101609493A (zh) * 2009-07-21 2009-12-23 国网电力科学研究院 一种基于自学习的数据库sql注入防护方法
CN102833270A (zh) * 2012-09-18 2012-12-19 山石网科通信技术(北京)有限公司 Sql注入攻击的检测方法、装置和具有该装置的防火墙

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101609493A (zh) * 2009-07-21 2009-12-23 国网电力科学研究院 一种基于自学习的数据库sql注入防护方法
CN102833270A (zh) * 2012-09-18 2012-12-19 山石网科通信技术(北京)有限公司 Sql注入攻击的检测方法、装置和具有该装置的防火墙

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107566363A (zh) * 2017-08-30 2018-01-09 杭州安恒信息技术有限公司 一种基于机器学习的sql注入攻击防护方法
CN107832618A (zh) * 2017-09-20 2018-03-23 武汉虹旭信息技术有限责任公司 一种基于细粒度权限控制的sql注入检测系统及其方法
CN107832618B (zh) * 2017-09-20 2019-12-24 武汉虹旭信息技术有限责任公司 一种基于细粒度权限控制的sql注入检测系统及其方法
CN107483510B (zh) * 2017-10-09 2020-11-24 杭州安恒信息技术股份有限公司 一种提高Web应用层攻击检测准确率的方法及装置
CN107483510A (zh) * 2017-10-09 2017-12-15 杭州安恒信息技术有限公司 一种提高Web应用层攻击检测准确率的方法及装置
CN107818148A (zh) * 2017-10-23 2018-03-20 南京南瑞集团公司 基于自然语言处理的自助式查询统计分析方法
CN107911466A (zh) * 2017-11-29 2018-04-13 北京安华金和科技有限公司 一种多层架构下应用关联方法
CN109889471A (zh) * 2017-12-06 2019-06-14 阿里巴巴集团控股有限公司 结构化查询语句sql注入检测方法和系统
CN108052394A (zh) * 2017-12-27 2018-05-18 福建星瑞格软件有限公司 基于sql语句运行时间的资源分配的方法及计算机设备
CN109992989B (zh) * 2017-12-29 2023-10-13 西普霍特公司 使用抽象语法树的用于查询注入检测的系统
CN109992989A (zh) * 2017-12-29 2019-07-09 西普霍特公司 使用抽象语法树的用于查询注入检测的系统
CN108667840A (zh) * 2018-05-11 2018-10-16 腾讯科技(深圳)有限公司 注入漏洞检测方法及装置
CN108667840B (zh) * 2018-05-11 2021-09-10 腾讯科技(深圳)有限公司 注入漏洞检测方法及装置
CN110059480A (zh) * 2019-03-13 2019-07-26 深圳壹账通智能科技有限公司 网络攻击行为监控方法、装置、计算机设备及存储介质
CN110321711A (zh) * 2019-07-05 2019-10-11 杭州安恒信息技术股份有限公司 检测应用服务器sql注入点的方法及系统
CN110427754A (zh) * 2019-08-12 2019-11-08 腾讯科技(深圳)有限公司 网络应用攻击检测方法、装置、设备及存储介质
CN110427754B (zh) * 2019-08-12 2024-02-13 腾讯科技(深圳)有限公司 网络应用攻击检测方法、装置、设备及存储介质
CN111818018A (zh) * 2020-06-18 2020-10-23 北京邮电大学 一种基于机器学习模型的sql注入攻击检测方法
CN111818018B (zh) * 2020-06-18 2021-09-21 北京邮电大学 一种基于机器学习模型的sql注入攻击检测方法
CN112199677A (zh) * 2020-11-03 2021-01-08 安徽中安睿御科技有限公司 一种数据处理方法和装置
CN113158188A (zh) * 2021-03-26 2021-07-23 杭州数梦工场科技有限公司 检测sql注入攻击的方法及装置、电子设备

Similar Documents

Publication Publication Date Title
CN106991322A (zh) 一种结构化查询语言sql注入攻击的检测方法和装置
CN105069355B (zh) webshell变形的静态检测方法和装置
TWI603600B (zh) 利用運行期代理器及網路探查器判定漏洞之技術
WO2020119430A1 (zh) 协议接口测试方法、装置、计算机设备和存储介质
EP2521049B1 (en) Methods and systems for validating input data
CN109992989A (zh) 使用抽象语法树的用于查询注入检测的系统
CN107918733A (zh) 检测网页的恶意元素的系统和方法
CN108989355B (zh) 一种漏洞检测方法和装置
EP3566166B1 (en) Management of security vulnerabilities
US10250632B2 (en) Web service testing
US20220198025A1 (en) Web Attack Simulator
US10705949B2 (en) Evaluation of library test suites using mutation testing
He et al. TextExerciser: feedback-driven text input exercising for android applications
CN113158197B (zh) 一种基于主动iast的sql注入漏洞检测方法、系统
KR102362516B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
CN113961930A (zh) Sql注入漏洞检测方法、装置及电子设备
CN106650454A (zh) 一种sql注入攻击检测方法和装置
Li et al. Large-scale third-party library detection in android markets
KR102396237B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
Mahapatra et al. A survey of sq1 injection countermeasures
CN107392026A (zh) 漏洞检测方法及装置
KR102411383B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
KR102447279B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
CA3204750A1 (en) Web attack simulator
US10515219B2 (en) Determining terms for security test

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170728