CN112100617B - 一种异常sql检测方法及装置 - Google Patents

一种异常sql检测方法及装置 Download PDF

Info

Publication number
CN112100617B
CN112100617B CN202010970567.7A CN202010970567A CN112100617B CN 112100617 B CN112100617 B CN 112100617B CN 202010970567 A CN202010970567 A CN 202010970567A CN 112100617 B CN112100617 B CN 112100617B
Authority
CN
China
Prior art keywords
sql
sentence
detected
determining
abnormal
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
CN202010970567.7A
Other languages
English (en)
Other versions
CN112100617A (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.)
Nanjing University
State Grid Corp of China SGCC
Global Energy Interconnection Research Institute
Electric Power Research Institute of State Grid Fujian Electric Power Co Ltd
Original Assignee
Nanjing University
State Grid Corp of China SGCC
Global Energy Interconnection Research Institute
Electric Power Research Institute of State Grid Fujian Electric Power Co 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 Nanjing University, State Grid Corp of China SGCC, Global Energy Interconnection Research Institute, Electric Power Research Institute of State Grid Fujian Electric Power Co Ltd filed Critical Nanjing University
Priority to CN202010970567.7A priority Critical patent/CN112100617B/zh
Publication of CN112100617A publication Critical patent/CN112100617A/zh
Application granted granted Critical
Publication of CN112100617B publication Critical patent/CN112100617B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请提供一种异常SQL检测方法及装置,该方法包括:获取待检测SQL语句;对待检测SQL语句进行特征提取,确定待检测SQL语句对应的第一特征向量;基于预设的哈希函数,确定第一特征向量对应的哈希编码;根据哈希编码,确定待检测SQL语句在预设的哈希库中所对应的多个近邻语句;分别计算第一特征向量与各近邻语句所对应的第二特征向量之间的距离;根据距离的升序排序结果,确定预设数量的目标语句;根据各目标语句的预设语句标签,确定待检测SQL语句的检测结果。通过确定待检测SQL语句的邻近语句,根据待检测SQL语句与各邻近语句之间的距离,进一步确定目标语句,在保证了检测精度的同时,提高了检测效率。

Description

