CN109889471B - 结构化查询语句sql注入检测方法和系统 - Google Patents

结构化查询语句sql注入检测方法和系统 Download PDF

Info

Publication number
CN109889471B
CN109889471B CN201711279557.3A CN201711279557A CN109889471B CN 109889471 B CN109889471 B CN 109889471B CN 201711279557 A CN201711279557 A CN 201711279557A CN 109889471 B CN109889471 B CN 109889471B
Authority
CN
China
Prior art keywords
state sequence
structured query
query language
sql
preset
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.)
Active
Application number
CN201711279557.3A
Other languages
English (en)
Other versions
CN109889471A (zh
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201711279557.3A priority Critical patent/CN109889471B/zh
Publication of CN109889471A publication Critical patent/CN109889471A/zh
Application granted granted Critical
Publication of CN109889471B publication Critical patent/CN109889471B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种结构化查询语句SQL注入检测方法和系统。其中,该方法包括:解析统一资源定位符请求URL,得到与SQL关联的参数值;将参数值转换为状态序列,其中,状态序列用于通过预设识别方式表示参数值;基于对状态序列对应的判断条件,确定状态序列满足结构化查询语言注入操作。本申请解决了由于相关技术中模型易受噪声干扰,导致识别SQL注入准确率低的技术问题。

Description

结构化查询语句SQL注入检测方法和系统
技术领域
本申请涉及互联网技术应用领域,具体而言,涉及一种结构化查询语句SQL注入检测方法和系统。
背景技术
随着网络安全的发展,如何避免由于结构化查询语言(Structured QueryLanguage,简称SQL)的注入,导致系统入侵和数据泄露成为了网络安全领域亟待解决的问题。
对于结构化查询语言(Structured Query Language,简称SQL)注入的识别,传统方法大都基于关键字或者正则表达式过滤。此外,基于语法分析的SQL注入检测方法越来越受到广泛关注。
现有基于语法分析的方法,解决了规则方法面临的问题,但也存在一些不足。SQLChop方法通过状态机表达黑样本状态序列,解决了五元组长度问题,但模型容易受到训练样本中噪声的干扰。
针对上述由于相关技术中模型易受噪声干扰,导致识别SQL准确率低的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种结构化查询语句SQL注入检测方法和系统,以至少解决由于相关技术中模型易受噪声干扰,导致识别SQL注入准确率低的技术问题。
根据本申请实施例的一方面,提供了一种结构化查询语句SQL注入检测方法,包括:解析统一资源定位符请求URL,得到与SQL关联的参数值;将参数值转换为状态序列,其中,状态序列用于通过预设识别方式表示参数值;基于对状态序列对应的判断条件,确定状态序列满足结构化查询语言注入操作。
可选的,解析统一资源定位符请求URL,得到与SQL关联的参数值包括:解析统一资源定位符请求,得到统一资源定位符请求中的至少一个参数;对至少一个参数进行过滤得到与结构化查询语句关联的参数值。
进一步地,可选的,解析统一资源定位符请求,得到统一资源定位符请求中的至少一个参数包括:解析统一资源定位符请求中获取请求GET中的参数和传递请求POST中的参数。
可选的,对至少一个参数进行过滤,得到与结构化查询语句关联的参数值包括:依据预设结构化查询语言过滤条件对至少一个参数进行过滤,得到与结构化查询语句关联的参数值。
进一步地,可选的,依据预设结构化查询语言过滤条件对至少一个参数进行过滤,得到与结构化查询语句关联的参数值包括:在预设结构化查询语言过滤条件包括结构化查询语句关键字和/或正则表达式的情况下,依据结构化查询语句关键字和/或正则表达式过滤至少一个参数,得到与结构化查询语句关联的参数值。
可选的,基于对状态序列对应的判断条件,确定状态序列满足结构化查询语言注入操作包括:通过预存模型判断状态序列是否满足结构化查询语言注入操作;在判断结果为是的情况下,得到满足结构化查询语言注入操作的状态序列;其中,通过预存模型判断状态序列是否满足结构化查询语言注入操作包括:在预存模型包括神经网络模型的情况下,通过神经网络模型对状态序列进行学习,得到对应的数据模型;通过数据模型解析状态模型,判断状态序列是否为结构化查询语言注入操作。
可选的,在判断结果为是的情况下,得到满足结构化查询语言注入操作的状态序列包括:在判断结果为是情况下,输出检测值为第一数值;在判断结果为否的情况下,输出检测值为第二数值;将检测值为第一数值的状态序列判定为结构化查询语言注入操作。
可选的,在确定状态序列满足结构化查询语言注入操作之后,该方法还包括:依据预设告警过滤条件对结构化查询语言注入操作的状态序列进行过滤,得到满足预设告警过滤条件的状态序列。
进一步地,可选的,依据预设告警过滤条件对结构化查询语言注入操作的状态序列进行过滤,得到满足预设告警过滤条件的状态序列包括:在预设告警过滤条件包括对状态序列取全量样本过滤的方法的情况下,将状态序列分为至少一个片段,并统计至少一个片段的中相同部分出现的次数;通过对次数进行评分,将评分小于预设阈值的状态序列判定为结构化查询语言注入操作;将评分小于预设阈值的状态序列所对应的统一资源定位符进行告警。
进一步地,可选的,通过对次数进行评分,将评分小于预设阈值的状态序列判定为结构化查询语言注入操作包括:判断至少一个片段是否为预设文件夹中的片段;在判断结果为至少一个片段与预设文件夹中的片段相同的情况下,对预设文件夹中的至少一个片段进行计数,得到预设文件夹中片段数;依据预设文件夹中片段数和总片段数之间的数学关系进行计算,得到评分;判断评分是否小于预设阈值;在判断结果为评分小于预设阈值的情况下,将评分小于预设阈值的状态序列判定为结构化查询语言注入操作。
可选的,该方法还包括:将告警信息发送至运维权限的终端,以使得运维权限的终端依据告警信息执行阻截SQL注入的操作以及维护。
根据本申请实施例的另一方面,还提供了一种结构化查询语句SQL注入检测方法,包括:通过统一资源定位符请求,获取统一资源定位符请求中与结构化查询语句SQL关联的参数值对应的状态序列;通过预存模型获取满足结构化查询语言注入操作的状态序列;依据预设告警过滤条件过滤状态序列,得到满足预设告警过滤条件的状态序列。
根据本申请实施例的又一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述结构化查询语句SQL注入检测方法。
根据本申请实施例的又一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述结构化查询语句SQL注入检测方法。
根据本申请实施例的在再一方面,还提供了一种计算机终端,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:解析统一资源定位符请求URL,得到与SQL关联的参数值;将参数值转换为状态序列,其中,状态序列用于通过预设识别方式表示参数值;基于对状态序列对应的判断条件,确定状态序列满足结构化查询语言注入操作。
在本申请实施例中,通过解析统一资源定位符请求URL,得到与SQL关联的参数值;将参数值转换为状态序列,其中,状态序列用于通过预设识别方式表示参数值;基于对状态序列对应的判断条件,确定状态序列满足结构化查询语言注入操作,达到了准确识别SQL注入的目的,从而实现了提升识别SQL注入效率的技术效果,进而解决了由于相关技术中模型易受噪声干扰,导致识别SQL注入准确率低的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例一的SQL注入检测系统的结构示意图;
图2是本申请实施例一提供的一种SQL注入检测系统的结构框图;
图3是本申请实施例的一种结构化查询语句SQL注入检测方法的计算机终端的硬件结构框图;
图4是根据本申请实施例二的结构化查询语句SQL注入检测方法的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例涉及的技术名词具体如下:
结构化查询语言:Structured Query Language,简称SQL;
统一资源定位符:Uniform Resource Locator,简称URL;
URL中的GET和POST请求:GET请求,用于从指定的服务器中获取数据;POST请求,用于提交数据给指定的服务器处理。
实施例1
图1是根据本申请实施例一的SQL注入检测系统的结构示意图;如图1所示,本申请实施例提供的SQL注入检测系统包括:
解析装置12,用于将接收到的统一资源定位符(Uniform Resource Locator,简称URL)请求进行解析,得到统一资源定位符请求中的至少一个参数;过滤装置14,用于依据预设结构化查询语言过滤条件对至少一个参数进行过滤,得到与结构化查询语句关联的参数值;检测装置16,用于将与结构化查询语句关联的参数值转换为状态序列,并通过预存模型判断状态序列是否为结构化查询语言注入操作,得到判定为结构化查询语言注入操作的状态序列;告警装置18,用于依据预设告警过滤条件对结构化查询语言注入操作的状态序列进行过滤,得到过滤后的结构化查询语言注入操作的状态序列,并将结构化查询语言注入操作的状态序列所对应的统一资源定位符请求作为告警信息进行告警。
具体的,本申请实施例提供的SQL注入检测系统可以适用于网络层关于结构化查询语言SQL注入检测,现有对SQL注入的检测通常通过关键字过滤或者正则表达式过滤与SQL有关的网页请求,或,通过黑样本签名识别SQL注入行为,或状态机学习当前网页请求是否为SQL注入操作行为进行预防。但是现有技术中由于关键字和正则表达式的局限性,容易规避,黑样本签名以及状态机的使用受网页请求长度或由于状态机的学习能力的局限性无法识别新的SQL注入操作,从而导致漏检行为的发生,而本申请通过机器学习中的深度学习方法,结合文本识别和语法分析技术,能够弥补现有技术中通过规则方法导致的易绕过,易误杀,难维护的问题,实现准确识别SQL注入。
在本申请实施例中,通过解析装置12对网页请求的解析,得到该网页请求中至少一个参数,再通过过滤装置14对该至少一个参数进行过滤,对于SQL语句无关的参数进行过滤,保留与SQL语句有关的至少一个参数;并由检测装置16通过将至少一个参数转换为状态序列,将得到的状态序列输入预存模型中进行学习,通过预存模型的学习分析以及判断,确定该状态序列是否为SQL注入操作的状态序列;若得到至少一个状态序列为SQL注入操作的状态序列,需通过预设告警过滤条件对该至少一个状态序列进行过滤,将满足告警条件且具备多数相同内容的至少一个状态序列进行过滤,保留满足告警条件且具备部分或少量内容的至少一个状态序列,其中,“多数”“部分或少量”可以通过设定阈值,过滤或保留满足告警条件的状态序列的个数。
其中,在本实施例中网页请求可以为统一资源定位符请求(Uniform ResourceLocator,简称URL)。
在本申请实施例中,通过解析装置,用于将接收到的统一资源定位符请求进行解析,得到统一资源定位符请求中的至少一个参数;过滤装置,用于依据预设结构化查询语言过滤条件对至少一个参数进行过滤,得到与结构化查询语句关联的参数值;检测装置,用于将与结构化查询语句关联的参数值转换为状态序列,并通过预存模型判断状态序列是否为结构化查询语言注入操作,得到判定为结构化查询语言注入操作的状态序列;告警装置,用于依据预设告警过滤条件对结构化查询语言注入操作的状态序列进行过滤,得到过滤后的结构化查询语言注入操作的状态序列,并将结构化查询语言注入操作的状态序列所对应的统一资源定位符请求作为告警信息进行告警,达到了准确识别SQL注入的目的,从而实现了提升识别SQL注入效率的技术效果,进而解决了由于相关技术中模型易受噪声干扰,导致识别SQL注入准确率低的技术问题。
可选的,解析装置12包括:接收模块和解析模块,其中,接收模块,用于接收统一资源定位符请求;解析模块,用于解析统一资源定位符请求中的内容GET和POST,得到内容GET和POST中的至少一个参数。
具体的,针对原始URL请求,将URL中GET和POST中的参数和取值解析出来,输出至下一环节。
举例说明:
对于URL请求www.domain.com/page?key1=value1&key2=value2,解析之后得到两条结果,如下表:
序号 URL 参数值
1 www.domain.com/page?key1=value1&key2=value2 value1
2 www.domain.com/page?key1=value1&key2=value2 value2
进一步地,可选的,过滤装置14包括:筛选模块和第一过滤模块,其中,筛选模块,用于通过预设结构化查询语言过滤条件筛选至少一个参数,得到筛选后的至少一个参数,其中,预设结构化查询语言过滤条件包括:结构化查询语句关键字和/或正则表达式;第一过滤模块,用于将筛选后的至少一个参数中与结构化查询语句进行过滤,保留与结构化查询语句关联的参数值,得到与结构化查询语句关联的参数值。
具体的,针对解析装置12中解析的每个参数值,通过简单SQL语句关键字和正则表达式对命令进行初筛,过滤掉跟SQL完全无关的参数值,并将有可能存在SQL注入的参数值输出至下一环节。这一步根据数据不同,需要定制化处理。
举例说明:
对于参数值select name from table,若通过关键字select过滤,则该参数值保留下来。
可选的,检测装置16包括:模式转换模块和检测模块,其中,模式转换模块,用于通过预设状态识别条件将与结构化查询语句关联的参数值转换为状态序列;检测模块,用于在预存模型为神经网络模型的情况下,通过神经网络模型判断状态序列是否为结构化查询语言注入操作,得到判定为结构化查询语言注入操作的状态序列。
进一步地,可选的,模式转换模块包括:状态序列生成单元,其中,模式转换单元,用于将与结构化查询语句关联的参数值通过预设识别条件转换为带标签的状态序列,其中,带标签的状态序列包括第一标签和第二标签,第一标签位于带标签的状态序列的队首,第二标签位于带标签的状态序列的队尾。
可选的,检测模块包括:检测单元,其中,检测单元,用于对状态序列匹配对应的数据模型,并通过匹配的数据模型检测状态序列是否为结构化查询语言注入操作,在检测结果为是情况下,输出检测值为第一数值;在检测结果为否的情况下,输出检测值为第二数值;将检测值为第一数值的状态序列判定为结构化查询语言注入操作。
可选的,检测模块还包括:模型学习单元,其中,模型学习单元,用于在对状态序列匹配对应的数据模型之前,通过神经网络模型学习状态序列,得到对应状态序列的数据模型;其中,通过神经网络模型学习状态序列包括:将带标签的状态序列输入神经网络模型,通过神经网络模型递进解析带标签的状态序列,并将解析后的带标签的状态序列与历史学习模型结合,得到对应状态序列的数据模型。
具体的,针对过滤装置14中过滤结果,通过检测装置16深度学习模型,识别SQL注入。首先,通过Libinjection中的状态识别方法,将参数值表达为状态序列。其次,将得到的状态序列输入到GRAVES提出的递归神经网络模型中判断是否为SQL注入。该模型在训练阶段,通过带标签(是否为SQL注入)的状态序列进行训练。之后,将判定为SQL注入的参数值输出到告警阶段。
举例说明:
状态序列生成:对于样本binary(1-binary(1))UNION SELECT 2--,通过状态识别得到状态序列为1o(1)UE1c。
训练:对于每个训练样本A和标签A_label,首先得到状态序列B,然后将标签与状态序列合并得到带标签的状态序列C。
举例说明,对于样本binary(1-binary(1))UNION SELECT 2--,标签为1,状态序列为1o(1)UE1c,则训练所用带标签的状态序列C为:^1o(1)UE1c$1。具体做法为:在头部加^符号,尾部加$符号,并把标签加在$符号后面。将所有训练数据处理成带标签的状态序列后,训练递归神经网络得到模型M1。
测试:对于测试样本binary(1-binary(1))UNION SELECT 2--,首先得到状态序列1o(1)UE1c,其次首尾各加标志位得到^1o(1)UE1c$,输入到M1中预测得到是否为SQL注入的标签(0为正常,1为注入)。
可选的,告警装置18包括:第二过滤模块和告警模块,其中,第二过滤模块,用于在预设告警过滤条件包括对状态序列取全量样本过滤的方法的情况下,将状态序列分为至少一个片段,并统计至少一个片段的中相同部分出现的次数,通过对次数进行评分,将评分小于预设阈值的状态序列判定为结构化查询语言注入操作;告警模块,用于将评分小于预设阈值的状态序列所对应的统一资源定位符进行告警。
具体的,针对检测装置16中识别出的SQL注入样本,告警装置18进行去误报。由于正常URL流量中包含大量SQL注入扫描器形成的流量,检测告警量大,难以运营。这一阶段通过基于N-Gram的方法,识别有威胁告警,去除大量相似的告警,仅将出现不频繁的告警进行输出。
下面以5-Gram(N=5)举例说明:
训练:取全量样本,每个训练样本分割为数个N-Gram片段。举例说明,对于样本’abcdefg’,其对应的5-Gram片段为{‘abcde’,’bcdef’,’cedfg’}。将全部样本分割后,统计样本中每个5-Gram出现次数,高于阈值的通过Bloom filter存储。
测试:对于每个样本’abcdefg’,首先将其分割为5-Gram片段{‘abcde’,’bcdef’,’cedfg’},根据每个片段是否在Bloom filter中出现,计算异常得分:
异常得分=出现在Bloom filter中的片段数/总5-Gram片段数
举例说明,对于样本’abcdefg’,若‘abcde’和’bcdef’出现在Bloom filter中,而’cedfg’没有,则得分为2/3=0.67。若威胁阈值为0.7,由于0.67<0.7,则判断样本’abcdefg’为威胁,流入下一环节。即,当异常得分为0.67时,说明样本’abcdefg’分割为5-Gram片段{‘abcde’,’bcdef’,’cedfg’}之后,异常得分小于预设的威胁阈值,说明该样本为罕见告警,本申请为了将大量相似的告警去除,故将该罕见告警对应的样本输出进行告警。
综上,本申请提供的SQL注入检测系统中通过机器学习中的深度学习方法(例如,通过递归神经网络模型判断是否为SQL注入),结合文本识别和语法分析技术,能够弥补传统规则方法易绕过、易误杀、难维护的问题,准确识别SQL注入,即,由于本申请中通过解析统一资源定位符请求,得到与结构化查询语句SQL关联的参数值;将参数值转换为状态序列;通过预存模型判断状态序列是否满足结构化查询语言注入操作;通过模型学习对于SQL注入进行准确识别,规避了现有技术中传统规则方法易绕过、易误杀的问题,并且模型学习会自发性的根据获取到的样本不断学习,在维护上相比传统的规则添加更简单。
其中具体表现为在判断结果为是的情况下,得到满足结构化查询语言注入操作的状态序列;依据预设告警过滤条件对结构化查询语言注入操作的状态序列进行过滤,得到满足预设告警过滤条件的状态序列,即,在本申请中通过设立预设告警条件将大量相似的告警进行过滤,获取不频繁的告警进行输出,实现SQL注入识别,并对告警信息进行有效过滤。
本申请提供的SQL注入检测系统采用基于深度学习的语法分析模型,能够准确识别SQL注入。深度学习模型已经在文本、语音、翻译等序列处理问题上表现出强大的建模能力和泛化能力。针对上述方法模型在黑样本状态序列表达方面的困难,本申请提出基于深度学习模型的解决方案,以显著提高SQL入侵检测效果。进一步的,本申请将基于深度学习的SQL检测方法进行扩充,实现了一套从原始URL到SQL注入告警的完整解决方案。
本申请共包括URL解析、前置过滤、SQL注入识别和有效告警过滤四个模块。具体流程如图2所示,图2是本申请实施例一提供的一种SQL注入检测系统的结构框图。
实施例2
根据本申请实施例,还提供了一种结构化查询语句SQL注入检测方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图3是本申请实施例的一种结构化查询语句SQL注入检测方法的计算机终端的硬件结构框图。如图3所示,计算机终端30可以包括一个或多个(图中仅示出一个)处理器302(处理器302可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器304、以及用于通信功能的传输模块306。本领域普通技术人员可以理解,图3所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端30还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。
存储器304可用于存储应用软件的软件程序以及模块,如本申请实施例中的结构化查询语句SQL注入检测方法对应的程序指令/模块,处理器302通过运行存储在存储器304内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的结构化查询语句SQL注入检测方法。存储器304可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器304可进一步包括相对于处理器302远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端30。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块306用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端30的通信供应商提供的无线网络。在一个实例中,传输模块306包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块306可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在上述运行环境下,本申请提供了如图4所示的结构化查询语句SQL注入检测方法。图4是根据本申请实施例二的结构化查询语句SQL注入检测方法的流程图。
步骤S402,解析统一资源定位符请求URL,得到与SQL关联的参数值;
具体的,本申请上述步骤S402中解析统一资源定位符请求,得到与结构化查询语句SQL关联的参数值;将参数值转换为状态序列具体如下:
针对原始URL请求,将URL中GET和POST中的参数和取值解析出来,输出至步骤S404。
对于URL请求(即,本申请中的统一资源定位符请求)www.domain.com/page?key1=value1&key2=value2,解析之后得到两条结果,如下表:
表1
序号 URL 参数值
1 www.domain.com/page?key1=value1&key2=value2 value1
2 www.domain.com/page?key1=value1&key2=value2 value2
其中,本申请提供的与结构化查询语句SQL关联的参数值可以为上述URL中GET和POST中的参数和取值,即,表中的value1和value2。
步骤S404,将参数值转换为状态序列,其中,状态序列用于通过预设识别方式表示参数值;
具体的,基于步骤S402获取的参数值,将该参数值转换为状态序列,具体如下:
首先,通过Libinjection中的状态识别方法,将参数值表达为状态序列。其次,将得到的状态序列输入到GRAVES提出的递归神经网络模型中判断是否为SQL注入。该模型在训练阶段,通过带标签(是否为SQL注入)的状态序列进行训练。
举例说明:
状态序列生成:对于样本binary(1-binary(1))UNION SELECT 2--,通过状态识别得到状态序列为1o(1)UE1c。即,在本申请中状态序列用于描述样本,该规则可以包括:1用于表示所有数字,o表示符号,样本中的单词可以用首字母或中间字母表示,因此对于上述样本(1-binary(1))UNION SELECT 2-,则表示为:1o(1)UE1c。
需要说明的是,本申请通过Libinject ion中的状态识别方法,将参数值表达为状态序列,关于参数值转换为状态序列的规则仅以上述为例进行说明,以实现本申请提供的结构化查询语句SQL注入检测方法为准,具体不做限定。
步骤S406,基于对状态序列对应的判断条件,确定状态序列满足结构化查询语言注入操作;
具体的,基于对状态序列对应的判断条件,确定状态序列满足结构化查询语言注入操作包括:
Step1,通过预存模型判断状态序列是否满足结构化查询语言注入操作;
其中,通过预存模型判断状态序列是否满足结构化查询语言注入操作具体如下:
训练:对于每个训练样本A和标签A_label,首先得到状态序列B,然后将标签与状态序列合并得到带标签的状态序列C。
举例说明,对于样本binary(1-binary(1))UNION SELECT 2--,标签为1,状态序列为1o(1)UE1c,则训练所用带标签的状态序列C为:^1o(1)UE1c$1。具体做法为:在头部加^符号,尾部加$符号,并把标签加在$符号后面。将所有训练数据处理成带标签的状态序列后,训练递归神经网络得到模型M1。
测试:对于测试样本binary(1-binary(1))UNION SELECT 2--,首先得到状态序列1o(1)UE1c,其次首尾各加标志位得到^1o(1)UE1c$,输入到M1中预测得到是否为SQL注入的标签(0为正常,1为注入)。
Step2,在判断结果为是的情况下,得到满足结构化查询语言注入操作的状态序列。
具体的,在步骤S406之后,本申请提供的结构化查询语句SQL注入检测方法还包括:
步骤S408,依据预设告警过滤条件对结构化查询语言注入操作的状态序列进行过滤,得到满足预设告警过滤条件的状态序列。
具体的,以5-Gram(N=5)举例说明:
训练:取全量样本,每个训练样本分割为数个N-Gram片段。举例说明,对于样本’abcdefg’,其对应的5-Gram片段为{‘abcde’,’bcdef’,’cedfg’}。将全部样本分割后,统计样本中每个5-Gram出现次数,高于阈值的通过Bloom filter存储。
测试:对于每个样本’abcdefg’,首先将其分割为5-Gram片段{‘abcde’,’bcdef’,’cedfg’},根据每个片段是否在Bloom filter中出现,计算异常得分:
异常得分=出现在Bloom filter中的片段数/总5-Gram片段数
举例说明,对于样本’abcdefg’,若‘abcde’和’bcdef’出现在Bloom filter中,而’cedfg’没有,则得分为2/3=0.67。若威胁阈值为0.7,由于0.67<0.7,则判断样本’abcdefg’为威胁,流入下一环节。即,当异常得分为0.67时,说明样本’abcdefg’分割为5-Gram片段{‘abcde’,’bcdef’,’cedfg’}之后,异常得分小于预设的威胁阈值,说明该样本为罕见告警,本申请为了将大量相似的告警去除,故将该罕见告警对应的样本输出进行告警。
这里本申请实施例对应实施例1提供的SQL注入检测系统,步骤S402至步骤S408对应实施例1中SQL注入检测系统中的解析装置12、过滤装置14、检测装置16和告警装置18。
即,解析装置12对网页请求的解析,得到该网页请求中至少一个参数,再通过过滤装置14对该至少一个参数进行过滤,对于SQL语句无关的参数进行过滤,保留与SQL语句有关的至少一个参数;并由检测装置16通过将至少一个参数转换为状态序列,将得到的状态序列输入预存模型中进行学习,通过预存模型的学习分析以及判断,确定该状态序列是否为SQL注入操作的状态序列;若得到至少一个状态序列为SQL注入操作的状态序列,需通过预设告警过滤条件对该至少一个状态序列进行过滤,将满足告警条件且具备多数相同内容的至少一个状态序列进行过滤,保留满足告警条件且具备部分或少量内容的至少一个状态序列,其中,“多数”“部分或少量”可以通过设定阈值,过滤或保留满足告警条件的状态序列的个数。
在本申请实施例中,通过解析统一资源定位符请求,得到与结构化查询语句SQL关联的参数值;将参数值转换为状态序列,其中,状态序列为识别参数值是否SQL注入操作的输入量;基于判断条件,确定状态序列满足结构化查询语言注入操作,达到了准确识别SQL注入的目的,从而实现了提升识别SQL注入效率的技术效果,进而解决了由于相关技术中模型易受噪声干扰,导致识别SQL注入准确率低的技术问题。
可选的,步骤S402中解析统一资源定位符请求URL,得到与SQL关联的参数值包括:
Step1,解析统一资源定位符请求,得到统一资源定位符请求中的至少一个参数;
Step2,对至少一个参数进行过滤,得到与结构化查询语句关联的参数值。
可选的,步骤S402中的Step1中解析统一资源定位符请求,得到统一资源定位符请求中的至少一个参数包括:
步骤A,解析统一资源定位符请求中获取请求GET中的参数和传递请求POST中的参数。
具体的,如上述表1所示,获取URL中的GET请求中的参数和POST请求中的参数。
可选的,步骤S402中的Step2中对至少一个参数进行过滤,得到与结构化查询语句关联的参数值包括:
步骤A,依据预设结构化查询语言过滤条件对至少一个参数进行过滤,得到与结构化查询语句关联的参数值。
进一步地,可选的,步骤A中的依据预设结构化查询语言过滤条件对至少一个参数进行过滤,得到与结构化查询语句关联的参数值包括:
步骤1,在预设结构化查询语言过滤条件包括结构化查询语句关键字和/或正则表达式的情况下,依据结构化查询语句关键字和/或正则表达式过滤至少一个参数,得到与结构化查询语句关联的参数值。
具体的,步骤S402中Step2中的步骤A以及步骤A中的步骤1对应过滤装置14。
可选的,步骤S406中基于对状态序列对应的判断条件,确定状态序列满足结构化查询语言注入操作包括:
Step1,通过预存模型判断状态序列是否满足结构化查询语言注入操作;
Step2,在判断结果为是的情况下,得到满足结构化查询语言注入操作的状态序列;
其中,通过预存模型判断状态序列是否满足结构化查询语言注入操作包括:
步骤1,在预存模型包括神经网络模型的情况下,通过神经网络模型对状态序列进行学习,得到对应的数据模型;
步骤2,通过数据模型解析状态模型,判断状态序列是否为结构化查询语言注入操作;
可选的,步骤S406中Step2中的在判断结果为是的情况下,得到满足结构化查询语言注入操作的状态序列包括:
步骤1,在判断结果为是情况下,输出检测值为第一数值;
步骤2,在判断结果为否的情况下,输出检测值为第二数值;
步骤3,将检测值为第一数值的状态序列判定为结构化查询语言注入操作。
具体的,步骤S406中Step1中的步骤1和步骤2以及Step2中的步骤1至步骤3对应实施例1中的检测装置16。
可选的,步骤S408中依据预设告警过滤条件对结构化查询语言注入操作的状态序列进行过滤,得到满足预设告警过滤条件的状态序列包括:
Step1,在预设告警过滤条件包括对状态序列取全量样本过滤的方法的情况下,将状态序列分为至少一个片段,并统计至少一个片段的中相同部分出现的次数;
Step2,通过对次数进行评分,将评分小于预设阈值的状态序列判定为结构化查询语言注入操作;
Step3,将评分小于预设阈值的状态序列所对应的统一资源定位符进行告警。
进一步地,可选的,步骤S408中Step2中的通过对次数进行评分,将评分小于预设阈值的状态序列判定为结构化查询语言注入操作包括:
步骤A,判断至少一个片段是否为预设文件夹中的片段;
步骤B,在判断结果为至少一个片段与预设文件夹中的片段相同的情况下,对预设文件夹中的至少一个片段进行计数,得到预设文件夹中片段数;
步骤C,依据预设文件夹中片段数和总片段数之间的数学关系进行计算,得到评分;
步骤D,判断评分是否小于预设阈值;
步骤E,在判断结果为评分小于预设阈值的情况下,将评分小于预设阈值的状态序列判定为结构化查询语言注入操作。
具体的,步骤S410对应实施例1在的告警装置。
可选的,本申请实施例提供的结构化查询语句SQL注入检测方法还包括:
步骤S410,将告警信息发送至运维权限的终端,以使得运维权限的终端依据告警信息执行阻截SQL注入的操作以及维护。
实施例3
根据本申请实施例的另一方面,还提供了一种结构化查询语句SQL注入检测方法,包括:通过统一资源定位符请求,获取统一资源定位符请求中与结构化查询语句SQL关联的参数值对应的状态序列;通过预存模型获取满足结构化查询语言注入操作的状态序列;依据预设告警过滤条件过滤状态序列,得到满足预设告警过滤条件的状态序列。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的结构化查询语句SQL注入检测方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例4
根据本申请实施例的又一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述实施例2和3中的结构化查询语句SQL注入检测方法。
实施例5
根据本申请实施例的又一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述实施例2和3中的结构化查询语句SQL注入检测方法。
实施例6
根据本申请实施例的在又一方面,还提供了一种计算机终端,包括:处理器;以及存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:解析统一资源定位符请求,得到与结构化查询语句SQL关联的参数值;将参数值转换为状态序列,其中,状态序列用于通过预设识别方式表示参数值;基于判断条件,确定状态序列满足结构化查询语言注入操作。
实施例7
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的结构化查询语句SQL注入检测方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:解析统一资源定位符请求URL,得到与SQL关联的参数值;将参数值转换为状态序列,其中,状态序列用于通过预设识别方式表示参数值;基于对状态序列对应的判断条件,确定状态序列满足结构化查询语言注入操作。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:解析统一资源定位符请求URL,得到与SQL关联的参数值包括:解析统一资源定位符请求,得到统一资源定位符请求中的至少一个参数;对至少一个参数进行过滤得到与结构化查询语句关联的参数值。
进一步地,可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:解析统一资源定位符请求,得到统一资源定位符请求中的至少一个参数包括:解析统一资源定位符请求中获取请求GET中的参数和传递请求POST中的参数。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:对至少一个参数进行过滤,得到与结构化查询语句关联的参数值包括:依据预设结构化查询语言过滤条件对至少一个参数进行过滤,得到与结构化查询语句关联的参数值。
进一步地,可选的,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据预设结构化查询语言过滤条件对至少一个参数进行过滤,得到与结构化查询语句关联的参数值包括:在预设结构化查询语言过滤条件包括结构化查询语句关键字和/或正则表达式的情况下,依据结构化查询语句关键字和/或正则表达式过滤至少一个参数,得到与结构化查询语句关联的参数值。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:基于对状态序列对应的判断条件,确定状态序列满足结构化查询语言注入操作包括:通过预存模型判断状态序列是否满足结构化查询语言注入操作;在判断结果为是的情况下,得到满足结构化查询语言注入操作的状态序列;其中,通过预存模型判断状态序列是否满足结构化查询语言注入操作包括:在预存模型包括神经网络模型的情况下,通过神经网络模型对状态序列进行学习,得到对应的数据模型;通过数据模型解析状态模型,判断状态序列是否为结构化查询语言注入操作。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在判断结果为是的情况下,得到满足结构化查询语言注入操作的状态序列包括:在判断结果为是情况下,输出检测值为第一数值;在判断结果为否的情况下,输出检测值为第二数值;将检测值为第一数值的状态序列判定为结构化查询语言注入操作。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在确定状态序列满足结构化查询语言注入操作之后,依据预设告警过滤条件对结构化查询语言注入操作的状态序列进行过滤,得到满足预设告警过滤条件的状态序列。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:依据预设告警过滤条件对结构化查询语言注入操作的状态序列进行过滤,得到满足预设告警过滤条件的状态序列包括:在预设告警过滤条件包括对状态序列取全量样本过滤的方法的情况下,将状态序列分为至少一个片段,并统计至少一个片段的中相同部分出现的次数;通过对次数进行评分,将评分小于预设阈值的状态序列判定为结构化查询语言注入操作;将评分小于预设阈值的状态序列所对应的统一资源定位符进行告警。
进一步地,可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:通过对次数进行评分,将评分小于预设阈值的状态序列判定为结构化查询语言注入操作包括:判断至少一个片段是否为预设文件夹中的片段;在判断结果为至少一个片段与预设文件夹中的片段相同的情况下,对预设文件夹中的至少一个片段进行计数,得到预设文件夹中片段数;依据预设文件夹中片段数和总片段数之间的数学关系进行计算,得到评分;判断评分是否小于预设阈值;在判断结果为评分小于预设阈值的情况下,将评分小于预设阈值的状态序列判定为结构化查询语言注入操作。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:将告警信息发送至运维权限的终端,以使得运维权限的终端依据告警信息执行阻截SQL注入的操作以及维护。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (13)

1.一种结构化查询语句SQL注入检测方法,其特征在于,包括:
解析统一资源定位符请求URL,得到与SQL关联的参数值;
将所述参数值转换为状态序列,其中,所述状态序列用于通过预设识别方式表示所述参数值;
基于对所述状态序列对应的判断条件,确定所述状态序列满足结构化查询语言注入操作,依据预设告警过滤条件对所述结构化查询语言注入操作的状态序列进行过滤,得到满足所述预设告警过滤条件的状态序列,其中,在所述预设告警过滤条件包括对所述状态序列取全量样本过滤的方法的情况下,所述状态序列分为至少一个片段,统计所述至少一个片段中相同部分出现的次数,并对所述次数进行评分,将所述评分小于预设阈值的状态序列判定为结构化查询语言注入操作;
与SQL关联的参数值包括:URL中GET和POST中的参数和取值。
2.根据权利要求1所述的结构化查询语句SQL注入检测方法,其特征在于,所述解析统一资源定位符请求URL,得到与SQL关联的参数值包括:
解析统一资源定位符请求,得到所述统一资源定位符请求中的至少一个参数;
对所述至少一个参数进行过滤,得到与结构化查询语句关联的参数值。
3.根据权利要求2所述的结构化查询语句SQL注入检测方法,其特征在于,所述解析统一资源定位符请求,得到所述统一资源定位符请求中的至少一个参数包括:
解析所述统一资源定位符请求中获取请求GET中的参数和传递请求POST中的参数。
4.根据权利要求2所述的结构化查询语句SQL注入检测方法,其特征在于,所述对所述至少一个参数进行过滤,得到与结构化查询语句关联的参数值包括:
依据预设结构化查询语言过滤条件对所述至少一个参数进行过滤,得到与结构化查询语句关联的参数值。
5.根据权利要求4所述的结构化查询语句SQL注入检测方法,其特征在于,所述依据预设结构化查询语言过滤条件对所述至少一个参数进行过滤,得到与结构化查询语句关联的参数值包括:
在所述预设结构化查询语言过滤条件包括结构化查询语句关键字和/或正则表达式的情况下,依据所述结构化查询语句关键字和/或所述正则表达式过滤所述至少一个参数,得到所述与结构化查询语句关联的参数值。
6.根据权利要求1所述的结构化查询语句SQL注入检测方法,其特征在于,基于对所述状态序列对应的判断条件,确定所述状态序列满足结构化查询语言注入操作包括:
通过预存模型判断所述状态序列是否满足结构化查询语言注入操作;
在判断结果为是的情况下,得到满足所述结构化查询语言注入操作的状态序列;
其中,所述通过预存模型判断所述状态序列是否满足结构化查询语言注入操作包括:
在所述预存模型包括神经网络模型的情况下,通过所述神经网络模型对所述状态序列进行学习,得到对应的数据模型;
通过所述数据模型解析所述状态序列,判断所述状态序列是否为结构化查询语言注入操作。
7.根据权利要求6所述的结构化查询语句SQL注入检测方法,其特征在于,所述在判断结果为是的情况下,得到满足所述结构化查询语言注入操作的状态序列包括:
在判断结果为是情况下,输出检测值为第一数值;
在判断结果为否的情况下,输出检测值为第二数值;
将所述检测值为第一数值的状态序列判定为所述结构化查询语言注入操作。
8.根据权利要求1所述的结构化查询语句SQL注入检测方法,其特征在于,所述依据预设告警过滤条件对所述结构化查询语言注入操作的状态序列进行过滤,得到满足所述预设告警过滤条件的状态序列还包括:
将所述评分小于预设阈值的状态序列作为告警信息进行告警。
9.根据权利要求8所述的结构化查询语句SQL注入检测方法,其特征在于,所述通过对所述次数进行评分,将评分小于预设阈值的状态序列判定为结构化查询语言注入操作包括:
判断所述至少一个片段是否为预设文件夹中的片段;
在判断结果为所述至少一个片段与预设文件夹中的片段相同的情况下,对所述预设文件夹中的至少一个片段进行计数,得到所述预设文件夹中片段数;
依据所述预设文件夹中片段数和总片段数之间的数学关系进行计算,得到评分;
判断所述评分是否小于所述预设阈值;
在判断结果为所述评分小于所述预设阈值的情况下,将所述评分小于预设阈值的状态序列判定为结构化查询语言注入操作。
10.根据权利要求9所述的结构化查询语句SQL注入检测方法,其特征在于,所述方法还包括:
将所述告警信息发送至运维权限的终端,以使得所述运维权限的终端依据所述告警信息执行阻截SQL注入的操作以及维护。
11.一种结构化查询语句SQL注入检测方法,其特征在于,包括:
通过统一资源定位符请求,获取所述统一资源定位符请求中与结构化查询语句SQL关联的参数值对应的状态序列,其中,所述状态序列用于通过预设识别方式表示所述参数值;
通过预存模型获取满足所述结构化查询语言注入操作的状态序列;
依据预设告警过滤条件过滤所述状态序列,得到满足所述预设告警过滤条件的状态序列,在所述预设告警过滤条件包括对所述状态序列取全量样本过滤的方法的情况下,所述状态序列分为至少一个片段,统计所述至少一个片段中相同部分出现的次数,并对所述次数进行评分,将所述评分小于预设阈值的状态序列判定为结构化查询语言注入操作;
与SQL关联的参数值包括:URL中GET和POST中的参数和取值。
12.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至10中任意一项所述的结构化查询语句SQL注入检测方法。
13.一种计算机终端,其特征在于,包括:
处理器;以及
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:解析统一资源定位符请求URL,得到与SQL关联的参数值;将所述参数值转换为状态序列,其中,所述状态序列用于通过预设识别方式表示所述参数值;基于对所述状态序列对应的判断条件,确定所述状态序列满足结构化查询语言注入操作,依据预设告警过滤条件对所述结构化查询语言注入操作的状态序列进行过滤,得到满足所述预设告警过滤条件的状态序列,在所述预设告警过滤条件包括对所述状态序列取全量样本过滤的方法的情况下,所述状态序列分为至少一个片段,统计所述至少一个片段中相同部分出现的次数,并对所述次数进行评分,将所述评分小于预设阈值的状态序列判定为结构化查询语言注入操作;与SQL关联的参数值包括:URL中GET和POST中的参数和取值。
CN201711279557.3A 2017-12-06 2017-12-06 结构化查询语句sql注入检测方法和系统 Active CN109889471B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711279557.3A CN109889471B (zh) 2017-12-06 2017-12-06 结构化查询语句sql注入检测方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711279557.3A CN109889471B (zh) 2017-12-06 2017-12-06 结构化查询语句sql注入检测方法和系统

Publications (2)

Publication Number Publication Date
CN109889471A CN109889471A (zh) 2019-06-14
CN109889471B true CN109889471B (zh) 2022-02-25

Family

ID=66924393

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711279557.3A Active CN109889471B (zh) 2017-12-06 2017-12-06 结构化查询语句sql注入检测方法和系统

Country Status (1)

Country Link
CN (1) CN109889471B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110321711B (zh) * 2019-07-05 2021-01-29 杭州安恒信息技术股份有限公司 检测应用服务器sql注入点的方法及系统
CN112100617B (zh) * 2020-09-15 2023-11-24 全球能源互联网研究院有限公司 一种异常sql检测方法及装置
CN114911821B (zh) * 2022-04-20 2024-05-24 平安国际智慧城市科技股份有限公司 一种结构化查询语句的生成方法、装置、设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9142102B2 (en) * 2013-07-02 2015-09-22 Icf International Method and apparatus for visualizing network security alerts
CN106991322A (zh) * 2016-01-21 2017-07-28 北京启明星辰信息安全技术有限公司 一种结构化查询语言sql注入攻击的检测方法和装置
CN107292170B (zh) * 2016-04-05 2021-06-22 阿里巴巴集团控股有限公司 Sql注入攻击的检测方法及装置、系统
CN106131071B (zh) * 2016-08-26 2019-06-04 北京奇虎科技有限公司 一种Web异常检测方法和装置
CN107273465A (zh) * 2017-06-05 2017-10-20 环球智达科技(北京)有限公司 Sql注入检测方法

Also Published As

Publication number Publication date
CN109889471A (zh) 2019-06-14

Similar Documents

Publication Publication Date Title
US10033757B2 (en) Identifying malicious identifiers
US20170026390A1 (en) Identifying Malware Communications with DGA Generated Domains by Discriminative Learning
CN107292170B (zh) Sql注入攻击的检测方法及装置、系统
US20220197923A1 (en) Apparatus and method for building big data on unstructured cyber threat information and method for analyzing unstructured cyber threat information
CN107341399B (zh) 评估代码文件安全性的方法及装置
CN109582833B (zh) 异常文本检测方法及装置
CN109889471B (zh) 结构化查询语句sql注入检测方法和系统
US9785631B2 (en) Identification and extraction of acronym/definition pairs in documents
CN114172701A (zh) 基于知识图谱的apt攻击检测方法及装置
CN112989348B (zh) 攻击检测方法、模型训练方法、装置、服务器及存储介质
CN103324745A (zh) 基于贝叶斯模型的文本垃圾识别方法和系统
CN111262730B (zh) 一种告警信息的处理方法及装置
CN107016298B (zh) 一种网页篡改监测方法及装置
CN113486350B (zh) 恶意软件的识别方法、装置、设备及存储介质
CN111813960A (zh) 基于知识图谱的数据安全审计模型装置、方法及终端设备
CN107239694A (zh) 一种基于用户评论的Android应用权限推理方法及装置
CN110868419A (zh) Web后门攻击事件的检测方法、装置及电子设备
CN114357190A (zh) 一种数据检测方法、装置、电子设备及存储介质
CN115271407A (zh) 基于人工智能的工业互联网数据处理方法及系统
CN114915468A (zh) 基于知识图谱的网络犯罪智能分析检测方法
CN112069305B (zh) 数据筛选方法、装置及电子设备
CN113918936A (zh) Sql注入攻击检测的方法以及装置
CN116821903A (zh) 检测规则确定及恶意二进制文件检测方法、设备及介质
CN111125704A (zh) 一种网页挂马识别方法及系统
CN113688240B (zh) 威胁要素提取方法、装置、设备及存储介质

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
GR01 Patent grant
GR01 Patent grant