一种异常SQL检测方法及装置
技术领域
本申请涉及网络安全技术领域,尤其涉及一种异常SQL检测方法及装置。
背景技术
随着互联网的发展,作为网络安全领域中一种常见的攻击手段,异常SQL,造成了越来越多的网络安全问题。为了保护用户免受由异常SQL引发的隐私泄漏、服务崩溃等问题的困扰,异常SQL检测成为研究者广泛关注的研究热点。
在现有技术中,通常基于统计的方法对SQL语句进行异常检测,例如可以统计一定周期内的SQL语句出现的频率,频率过高或过低可视为异常。
但是,由于目前网络环境中的数据规模较大,且在逐年增长,然而现有技术中的SQL异常检测方法的检测效率相对较低,不适用于数据规模较大的网络环境。因此,急需一种检测效率较高的异常SQL检测方法,对提高网络环境的安全性有重要意义。
发明内容
本申请提供一种异常SQL检测方法及装置,以解决现有技术中的SQL异常检测方法的检测效率低等缺陷。
本申请第一个方面提供一种异常SQL检测方法,包括:
获取待检测SQL语句;
对所述待检测SQL语句进行特征提取,确定所述待检测SQL语句对应的第一特征向量;
基于预设的哈希函数,确定所述第一特征向量对应的哈希编码;
根据所述哈希编码,确定所述待检测SQL语句在预设的哈希库中所对应的多个近邻语句;
分别计算所述第一特征向量与各近邻语句所对应的第二特征向量之间的距离;
根据所述距离的升序排序结果,确定预设数量的目标语句;
根据各目标语句的预设语句标签,确定所述待检测SQL语句的检测结果。
可选的,所述基于预设的哈希函数,确定所述第一特征向量对应的哈希编码,包括:
采用等方差哈希方法,确定降维矩阵及等方差哈希函数;
采用所述降维矩阵对所述第一特征向量进行降维处理,得到降维后的第一特征向量;
根据所述等方差哈希函数及所述降维后的第一特征向量,得到所述哈希编码。
可选的,所述对所述待检测SQL语句进行特征提取,确定所述待检测SQL语句对应的第一特征向量,包括:
采用预设SQL语法分析算法,对所述待检测SQL语句进行语法分析,得到语法树;
基于预设的词袋模型,在所述语法树中提取所述待检测SQL语句的语法特征,生成所述第一特征向量。
可选的,在根据所述哈希编码,确定所述待检测SQL语句在预设的哈希库中所对应的多个近邻语句之前,所述方法还包括:
获取多个SQL语句样本;
根据各SQL语句样本所对应的第三特征向量和所述哈希函数,确定所述各SQL语句样本所对应的样本哈希编码;
根据所述各SQL语句样本所对应的样本哈希编码,构建所述哈希库。
可选的,所述根据所述哈希编码,确定所述待检测SQL语句在预设的哈希库中所对应的多个近邻语句,包括:
基于海明排序算法,计算所述待检测SQL语句对应的哈希编码与所述哈希库中各样本哈希编码之间的海明距离;
根据所述海明距离筛选满足预设距离要求的所有样本哈希编码;
将与筛选出的样本哈希编码相对应的SQL语句样本确定为所述近邻语句。
可选的,所述根据各目标语句的预设语句标签,确定所述待检测SQL语句的检测结果,包括:
获取各目标语句的预设语句标签的标签内容,并根据标签内容构建语句标签集合,所述标签内容包括正常标签和异常标签;
判断所述标签集合中正常标签的数量是否大于异常标签的数量;
当所述标签集合中正常标签的数量大于异常标签的数量时,确定所述待检测SQL语句为正常语句;
当所述标签集合中正常标签的数量不大于异常标签的数量时,确定所述待检测SQL语句为异常语句。
可选的,所述方法还包括:
当确定所述待检测SQL语句为异常语句时,生成异常报警信息。
本申请第二个方面提供一种异常SQL检测装置,包括:
获取模块,用于获取待检测SQL语句;
特征提取模块,用于对所述待检测SQL语句进行特征提取,确定所述待检测SQL语句对应的第一特征向量;
编码模块,用于基于预设的哈希函数,确定所述第一特征向量对应的哈希编码;
第一确定模块,用于根据所述哈希编码,确定所述待检测SQL语句在预设的哈希库中所对应的多个近邻语句;
计算模块,用于分别计算所述第一特征向量与各近邻语句所对应的第二特征向量之间的距离;
第二确定模块,用于根据所述距离的升序排序结果,确定预设数量的目标语句;
检测模块,用于根据各目标语句的预设语句标签,确定所述待检测SQL语句的检测结果。
可选的,所述编码模块,具体用于:
采用等方差哈希方法,确定降维矩阵及等方差哈希函数;
采用所述降维矩阵对所述第一特征向量进行降维处理,得到降维后的第一特征向量;
根据所述等方差哈希函数及所述降维后的第一特征向量,得到所述哈希编码。
可选的,所述特征提取模块,具体用于:
采用预设SQL语法分析算法,对所述待检测SQL语句进行语法分析,得到语法树;
基于预设的词袋模型,在所述语法树中提取所述待检测SQL语句的语法特征,生成所述第一特征向量。
可选的,所述第一确定模块,还用于:
获取多个SQL语句样本;
根据各SQL语句样本所对应的第三特征向量和所述哈希函数,确定所述各SQL语句样本所对应的样本哈希编码;
根据所述各SQL语句样本所对应的样本哈希编码,构建所述哈希库。
可选的,所述第一确定模块,具体用于:
基于海明排序算法,计算所述待检测SQL语句对应的哈希编码与所述哈希库中各样本哈希编码之间的海明距离;
根据所述海明距离筛选满足预设距离要求的所有样本哈希编码;
将与筛选出的样本哈希编码相对应的SQL语句样本确定为所述近邻语句。
可选的,所述检测模块,具体用于:
获取各目标语句的预设语句标签的标签内容,并根据标签内容构建语句标签集合,所述标签内容包括正常标签和异常标签;
判断所述标签集合中正常标签的数量是否大于异常标签的数量;
当所述标签集合中正常标签的数量大于异常标签的数量时,确定所述待检测SQL语句为正常语句;
当所述标签集合中正常标签的数量不大于异常标签的数量时,确定所述待检测SQL语句为异常语句。
可选的,所述装置还包括:
报警模块,用于当确定所述待检测SQL语句为异常语句时,生成异常报警信息。
本申请第三个方面提供一种,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一个方面以及第一个方面各种可能的设计所述的方法。
本申请第四个方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一个方面以及第一个方面各种可能的设计所述的方法。
本申请技术方案,具有如下优点:
本申请提供的异常SQL检测方法及装置,通过获取待检测SQL语句;对待检测SQL语句进行特征提取,确定待检测SQL语句对应的第一特征向量;基于预设的哈希函数,确定第一特征向量对应的哈希编码;根据哈希编码,确定待检测SQL语句在预设的哈希库中所对应的多个近邻语句;分别计算第一特征向量与各近邻语句所对应的第二特征向量之间的距离;根据距离的升序排序结果,确定预设数量的目标语句;根据各目标语句的预设语句标签,确定待检测SQL语句的检测结果。上述方案提供的异常SQL检测方法,通过确定当前待检测SQL语句的邻近语句,并根据当前待检测SQL语句与各邻近语句之间的距离,进一步确定目标语句,在保证了检测精度的同时,提高了检测效率,为提高网络环境的安全性奠定了基础。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例基于的异常SQL检测系统的结构示意图;
图2为本申请实施例提供的异常SQL检测方法的流程示意图;
图3为本申请实施例提供的示例性的哈希库构建方法的流程示意图;
图4为本申请实施例提供的示例性的哈希库更新方法的流程示意图;
图5为本申请实施例提供的示例性的异常SQL检测方法的流程示意图;
图6为本申请实施例提供的异常SQL检测装置的结构示意图;
图7为本申请实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
在现有技术中,通常是基于统计的方法对SQL语句进行异常检测,例如可以统计一定周期内的SQL语句出现的频率,频率过高或过低可视为异常。但是,由于目前网络环境中的数据规模较大,且在逐年增长,然而现有技术中的SQL异常检测方法的检测效率相对较低,不适用于数据规模较大的网络环境。
针对上述问题,本申请实施例提供的异常SQL检测方法及装置,通过获取待检测SQL语句;对待检测SQL语句进行特征提取,确定待检测SQL语句对应的第一特征向量;基于预设的哈希函数,确定第一特征向量对应的哈希编码;根据哈希编码,确定待检测SQL语句在预设的哈希库中所对应的多个近邻语句;分别计算第一特征向量与各近邻语句所对应的第二特征向量之间的距离;根据距离的升序排序结果,确定预设数量的目标语句;根据各目标语句的预设语句标签,确定待检测SQL语句的检测结果。上述方案提供的异常SQL检测方法,通过确定当前待检测SQL语句的邻近语句,并根据当前待检测SQL语句与各邻近语句之间的距离,进一步确定目标语句,在保证了检测精度的同时,提高了检测效率,为提高网络环境的安全性奠定了基础。
下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明实施例进行描述。
首先,对本申请所基于的异常SQL检测系统的结构进行说明:
本申请实施例提供的异常SQL检测方法及装置,适用于对网络环境中的SQL语句进行异常检测。如图1所示,为本申请实施例基于的异常SQL检测系统的结构示意图,主要包括客户端、服务器和用于进行异常SQL检测的异常SQL检测装置。其中,异常SQL检测装置可以部署在服务器上。具体地,在客户端向服务器发送SQL语句的过程中,可以基于异常SQL检测装置对SQL语句进行异常检测,以判断当前客户端所发送的SQL语句是否为恶意攻击语句,从而为网络安全提供了保障。
本申请实施例提供了一种异常SQL检测方法,用于对网络环境中的SQL语句进行异常检测。本申请实施例的执行主体为电子设备,比如服务器、台式电脑、笔记本电脑、平板电脑及其他可用于进行异常SQL检测的电子设备。
如图2所示,为本申请实施例提供的异常SQL检测方法的流程示意图,该方法包括:
步骤201,获取待检测SQL语句。
其中,待检测SQL语句可以是当前客户端向服务器发送的SQL语句,也可以是服务器中所存储的历史SQL语句,具体本申请实施例不做限定。
步骤202,对待检测SQL语句进行特征提取,确定待检测SQL语句对应的第一特征向量。
其中,由于一条待检测SQL语句中包括的冗余数据较多,若直接对当前待检测SQL语句进行语法特征的提取,并确定其对应的第一特征向量,将严重影响后续语法特征提取效率和向量化处理效率,不利于保证异常SQL检测的检测效率。
为了解决上述问题,具体地,在一实施例中,可以采用预设SQL语法分析算法,对待检测SQL语句进行语法分析,得到语法树;基于预设的词袋模型,在语法树中提取待检测SQL语句的语法特征,生成第一特征向量。
具体地,本申请实施例通过在对待检测SQL语句进行语法特征提取前,采用预设SQL语法分析算法对其进行语法分析,以获得对应的语法树。其中,在语法树建立的过程中,可以根据待检测SQL语句中各数据之间的语法关系,确定冗余数据,并对其进行剔除处理,以降低其冗余性,为提高后续的语法特征提取效率和向量化处理效率奠定了基础。
其中,本申请实施例所提供的语法特征可以是待检测SQL语句中的词数据。具体地,基于预设的词袋模型,对语法树中的词数据进行提取,以获得对应的词数据集合,即语法特征集合。其中,语法特征集合中包括多个词数据和各词数据对应的出现次数。进一步的,根据语法特征集合生成对应的第一特征向量。
步骤203,基于预设的哈希函数,确定第一特征向量对应的哈希编码。
其中,为了便于后续的海明距离等计算操作,以提高后续的排序结果的准确性,进而提高检测结果的准确性,当哈希编码中出现-1时,将编码-1替换为编码0。其中,哈希函数可以根据实际需求进行设定,本申请实施例不做限定。
步骤204,根据哈希编码,确定待检测SQL语句在预设的哈希库中所对应的多个近邻语句。
需要解释的是,哈希库可以是预先建立的样本数据库。
具体地,在一实施例中,在执行步骤204之前,可以获取多个SQL语句样本;根据各SQL语句样本所对应的第三特征向量和哈希函数,确定各SQL语句样本所对应的样本哈希编码;根据各SQL语句样本所对应的样本哈希编码,构建哈希库。
其中,哈希库中主要存储各SQL语句样本所对应的样本哈希编码,并根据历史异常SQL检测结果进行实时更新。其中,哈希库中可以存储样本哈希编码,也可以存储其对应的SQL语句样本,其中,样本哈希编码与SQL语句样本相对应。类似的,为了缓解哈希库的存储压力,哈希库中也可以仅存储样本哈希编码,各样本哈希编码对应的SQL语句样本可以存储至其他数据库,如语句库等。
示例性的,如图3所示,为本申请实施例提供的示例性的哈希库构建方法的流程示意图,其中,内存数据库具体指哈希库,外存数据库具体指语句库。相应的,如图4所示,为本申请实施例提供的示例性的哈希库更新方法的流程示意图,具体地,在进行异常SQL检测的过程中,根据各待检测SQL语句的检测结果,将其作为新的SQL语句样本,并对应的添加至哈希库中,以对哈希库进行更新。其中,图3和图4具体为上述实施例的一种示例性的操作流程,在此不在赘述。
相应的,为了提高本申请实施例所提供的异常SQL检测方法的精度,可以基于海明排序算法,计算待检测SQL语句对应的哈希编码与哈希库中各样本哈希编码之间的海明距离;根据海明距离筛选满足预设距离要求的所有样本哈希编码;将与筛选出的样本哈希编码相对应的SQL语句样本确定为近邻语句。
需要解释的是,预设距离要求可以根据实际情况进行设定,具体可以根据实际情况设置海明距离阈值,进一步的,在海明距离达到海明距离阈值的多个样本哈希编码中,根据海明距离排序结果,选取k个样本哈希编码,所选取的k个样本哈希编码所对应的SQL语句样本即为邻近语句。其中,k的具体取值可以根据实际情况进行设定。
其中,当海明距离达到海明距离阈值的样本哈希编码的数量小于k时,可以直接将其对应的SQL语句样本作为邻近语句。类似的,即便海明距离达到海明距离阈值的样本哈希编码的数量大于或等于k,也可以直接将其对应的SQL语句样本作为邻近语句,具体本申请实施例不做限定。
具体地,在一实施例中,为了进一步提高邻近语句的确定效率,可以采用海明排序技术确定邻近语句,其中,海明排序技术是指基于异或运算的快速计算海明距离并进行排序的技术,具体计算公式如下:
其中,bi,bj表示哈希编码,按位进行异或运算。
步骤205,分别计算第一特征向量与各近邻语句所对应的第二特征向量之间的距离。
需要解释的是,根据海明距离确定邻近语句通常会得到大量的邻近语句,且邻近语句之间的排序关系通常较为粗糙。为了进一步提高检测结果的准确性,可以通过进一步计算各邻近语句与待检测SQL语句之间的距离,以实现进一步的筛选。其中,上述距离可以是欧氏距离、余弦距离或马氏距离等。
步骤206,根据距离的升序排序结果,确定预设数量的目标语句。
具体地,根据各邻近语句与待检测SQL语句之间的距离,将距离相对较小的预设数量的邻近语句作为目标语句。
步骤207,根据各目标语句的预设语句标签,确定待检测SQL语句的检测结果。
具体地,在一实施例中,可以获取各目标语句的预设语句标签的标签内容,并根据标签内容构建语句标签集合,标签内容包括正常标签和异常标签;判断标签集合中正常标签的数量是否大于异常标签的数量;当标签集合中正常标签的数量大于异常标签的数量时,确定待检测SQL语句为正常语句;当标签集合中正常标签的数量不大于异常标签的数量时,确定待检测SQL语句为异常语句。
类似的,也可以根据语句标签集合中正常标签与异常标签之间的比例确定待检测SQL语句的检测结果。具体地,当正常标签的数量/异常标签的数量大于或等于1,确定待检测SQL语句为正常语句,反之,则确定待检测SQL语句为异常语句。
在上述实施例的基础上,由于第一特征向量通常为高维向量,为了提高其检测效率,可以采用等方差哈希方法,确定降维矩阵及等方差哈希函数;采用降维矩阵对第一特征向量进行降维处理,得到降维后的第一特征向量;根据等方差哈希函数及降维后的第一特征向量,得到哈希编码。
需要解释的是,等方差哈希方法为本申请实施例提供的一种哈希学习方法,具体也可以根据实际情况采用其他哈希学习方法,本申请实施例不做限定。
其中,由于第一特征向量在经过降维处理后,每个维度所携带的信息量发生了变化,为了保证检测结果的准确性,可以进一步对预设的哈希函数进行优化处理,以获得对应的等方差哈希函数。
示例性的,若所确定的降维矩阵为W∈Rd×c,其中,R表示实数。则可以通过将Rd空间中的第一特征向量投影到Rc空间中,以得到第一特征向量在Rc空间中对应的特征集合E。
进一步的,为所得到的特征集合E建立并学习对应的正交矩阵Q∈Rc×c,具体可以令QTETEQ∈Y(a)。
其中,Y(z)={T∈Rc×c|diag(T)=diag(z)},其中,diag(·)表示对角矩阵,向量a表示特征集合E中排序靠前的c个特征值的平均值所组成的c维向量,Y(z)表示预设的以z为自变量的函数,Y(a)表示当自变量z=a时对应的函数值。其中,c的具体数值可以根据实际情况进行设定,本申请实施例不做限定。
进一步的,根据所确定的正交矩阵Q,建立训练集合:
M(Λ)={QTΛQ|QTQ=I}
其中,Λ=ETE。
进一步的,根据所建立的训练集合确定等方差哈希方法的优化目标函数:
其中,T和Z表示需要学习的哈希参数,具体是指需要学习的参数矩阵,其中,参数T具体可以表示为矩阵T,参数Z具体可以表示为矩阵Z。具体地,可以采用交替优化方法来学习该优化目标函数中所包含的T和Z,例如,在给定参数T时,学习参数Z;反之,在给定参数Z时,学习参数T。
具体地,当参数Z固定时,使用如下公式更新参数T:
其中,k和k+1表示变量的迭代次数,Tij(k)表示迭代第k轮时矩阵T第i行第j列的元素,ai表示向量a的第i个元素。假设当前迭代轮数为k,令T(k)表示参数T第k轮迭代时的值,当T(k)固定时,首先对参数T(k)进行特征值分解:进一步通过/>确定参数Z第k轮迭代时的值Z(K)。最终得到的等方差哈希函数:
h(e)=sign(QTWTe)
其中,e表示特征集合E中的元素。
示例性的,如图5所示,为本申请实施例提供的示例性的异常SQL检测方法的流程示意图,其中,图5中的重排序具体是指本申请实施例提供的根据距离对邻近语句进行排序,图5所示的异常SQL检测方法是图2所示异常SQL检测方法的一种示例性操作流程,二者原理相同,不再赘述。
在上述实施例的基础上,为了进一步提高网络环境的安全性,在一实施例中,可以当确定待检测SQL语句为异常语句时,生成异常报警信息。
进一步的,对所生成的异常报警信息进行报出处理,以提醒相关操作人员及时采取相应的安全措施。其中,异常报警信息的报出方式可以是短信报出、警示灯报出或警示音报出等,具体本申请实施例不做限定。
本申请实施例提供的异常SQL检测方法及装置,通过获取待检测SQL语句;对待检测SQL语句进行特征提取,确定待检测SQL语句对应的第一特征向量;基于预设的哈希函数,确定第一特征向量对应的哈希编码;根据哈希编码,确定待检测SQL语句在预设的哈希库中所对应的多个近邻语句;分别计算第一特征向量与各近邻语句所对应的第二特征向量之间的距离;根据距离的升序排序结果,确定预设数量的目标语句;根据各目标语句的预设语句标签,确定待检测SQL语句的检测结果。上述方案提供的异常SQL检测方法,通过确定当前待检测SQL语句的邻近语句,并根据当前待检测SQL语句与各邻近语句之间的距离,进一步确定目标语句,在保证了检测精度的同时,提高了检测效率,为提高网络环境的安全性奠定了基础。
本申请实施例提供了一种异常SQL检测装置,用于执行上述实施例提供的异常SQL检测方法。
如图6所示,为本申请实施例提供的异常SQL检测装置的结构示意图。该异常SQL检测装置60包括获取模块601、特征提取模块602、编码模块603、第一确定模块604、计算模块605、第二确定模块606和检测模块607。
其中,获取模块601,用于获取待检测SQL语句;特征提取模块602,用于对待检测SQL语句进行特征提取,确定待检测SQL语句对应的第一特征向量;编码模块603,用于基于预设的哈希函数,确定第一特征向量对应的哈希编码;第一确定模块604,用于根据哈希编码,确定待检测SQL语句在预设的哈希库中所对应的多个近邻语句;计算模块605,用于分别计算第一特征向量与各近邻语句所对应的第二特征向量之间的距离;第二确定模块606,用于根据距离的升序排序结果,确定预设数量的目标语句;检测模块607,用于根据各目标语句的预设语句标签,确定待检测SQL语句的检测结果。
具体地,在一实施例中,编码模块603,具体用于:
采用等方差哈希方法,确定降维矩阵及等方差哈希函数;
采用降维矩阵对第一特征向量进行降维处理,得到降维后的第一特征向量;
根据等方差哈希函数及降维后的第一特征向量,得到哈希编码。
具体地,在一实施例中,特征提取模块602,具体用于:
采用预设SQL语法分析算法,对待检测SQL语句进行语法分析,得到语法树;
基于预设的词袋模型,在语法树中提取待检测SQL语句的语法特征,生成第一特征向量。
具体地,在一实施例中,第一确定模块604,还用于:
获取多个SQL语句样本;
根据各SQL语句样本所对应的第三特征向量和哈希函数,确定各SQL语句样本所对应的样本哈希编码;
根据各SQL语句样本所对应的样本哈希编码,构建哈希库。
具体地,在一实施例中,第一确定模块604,具体用于:
基于海明排序算法,计算待检测SQL语句对应的哈希编码与哈希库中各样本哈希编码之间的海明距离;
根据海明距离筛选满足预设距离要求的所有样本哈希编码;
将与筛选出的样本哈希编码相对应的SQL语句样本确定为近邻语句。
具体地,在一实施例中,检测模块607,具体用于:
获取各目标语句的预设语句标签的标签内容,并根据标签内容构建语句标签集合,标签内容包括正常标签和异常标签;
判断标签集合中正常标签的数量是否大于异常标签的数量;
当标签集合中正常标签的数量大于异常标签的数量时,确定待检测SQL语句为正常语句;
当标签集合中正常标签的数量不大于异常标签的数量时,确定待检测SQL语句为异常语句。
具体地,在一实施例中,该装置60还包括:
报警模块608,用于当确定待检测SQL语句为异常语句时,生成异常报警信息。
关于本申请实施例中的异常SQL检测装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例提供的异常SQL检测装置,用于执行上述实施例提供的异常SQL检测方法,其实现方式与原理相同,不再赘述。
本申请实施例提供了一种电子设备,用于执行上述实施例提供的异常SQL检测方法。
如图7所示,为本申请实施例提供的电子设备的结构示意图。该电子设备70包括:至少一个处理器71和存储器72;
存储器存储计算机执行指令;至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如上任一实施例提供的方法。
本申请实施例提供的一种电子设备,用于执行上述实施例提供的异常SQL检测方法,其实现方式与原理相同,不再赘述。
本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上任一实施例提供的异常SQL检测方法。
本申请实施例的包含计算机可执行指令的存储介质,可用于存储前述实施例中提供的异常SQL检测方法的计算机执行指令,其实现方式与原理相同,不再赘述。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (10)

1.一种异常SQL检测方法,其特征在于,包括:
获取待检测SQL语句;
对所述待检测SQL语句进行特征提取,确定所述待检测SQL语句对应的第一特征向量;
基于预设的哈希函数,确定所述第一特征向量对应的哈希编码;
根据所述哈希编码,确定所述待检测SQL语句在预设的哈希库中所对应的多个近邻语句;
分别计算所述第一特征向量与各近邻语句所对应的第二特征向量之间的距离;
根据所述距离的升序排序结果,确定预设数量的目标语句;
根据各目标语句的预设语句标签,确定所述待检测SQL语句的检测结果。
2.根据权利要求1所述的异常SQL检测方法,其特征在于,所述基于预设的哈希函数,确定所述第一特征向量对应的哈希编码,包括:
采用等方差哈希方法,确定降维矩阵及等方差哈希函数;
采用所述降维矩阵对所述第一特征向量进行降维处理,得到降维后的第一特征向量;
根据所述等方差哈希函数及所述降维后的第一特征向量,得到所述哈希编码。
3.根据权利要求1所述的异常SQL检测方法,其特征在于,所述对所述待检测SQL语句进行特征提取,确定所述待检测SQL语句对应的第一特征向量,包括:
采用预设SQL语法分析算法,对所述待检测SQL语句进行语法分析,得到语法树;
基于预设的词袋模型,在所述语法树中提取所述待检测SQL语句的语法特征,生成所述第一特征向量。
4.根据权利要求1所述的异常SQL检测方法,其特征在于,在根据所述哈希编码,确定所述待检测SQL语句在预设的哈希库中所对应的多个近邻语句之前,所述方法还包括:
获取多个SQL语句样本;
根据各SQL语句样本所对应的第三特征向量和所述哈希函数,确定所述各SQL语句样本所对应的样本哈希编码;
根据所述各SQL语句样本所对应的样本哈希编码,构建所述哈希库。
5.根据权利要求4所述的异常SQL检测方法,其特征在于,所述根据所述哈希编码,确定所述待检测SQL语句在预设的哈希库中所对应的多个近邻语句,包括:
基于海明排序算法,计算所述待检测SQL语句对应的哈希编码与所述哈希库中各样本哈希编码之间的海明距离;
根据所述海明距离筛选满足预设距离要求的所有样本哈希编码;
将与筛选出的样本哈希编码相对应的SQL语句样本确定为所述近邻语句。
6.根据权利要求1所述的异常SQL检测方法,其特征在于,所述根据各目标语句的预设语句标签,确定所述待检测SQL语句的检测结果,包括:
获取各目标语句的预设语句标签的标签内容,并根据标签内容构建语句标签集合,所述标签内容包括正常标签和异常标签;
判断所述标签集合中正常标签的数量是否大于异常标签的数量;
当所述标签集合中正常标签的数量大于异常标签的数量时,确定所述待检测SQL语句为正常语句;
当所述标签集合中正常标签的数量不大于异常标签的数量时,确定所述待检测SQL语句为异常语句。
7.根据权利要求6所述的异常SQL检测方法,其特征在于,所述方法还包括:
当确定所述待检测SQL语句为异常语句时,生成异常报警信息。
8.一种异常SQL检测装置,其特征在于,包括:
获取模块,用于获取待检测SQL语句;
特征提取模块,用于对所述待检测SQL语句进行特征提取,确定所述待检测SQL语句对应的第一特征向量;
编码模块,用于基于预设的哈希函数,确定所述第一特征向量对应的哈希编码;
第一确定模块,用于根据所述哈希编码,确定所述待检测SQL语句在预设的哈希库中所对应的多个近邻语句;
计算模块,用于分别计算所述第一特征向量与各近邻语句所对应的第二特征向量之间的距离;
第二确定模块,用于根据所述距离的升序排序结果,确定预设数量的目标语句;
检测模块,用于根据各目标语句的预设语句标签,确定所述待检测SQL语句的检测结果。
9.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至7任一项所述的方法。
CN202010970567.7A 2020-09-15 2020-09-15 一种异常sql检测方法及装置 Active CN112100617B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010970567.7A CN112100617B (zh) 2020-09-15 2020-09-15 一种异常sql检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010970567.7A CN112100617B (zh) 2020-09-15 2020-09-15 一种异常sql检测方法及装置

Publications (2)

Publication Number Publication Date
CN112100617A CN112100617A (zh) 2020-12-18
CN112100617B true CN112100617B (zh) 2023-11-24

Family

ID=73758840

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010970567.7A Active CN112100617B (zh) 2020-09-15 2020-09-15 一种异常sql检测方法及装置

Country Status (1)

Country Link
CN (1) CN112100617B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112966268A (zh) * 2021-03-02 2021-06-15 全球能源互联网研究院有限公司 基于神经网络模型和哈希匹配的sql检测方法及系统
CN115017291B (zh) * 2022-08-04 2023-01-10 太平金融科技服务(上海)有限公司深圳分公司 热点问题分析方法、装置、计算机设备和存储介质

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7359913B1 (en) * 2005-05-13 2008-04-15 Ncr Corp. K-means clustering using structured query language (SQL) statements and sufficient statistics
CN105160252A (zh) * 2015-08-10 2015-12-16 北京神州绿盟信息安全科技股份有限公司 一种结构化查询语言注入攻击的检测方法及装置
CN106295338A (zh) * 2016-07-26 2017-01-04 北京工业大学 一种基于人工神经元网络的sql漏洞检测方法
CN107222494A (zh) * 2017-06-28 2017-09-29 上海红阵信息科技有限公司 一种sql注入攻击防御组件及方法
CN107292170A (zh) * 2016-04-05 2017-10-24 阿里巴巴集团控股有限公司 Sql注入攻击的检测方法及装置、系统
CN109889471A (zh) * 2017-12-06 2019-06-14 阿里巴巴集团控股有限公司 结构化查询语句sql注入检测方法和系统
CN109902298A (zh) * 2019-02-13 2019-06-18 东北师范大学 一种自适应学习系统中领域知识建模及知识水平估测方法
CN110019291A (zh) * 2017-09-04 2019-07-16 中国移动通信集团浙江有限公司 一种sql解析方法和sql解析器
CN110362597A (zh) * 2019-06-28 2019-10-22 华为技术有限公司 一种结构化查询语言sql注入检测方法及装置
CN110889118A (zh) * 2018-09-07 2020-03-17 广州视源电子科技股份有限公司 异常sql语句检测方法、装置、计算机设备和存储介质
CN111026671A (zh) * 2019-12-16 2020-04-17 腾讯科技(深圳)有限公司 测试用例集构建方法和基于测试用例集的测试方法
CN111107096A (zh) * 2019-12-27 2020-05-05 杭州迪普科技股份有限公司 一种Web站点安全防护方法及装置
CN111274227A (zh) * 2020-01-20 2020-06-12 上海市大数据中心 一种基于聚类分析和关联规则的数据库审计系统及方法
CN111291070A (zh) * 2020-01-20 2020-06-16 南京星环智能科技有限公司 一种异常sql检测方法、设备及介质
CN111488590A (zh) * 2020-05-29 2020-08-04 深圳易嘉恩科技有限公司 一种基于用户行为可信分析的sql注入检测方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107491534B (zh) * 2017-08-22 2020-11-20 北京百度网讯科技有限公司 信息处理方法和装置

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7359913B1 (en) * 2005-05-13 2008-04-15 Ncr Corp. K-means clustering using structured query language (SQL) statements and sufficient statistics
CN105160252A (zh) * 2015-08-10 2015-12-16 北京神州绿盟信息安全科技股份有限公司 一种结构化查询语言注入攻击的检测方法及装置
CN107292170A (zh) * 2016-04-05 2017-10-24 阿里巴巴集团控股有限公司 Sql注入攻击的检测方法及装置、系统
CN106295338A (zh) * 2016-07-26 2017-01-04 北京工业大学 一种基于人工神经元网络的sql漏洞检测方法
CN107222494A (zh) * 2017-06-28 2017-09-29 上海红阵信息科技有限公司 一种sql注入攻击防御组件及方法
CN110019291A (zh) * 2017-09-04 2019-07-16 中国移动通信集团浙江有限公司 一种sql解析方法和sql解析器
CN109889471A (zh) * 2017-12-06 2019-06-14 阿里巴巴集团控股有限公司 结构化查询语句sql注入检测方法和系统
CN110889118A (zh) * 2018-09-07 2020-03-17 广州视源电子科技股份有限公司 异常sql语句检测方法、装置、计算机设备和存储介质
CN109902298A (zh) * 2019-02-13 2019-06-18 东北师范大学 一种自适应学习系统中领域知识建模及知识水平估测方法
CN110362597A (zh) * 2019-06-28 2019-10-22 华为技术有限公司 一种结构化查询语言sql注入检测方法及装置
CN111026671A (zh) * 2019-12-16 2020-04-17 腾讯科技(深圳)有限公司 测试用例集构建方法和基于测试用例集的测试方法
CN111107096A (zh) * 2019-12-27 2020-05-05 杭州迪普科技股份有限公司 一种Web站点安全防护方法及装置
CN111274227A (zh) * 2020-01-20 2020-06-12 上海市大数据中心 一种基于聚类分析和关联规则的数据库审计系统及方法
CN111291070A (zh) * 2020-01-20 2020-06-16 南京星环智能科技有限公司 一种异常sql检测方法、设备及介质
CN111488590A (zh) * 2020-05-29 2020-08-04 深圳易嘉恩科技有限公司 一种基于用户行为可信分析的sql注入检测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AKNN-Qalsh:PostgreSQL系统高维空间近似最近邻检索插件;张楚涵;张家侨;冯剑琳;;中山大学学报(自然科学版)(第03期);全文 *
基于改进TFIDF算法的SQL注入攻击检测方法;李应博;张斌;;信息工程大学学报(第01期);全文 *

Also Published As

Publication number Publication date
CN112100617A (zh) 2020-12-18

Similar Documents

Publication Publication Date Title
US10929722B2 (en) Anomaly detection in streaming networks
CN108520272B (zh) 一种改进苍狼算法的半监督入侵检测方法
CN110135157B (zh) 恶意软件同源性分析方法、系统、电子设备及存储介质
CN110225055B (zh) 一种基于knn半监督学习模型的网络流量异常检测方法与系统
CN111612041B (zh) 异常用户识别方法及装置、存储介质、电子设备
CN112100617B (zh) 一种异常sql检测方法及装置
JP2016004577A (ja) 実時系列内の異常を検出するための方法
CN110175851B (zh) 一种作弊行为检测方法及装置
CN116432091B (zh) 基于小样本的设备故障诊断方法、模型的构建方法及装置
CN112069498B (zh) 一种sql注入检测模型构建方法及检测方法
CN113869052B (zh) 基于ai的房屋地址匹配方法、存储介质及设备
CN115905959B (zh) 基于缺陷因子的电力断路器关联性故障分析方法及装置
CN107111609A (zh) 用于神经语言行为识别系统的词法分析器
CN116205482A (zh) 重点人员风险等级评估方法及相关设备
CN116402630B (zh) 一种基于表征学习的财务风险预测方法及系统
CN111241326B (zh) 基于注意力金字塔图网络的图像视觉关系指代定位方法
CN115129896B (zh) 基于对比学习的网络安全应急响应知识图谱关系提取方法
CN115719070A (zh) 一种基于告警语义的多步攻击检测模型预训练方法
CN114757520A (zh) 变电站运维管理信息系统健康诊断方法和系统
CN112069028A (zh) 一种异常检测方法
CN112015792A (zh) 一种物料重码分析方法、装置及计算机存储介质
CN113343051B (zh) 一种异常sql检测模型构建方法及检测方法
US20230049871A1 (en) Event analysis support apparatus, event analysis support method, and computer-readable recording medium
Chen et al. Prediction of dna-binding protein using random forest and elastic net
CN117216597A (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