CN111783132A - 基于机器学习的sql语句安全检测方法、装置、设备及介质 - Google Patents

基于机器学习的sql语句安全检测方法、装置、设备及介质 Download PDF

Info

Publication number
CN111783132A
CN111783132A CN202010464009.3A CN202010464009A CN111783132A CN 111783132 A CN111783132 A CN 111783132A CN 202010464009 A CN202010464009 A CN 202010464009A CN 111783132 A CN111783132 A CN 111783132A
Authority
CN
China
Prior art keywords
detected
feature
word segmentation
data
detection result
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
CN202010464009.3A
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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN202010464009.3A priority Critical patent/CN111783132A/zh
Publication of CN111783132A publication Critical patent/CN111783132A/zh
Priority to PCT/CN2020/136341 priority patent/WO2021135919A1/zh
Pending legal-status Critical Current

Links

Images

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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及人工智能,提供了一种基于机器学习的SQL语句安全检测方法、装置、设备及介质,所述方法包括:在接收到SQL访问请求时,对访问请求进行解析,得到待检测数据,采用TF‑IDF算法,对待检测数据进行特征提取,得到特征分词,使用隐马尔可夫模型对特征分词进行文本异常检测,得到检测结果,实现对SQL访问请求的合理性的快速检测,有利于提高安全检测的效率,在检测结果为存在异常时,确认待检测数据存在威胁,并对SQL访问请求进行拦截处理,本发明还涉及区块链技术,将得到的特征分词和对应的检测结果存储至区块链中,本发明实现快速对异常的访问请求进行拦截,确保数据库的安全性。

Description

基于机器学习的SQL语句安全检测方法、装置、设备及介质
技术领域
本发明涉及网络安全领域,尤其涉及一种基于机器学习的SQL语句安全检测方法、装置、设备及介质。
背景技术
随着web应用的不断发展,web安全问题也日益突出。SQL注入漏洞是web安全问题中最常见的漏洞,成功利用SQL注入可导致数据库信息泄漏、数据库被恶意操作,甚至远程控制服务器,执行任意操作等,其危害也极其严重。对于恶意SQL注入请求的自动检测,当前主要做法是基于黑规则的检测,但由于SQL访问请求比较频繁,这种基于规则库的安全防御被动、滞后,无法检测未知的攻击,并且耗时较长,导致数据库安全检测效率低。
发明内容
本发明实施例提供一种基于机器学习的SQL语句安全检测方法、装置、设备和介质,以提高数据库安全检测效率。
为了解决上述技术问题,本申请实施例提供一种基于机器学习的SQL语句安全检测方法,包括:
在接收到SQL访问请求时,对所述访问请求进行解析,得到待检测数据;
采用TF-IDF算法,对所述待检测数据进行特征提取,得到特征分词;
使用隐马尔可夫模型对所述特征分词进行文本异常检测,得到检测结果;
若所述检测结果为存在异常,则确认所述待检测数据存在威胁,并对SQL访问请求进行拦截处理。
可选地,所述采用TF-IDF算法,对所述待检测数据进行特征提取,得到特征分词包括:
通过单词组合的方式,对所述待检测数据来进行分词划分,得到初始分词;
统计所述初始分词在所述待检测语句中的比重,将所述比重作为所述初始分词的词频;
统计所述初始分词在预设语料库中的逆向文件频率IDF;
计算所述初始分词的词频TF与所述逆向文件频率IDF的乘积,并根据所述乘积确定所述初始分词是否为重要特征,将属于重要特征的所述初始分词,确定为所述特征分词。
可选地,所述使用隐马尔可夫模型对所述特征分词进行文本异常检测,得到检测结果包括:
将所述特征分词转化为状态表示;
针对第i个状态,通过隐马尔可夫模型的观测序列,预测第i+1个状态的概率分布,将所述概率分布中,最大概率值对应的状态,作为第i+1个状态对应的预测状态,其中,i为正整数;
若第i+1个状态与第i+1个状态对应的预测状态匹配,则确认检测结果为正常;
若第i+1个状态与第i+1个状态对应预测状态不匹配,则确认检测结果为异常。
可选地,所述基于机器学习的SQL语句安全检测方法还包括:
从检测日志中,获取检测结果为异常的状态,对应的特征分词,作为参考分词;
计算所述特征分词与所述参考分词的文本相似度,得到文本相似度值;
若所述文本相似度值小于预设相似度阈值,则将所述特征分词作为异常分词,并确定所述检测结果为异常。
可选地,在所述使用隐马尔可夫模型对所述特征分词进行文本异常检测,得到检测结果之后,并且,在所述若所述检测结果为存在异常,则确认所述待检测数据存在威胁之前,所述基于机器学习的SQL语句安全检测方法还包括:
若所述检测结果为异常,则基于SQL语句对所述待检测数据进行词法分词,得到待验证分词;
使用预设的字符验证函数,通过字符串扫描的方式,对所述待验证分词进行敏感词汇验证,得到扫描结果;
若所述扫描结果为所述待验证分词中存在敏感词汇,则确认所述检测结果为存在异常。
可选地,在所述使用隐马尔可夫模型对所述特征分词进行文本异常检测,得到检测结果之后,还包括:
将所述特征分词和所述特征分词对应的检测结果存储至区块链中。
为了解决上述技术问题,本申请实施例还提供一种基于机器学习的SQL语句安全检测装置,包括:
请求解析模块,用于在接收到SQL访问请求时,对所述访问请求进行解析,得到待检测数据;
特征分词模块,用于采用TF-IDF算法,对所述待检测数据进行特征提取,得到特征分词;
异常检测模块,用于使用隐马尔可夫模型对所述特征分词进行文本异常检测,得到检测结果;
请求拦截模块,用于若所述检测结果为存在异常,则确认所述待检测数据存在威胁,并对SQL访问请求进行拦截处理。
可选地,所述特征分词模块包括:
数据分词单元,用于通过单词组合的方式,对所述待检测数据来进行分词划分,得到初始分词;
词频统计单元,用于统计所述初始分词在所述待检测语句中的比重,将所述比重作为所述初始分词的词频;
频率统计单元,用于统计所述初始分词在预设语料库中的逆向文件频率IDF;
分词确定单元,用于计算所述初始分词的词频TF与所述逆向文件频率IDF的乘积,并根据所述乘积确定所述初始分词是否为重要特征,将属于重要特征的所述初始分词,确定为所述特征分词。
可选地,所述异常检测模块包括:
状态转化单元,用于将所述特征分词转化为状态表示;
状态预测单元,用于针对第i个状态,通过隐马尔可夫模型的观测序列,预测第i+1个状态的概率分布,将所述概率分布中,最大概率值对应的状态,作为第i+1个状态对应的预测状态,其中,i为正整数;
第一匹配单元,用于若第i+1个状态与第i+1个状态对应的预测状态匹配,则确认检测结果为正常;
第二匹配单元,用于若第i+1个状态与第i+1个状态对应预测状态不匹配,则确认检测结果为异常。
可选地,所述基于机器学习的SQL语句安全检测装置还包括:
参考分词确定模块,用于从检测日志中,获取检测结果为异常的状态,对应的特征分词,作为参考分词;
相似度计算模块,用于计算所述特征分词与所述参考分词的文本相似度,得到文本相似度值;
异常判定模块,用于若所述文本相似度值小于预设相似度阈值,则将所述特征分词作为异常分词,并确定所述检测结果为异常。
可选地,所述基于机器学习的SQL语句安全检测装置还包括:
词法分词模块,用于若所述检测结果为异常,则基于SQL语句对所述待检测数据进行词法分词,得到待验证分词;
敏感词汇验证模块,用于使用预设的字符验证函数,通过字符串扫描的方式,对所述待验证分词进行敏感词汇验证,得到扫描结果;
结果确认模块,用于若所述扫描结果为所述待验证分词中存在敏感词汇,则确认所述检测结果为存在异常。
可选地,基于机器学习的SQL语句安全检测装置还包括:
存储模块,用于将所述特征分词和所述特征分词对应的检测结果存储至区块链中。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于机器学习的SQL语句安全检测方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于机器学习的SQL语句安全检测方法的步骤。
本发明实施例提供的基于机器学习的SQL语句安全检测方法、装置、设备及介质,在接收到SQL访问请求时,对访问请求进行解析,得到待检测数据,采用TF-IDF算法,对待检测数据进行特征提取,得到特征分词,使用隐马尔可夫模型对特征分词进行文本异常检测,得到检测结果,实现对SQL访问请求的合理性的快速检测,有利于提高安全检测的效率,在检测结果为存在异常时,确认待检测数据存在威胁,并对SQL访问请求进行拦截处理,实现快速对异常的访问请求进行拦截,确保数据库的安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性系统架构图;
图2是本申请的基于机器学习的SQL语句安全检测方法的一个实施例的流程图;
图3是根据本申请的基于机器学习的SQL语句安全检测装置的一个实施例的结构示意图;
图4是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture E界面显示perts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureE界面显示perts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的基于机器学习的SQL语句安全检测方法由服务器执行,相应地,基于机器学习的SQL语句安全检测装置设置于服务器中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器,本申请实施例中的终端设备101、102、103具体可以对应的是实际生产中的应用系统。
请参阅图2,图2示出本发明实施例提供的一种基于机器学习的SQL语句安全检测方法,以该方法应用在图1中的服务端为例进行说明,详述如下:
S201:在接收到SQL访问请求时,对访问请求进行解析,得到待检测数据。
具体地,客户端在进行数据库访问时,先与服务端连接,进而将包含请求参数的数据库访问请求发送给服务端,服务端根据该请求从数据库中获取客户端需要访问的数据并返回给客户端,在这个过程中,如果请求参数中包含一些非法字符,可能会对数据库带来危害,这些非法字符包括但不限于:恶意SQL注入指令、越权指令和SQL攻击指令等,因而,在服务端对访问请求进行解析并执行之前,有必要对请求参数进行安全性的检测,本实施例中,服务端在接收到SQL访问请求时,获取访问请求中包含的请求参数,并对参数进行解析,得到待检测数据。
其中,对访问请求进行解析是指获取访问请求中包含的请求参数,进而根据请求参数,确定待检测的SQL语句。
其中,请求参数是指访问请求中包含的属性字段,具体可以是一个统一资源定位符URL、一个操作指令或者一段匹配规则,在本实施例中,主要对访问请求中的POST参数、GET参数和COOKIE参数等属性字段进行检测。
S202:采用TF-IDF算法,对待检测数据进行特征提取,得到特征分词。
具体地,通过TF-IDF算法,对待检测数据进行特征提取,得到能体现待检测数据核心特征的分词,作为特征分词。
其中,TF-IDF(term frequency–inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术。TF意思是词频(Term Frequency),IDF意思是逆文本频率指数(Inverse Document Frequency),TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
在本实施例中,对待检测数据进行分词泛华,再将得到的分词在待检测数据中的比重,作为词频TF,并将该分词在预设语料中的出现频率,作为逆文本频率指数IDF,进而计算得到该分词对应的TF-IDF,并依据该TF-IDF是否处于预设范围,来判断将该分词作为独立分词的准确性,在该分词的TF-IDF处于预设范围时,确定该分词很大概率是可读的字符串,就可以对请求进行分割,获取其单词构成,并进行向量化。
其中,特征提取包括分词、泛化、特征向量转化。
例如,在一具体实施方式中,一待检测数据为一统一资源标识符URL,其具体为“publico/anadir.jsp?id=2&nombre=Jam%F3n+Ib%E9rico&precio=85&cantidad=%27%3B+DROP+TABLE+usuarios%3B+SELECT+*+FROM+datos+WHRE+nombre+LIKE+%27%25&B1=A%F1adir+al+carrito”,经过分词泛华之后,得到“publico anadir jsp id 2nombre Jam F3n Ib E9rico precio 85 cantidad 27 3B DROP TABLE usuarios 3BSELECT*FROMdatos WHERE nombre LIKE 27 25 B1 A F1adir al carrito”。
S203:使用隐马尔可夫模型对特征分词进行文本异常检测,得到检测结果。
具体地,在得到待检测语句的特征分词后,将特征分词输入到预先训练好的隐马尔可夫模型中,通过该隐马尔可夫模型对特征分词中是否存在异常文本进行检测。
其中,隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。隐马尔可夫模型是马尔可夫链的一种,它的状态不能直接观察到,但能通过观测向量序列观察到,每个观测向量都是通过某些概率密度分布表现为各种状态,每一个观测向量是由一个具有相应概率密度分布的状态序列产生。
其中,文本异常检测是指检测待检测数据中,是否包含非法的文本字符,IE非法的文本字符可能成为数据库的访问安全隐患。
使用隐马尔可夫模型对特征分词进行文本异常检测,得到检测结果的具体过程,可参考后续实施例的描述,为避免重复,此处不再赘述。
S204:若检测结果为存在异常,则确认待检测数据存在威胁,并对SQL访问请求进行拦截处理。
具体地,在检测结果为存在异常时,也即,待检测语句中包含可能对数据库数据存在威胁的非法字符,此时,对该SQL访问请求执行拦截处理,确保数据库的安全。
在本实施例中,在接收到SQL访问请求时,对访问请求进行解析,得到待检测数据,采用TF-IDF算法,对待检测数据进行特征提取,得到特征分词,使用隐马尔可夫模型对特征分词进行文本异常检测,得到检测结果,实现对SQL访问请求的合理性的快速检测,有利于提高安全检测的效率,在检测结果为存在异常时,确认待检测数据存在威胁,并对SQL访问请求进行拦截处理,实现快速对异常的访问请求进行拦截,确保数据库的安全性。
在一实施例中,可将得到的特征分词和特征分词对应的检测结果保存在区块链网络上,通过区块链存储,实现数据信息在不同平台之间的共享,也可防止数据被篡改。
其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
在本实施例的一些可选的实现方式中,步骤S202中,采用TF-IDF算法,对待检测数据进行特征提取,得到特征分词包括:
通过单词组合的方式,对待检测数据来进行分词划分,得到初始分词;
统计初始分词在待检测语句中的比重,将比重作为初始分词的词频;
统计初始分词在预设语料库中的逆向文件频率IDF;
计算初始分词的词频TF与逆向文件频率IDF的乘积,并根据乘积确定初始分词是否为重要特征,将属于重要特征的初始分词,确定为特征分词。
具体地,通过TF-IDF算法,对待检测数据进行特征提取,得到特征分词。
需要说明的是,本实施例中的分词,不可简单理解为“词语”的划分,其具体也可以是划分为一个字符串,例如“SELECT*FROM”。
采用如下公式计算初始分词在预设语料库中的逆向文件频率IDF:
Figure BDA0002511961900000121
其中,|D|是语料库中的文件总数。|{j:ti∈dj}|表示包含第i个初始分词ti的文件数目(即ni,j≠0的数目)。如果该初始分词不在语料库中,就会导致分母为零,因此,一般情况下使用|{j:ti∈dj}|+1作为分母,避免分母为0的情况。
根据乘积确定初始分词是否为重要特征,具体可以是将历史SQL攻击的分词结果作为参考依据,设置一个阈值,在乘积达到阈值,将该分词确定为重要特征。
在本实施例中,通过TF-IDF算法,从待检测数据特征与SQL安全访问相关的重要特征,作为特征分词,后续使用该特征分词进行安全检测,有利于提高安全检测的准确率。
在本实施例的一些可选的实现方式中,步骤S203中,使用隐马尔可夫模型对特征分词进行文本异常检测,得到检测结果包括:
将特征分词转化为状态表示;
针对第i个状态,通过隐马尔可夫模型的观测序列,预测第i+1个状态的概率分布,将概率分布中,最大概率值对应的状态,作为第i+1个状态对应的预测状态,其中,i为正整数;
若第i+1个状态与第i+1个状态对应的预测状态匹配,则确认检测结果为正常;
若第i+1个状态与第i+1个状态对应预测状态不匹配,则确认检测结果为异常。
具体地,将特征分词转化为隐马尔可夫模型中的每个状态,通过隐马尔可夫模型的观测序列,对每个状态的下一个状态进行预测,并将下一个状态的预测结果与真实状态进行匹配,若匹配失败,则确认存在可能导致安全风险的特征分词,将SQL访问请求标记位异常。
需要说明的是,本实施例在实施的过程中,可以通过简单平均法或者加权平均法来对隐马尔可夫模型进行调优。同时必须使用非负权重才能确保集成性能优于单一最佳个体学习器。由于现实任务中样本不充分或者存在噪声,有时候使得权重不完全可靠,因此使用简单调优还是加权平均法需要按照实际情况来判断使用。
在本实施例中,通过隐马尔可夫模型来快速判断特征分词是否合理,进而确定访问请求是否异常,有利于提高安全检测的效率。
在本实施例的一些可选的实现方式中,基于机器学习的SQL语句安全检测方法还包括:
从检测日志中,获取检测结果为异常的状态,对应的特征分词,作为参考分词;
计算特征分词与参考分词的文本相似度,得到文本相似度值;
若文本相似度值小于预设相似度阈值,则将特征分词作为异常分词,并确定检测结果为异常。
具体地,服务端将每次异常状态对应的特征分词保存到检测日志中,在检测日志中保存的特征分词达到一定数量,可采用异常状态对应的特征分词来与步骤S202之后得到的特征分词进行相似度计算,若相似度大于预设阈值,则确定步骤S202中得到的特征分词存在异常状态,否则,将继续使用步骤S203的方式进行判断,采用这种方式,有利于快速筛选出可能产生异常状态的访问请求。
其中,检测日志为存储有异常状态对应的特征分词的日志文件。
其中,计算特征分词与参考分词的文本相似度,具体可以通过欧式距离、相似度算法等来实现。
其中,预设相似度阈值可根据实际需要来设定,此处不做限定。
在本实施例中,通过从检测日志中,获取检测结果为异常的状态对应的特征分词,作为参考分词,再计算参考分词与得到的特征分词的相似度,来快速确定特征分词是否会导致异常状态,进而判断该特征分词的风险。
在本实施例的一些可选的实现方式中,在步骤S203之后,并且,步骤S204之前,该基于机器学习的SQL语句安全检测方法还包括对检测结果为异常的待检测数据进行二次校验,具体包括:
若检测结果为异常,则基于SQL语句对待检测数据进行词法分词,得到待验证分词;
使用预设的字符验证函数,通过字符串扫描的方式,对待验证分词进行敏感词汇验证,得到扫描结果;
若扫描结果为待验证分词中存在敏感词汇,则确认检测结果为存在异常。
具体地,在数据库开放正常访问时,接收到的访问请求比较频繁,使用基于关键词的方式,对每个访问请求进行安全检测,会耗费大量的时间,导致效率低下,同时,也容易引起访问请求来不及处理导致的访问失败,采用隐马尔可夫模型有效提高检测效率,快速找出可能存在威胁的访问请求,为进一步验证隐马尔可夫模型检测出的威胁访问请求的准确性,确保正常访问请问不会被误判而拦截,本实施例通过字符串扫描的方式,针对步骤S203中检测的异常访问请求,进行二次校验,确保拦截的准确率。
其中,词法分词是指按照SQL语句的语法规则,将待检测语句分割成每个待验证分词。
其中,预设的字符验证函数是指用于对字符进行验证的函数,具体包括但不限于:islogical、isalpha等,也可以使用自定义的函数,此处不做限制。
其中,敏感词汇为预先定义的对数据库安全具有一定风险的词汇,例如:user,system等,在可以将检测到的异常访问请求中的关键字符,加入到原有的敏感词汇之中。
在本实施例中,通过对隐马尔可夫模型检测出的异常访问请求进行二次检测,确保异常判断的准确性,有利于提高访问拦截的合理性和准确性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
图3示出与上述实施例基于机器学习的SQL语句安全检测方法一一对应的基于机器学习的SQL语句安全检测装置的原理框图。如图3所示,该基于机器学习的SQL语句安全检测装置包括请求解析模块31、特征分词模块32、异常检测模块33和请求拦截模块34。各功能模块详细说明如下:
请求解析模块31,用于在接收到SQL访问请求时,对访问请求进行解析,得到待检测数据;
特征分词模块32,用于采用TF-IDF算法,对待检测数据进行特征提取,得到特征分词;
异常检测模块33,用于使用隐马尔可夫模型对特征分词进行文本异常检测,得到检测结果;
请求拦截模块34,用于若检测结果为存在异常,则确认待检测数据存在威胁,并对SQL访问请求进行拦截处理。
可选地,特征分词模块32包括:
数据分词单元,用于通过单词组合的方式,对待检测数据来进行分词划分,得到初始分词;
词频统计单元,用于统计初始分词在待检测语句中的比重,将比重作为初始分词的词频;
频率统计单元,用于统计初始分词在预设语料库中的逆向文件频率IDF;
分词确定单元,用于计算初始分词的词频TF与逆向文件频率IDF的乘积,并根据乘积确定初始分词是否为重要特征,将属于重要特征的初始分词,确定为特征分词。
可选地,异常检测模块33包括:
状态转化单元,用于将特征分词转化为状态表示;
状态预测单元,用于针对第i个状态,通过隐马尔可夫模型的观测序列,预测第i+1个状态的概率分布,将概率分布中,最大概率值对应的状态,作为第i+1个状态对应的预测状态,其中,i为正整数;
第一匹配单元,用于若第i+1个状态与第i+1个状态对应的预测状态匹配,则确认检测结果为正常;
第二匹配单元,用于若第i+1个状态与第i+1个状态对应预测状态不匹配,则确认检测结果为异常。
可选地,基于机器学习的SQL语句安全检测装置还包括:
参考分词确定模块,用于从检测日志中,获取检测结果为异常的状态,对应的特征分词,作为参考分词;
相似度计算模块,用于计算特征分词与参考分词的文本相似度,得到文本相似度值;
异常判定模块,用于若文本相似度值小于预设相似度阈值,则将特征分词作为异常分词,并确定检测结果为异常。
可选地,基于机器学习的SQL语句安全检测装置还包括:
词法分词模块,用于若检测结果为异常,则基于SQL语句对待检测数据进行词法分词,得到待验证分词;
敏感词汇验证模块,用于使用预设的字符验证函数,通过字符串扫描的方式,对待验证分词进行敏感词汇验证,得到扫描结果;
结果确认模块,用于若扫描结果为待验证分词中存在敏感词汇,则确认检测结果为存在异常。
可选地,该基于机器学习的SQL语句安全检测装置还包括:
存储模块,用于将特征分词和特征分词对应的检测结果存储至区块链中。
关于基于机器学习的SQL语句安全检测装置的具体限定可以参见上文中对于基于机器学习的SQL语句安全检测方法的限定,在此不再赘述。上述基于机器学习的SQL语句安全检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
所述计算机设备4包括通过系统总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图中仅示出了具有组件连接存储器41、处理器42、网络接口43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或D界面显示存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作系统和各类应用软件,例如电子文件的控制的程序代码等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器42在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的程序代码或者处理数据,例如运行电子文件的控制的程序代码。
所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在所述计算机设备4与其他电子设备之间建立通信连接。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有界面显示程序,所述界面显示程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的基于机器学习的SQL语句安全检测方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

Claims (10)

1.一种基于机器学习的SQL语句安全检测方法,其特征在于,所述基于机器学习的SQL语句安全检测方法包括:
在接收到SQL访问请求时,对所述访问请求进行解析,得到待检测数据;
采用TF-IDF算法,对所述待检测数据进行特征提取,得到特征分词;
使用隐马尔可夫模型对所述特征分词进行文本异常检测,得到检测结果;
若所述检测结果为存在异常,则确认所述待检测数据存在威胁,并对SQL访问请求进行拦截处理。
2.如权利要求1所述的基于机器学习的SQL语句安全检测方法,其特征在于,所述采用TF-IDF算法,对所述待检测数据进行特征提取,得到特征分词包括:
通过单词组合的方式,对所述待检测数据来进行分词划分,得到初始分词;
统计所述初始分词在所述待检测语句中的比重,将所述比重作为所述初始分词的词频;
统计所述初始分词在预设语料库中的逆向文件频率IDF;
计算所述初始分词的词频TF与所述逆向文件频率IDF的乘积,并根据所述乘积确定所述初始分词是否为重要特征,将属于重要特征的所述初始分词,确定为所述特征分词。
3.如权利要求1所述的基于机器学习的SQL语句安全检测方法,其特征在于,所述使用隐马尔可夫模型对所述特征分词进行文本异常检测,得到检测结果包括:
将所述特征分词转化为状态表示;
针对第i个状态,通过隐马尔可夫模型的观测序列,预测第i+1个状态的概率分布,将所述概率分布中,最大概率值对应的状态,作为第i+1个状态对应的预测状态,其中,i为正整数;
若第i+1个状态与第i+1个状态对应的预测状态匹配,则确认检测结果为正常;
若第i+1个状态与第i+1个状态对应预测状态不匹配,则确认检测结果为异常。
4.如权利要求1所述的基于机器学习的SQL语句安全检测方法,其特征在于,所述基于机器学习的SQL语句安全检测方法还包括:
从检测日志中,获取检测结果为异常的状态,对应的特征分词,作为参考分词;
计算所述特征分词与所述参考分词的文本相似度,得到文本相似度值;
若所述文本相似度值小于预设相似度阈值,则将所述特征分词作为异常分词,并确定所述检测结果为异常。
5.如权利要求1至4任一项所述的基于机器学习的SQL语句安全检测方法,其特征在于,在所述使用隐马尔可夫模型对所述特征分词进行文本异常检测,得到检测结果之后,并且,在所述若所述检测结果为存在异常,则确认所述待检测数据存在威胁之前,所述基于机器学习的SQL语句安全检测方法还包括:
若所述检测结果为异常,则基于SQL语句对所述待检测数据进行词法分词,得到待验证分词;
使用预设的字符验证函数,通过字符串扫描的方式,对所述待验证分词进行敏感词汇验证,得到扫描结果;
若所述扫描结果为所述待验证分词中存在敏感词汇,则确认所述检测结果为存在异常。
6.如权利要求1所述的基于机器学习的SQL语句安全检测方法,其特征在于,在所述使用隐马尔可夫模型对所述特征分词进行文本异常检测,得到检测结果之后,还包括:
将所述特征分词和所述特征分词对应的检测结果存储至区块链中。
7.一种基于机器学习的SQL语句安全检测装置,其特征在于,所述基于机器学习的SQL语句安全检测装置包括:
请求解析模块,用于在接收到SQL访问请求时,对所述访问请求进行解析,得到待检测数据;
特征分词模块,用于采用TF-IDF算法,对所述待检测数据进行特征提取,得到特征分词;
异常检测模块,用于使用隐马尔可夫模型对所述特征分词进行文本异常检测,得到检测结果;
请求拦截模块,用于若所述检测结果为存在异常,则确认所述待检测数据存在威胁,并对SQL访问请求进行拦截处理。
8.如权利要求7所述的基于机器学习的SQL语句安全检测装置,其特征在于,所述特征分词模块包括:
数据分词单元,用于通过单词组合的方式,对所述待检测数据来进行分词划分,得到初始分词;
词频统计单元,用于统计所述初始分词在所述待检测语句中的比重,将所述比重作为所述初始分词的词频;
频率统计单元,用于统计所述初始分词在预设语料库中的逆向文件频率IDF;
分词确定单元,用于计算所述初始分词的词频TF与所述逆向文件频率IDF的乘积,并根据所述乘积确定所述初始分词是否为重要特征,将属于重要特征的所述初始分词,确定为所述特征分词。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的基于机器学习的SQL语句安全检测方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的基于机器学习的SQL语句安全检测方法。
CN202010464009.3A 2020-05-27 2020-05-27 基于机器学习的sql语句安全检测方法、装置、设备及介质 Pending CN111783132A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010464009.3A CN111783132A (zh) 2020-05-27 2020-05-27 基于机器学习的sql语句安全检测方法、装置、设备及介质
PCT/CN2020/136341 WO2021135919A1 (zh) 2020-05-27 2020-12-15 基于机器学习的sql语句安全检测方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010464009.3A CN111783132A (zh) 2020-05-27 2020-05-27 基于机器学习的sql语句安全检测方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN111783132A true CN111783132A (zh) 2020-10-16

Family

ID=72753399

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010464009.3A Pending CN111783132A (zh) 2020-05-27 2020-05-27 基于机器学习的sql语句安全检测方法、装置、设备及介质

Country Status (2)

Country Link
CN (1) CN111783132A (zh)
WO (1) WO2021135919A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112395304A (zh) * 2020-10-30 2021-02-23 迅鳐成都科技有限公司 基于数据行为模拟的数据安全计算方法、系统及存储介质
CN112560021A (zh) * 2020-11-26 2021-03-26 新华三技术有限公司合肥分公司 一种攻击的检测方法和攻击检测模型
CN112766236A (zh) * 2021-03-10 2021-05-07 拉扎斯网络科技(上海)有限公司 文本生成方法、装置、计算机设备及计算机可读存储介质
WO2021135919A1 (zh) * 2020-05-27 2021-07-08 平安科技(深圳)有限公司 基于机器学习的sql语句安全检测方法、装置、设备及介质
CN114095241A (zh) * 2021-11-18 2022-02-25 中国电信股份有限公司 检测方法、装置及计算机可读存储介质
CN114118063A (zh) * 2021-11-23 2022-03-01 中国电信股份有限公司 检测方法、装置及计算机可读存储介质
CN115344869A (zh) * 2022-08-10 2022-11-15 中国电信股份有限公司 风险确定方法、装置、存储介质及电子设备
CN116248412A (zh) * 2023-04-27 2023-06-09 中国人民解放军总医院 共享数据资源异常检测方法、系统、设备、存储器及产品
CN117955863A (zh) * 2024-01-29 2024-04-30 江南大学 基于人工智能的数据安全检测方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779176A (zh) * 2012-06-27 2012-11-14 北京奇虎科技有限公司 关键词过滤系统及方法
CN105574090A (zh) * 2015-12-10 2016-05-11 北京中科汇联科技股份有限公司 一种敏感词过滤方法及系统
CN105843950A (zh) * 2016-04-12 2016-08-10 乐视控股(北京)有限公司 敏感词过滤方法及装置
CN107392016A (zh) * 2017-07-07 2017-11-24 四川大学 一种基于代理的Web数据库攻击行为检测系统
CN108712453A (zh) * 2018-08-30 2018-10-26 杭州安恒信息技术股份有限公司 基于逻辑回归算法的注入攻击检测方法、装置和服务器
CN109194677A (zh) * 2018-09-21 2019-01-11 郑州云海信息技术有限公司 一种sql注入攻击检测方法、装置及设备
CN109525567A (zh) * 2018-11-01 2019-03-26 郑州云海信息技术有限公司 一种针对网站实施参数注入攻击的检测方法与系统
CN109547423A (zh) * 2018-11-09 2019-03-29 上海交通大学 一种基于机器学习的web恶意请求深度检测系统及方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101059805A (zh) * 2007-03-29 2007-10-24 复旦大学 基于网络流和分层知识库的动态文本聚类方法
CN107273465A (zh) * 2017-06-05 2017-10-20 环球智达科技(北京)有限公司 Sql注入检测方法
CN108549814A (zh) * 2018-03-24 2018-09-18 西安电子科技大学 一种基于机器学习的sql注入检测方法、数据库安全系统
CN111783132A (zh) * 2020-05-27 2020-10-16 平安科技(深圳)有限公司 基于机器学习的sql语句安全检测方法、装置、设备及介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779176A (zh) * 2012-06-27 2012-11-14 北京奇虎科技有限公司 关键词过滤系统及方法
CN105574090A (zh) * 2015-12-10 2016-05-11 北京中科汇联科技股份有限公司 一种敏感词过滤方法及系统
CN105843950A (zh) * 2016-04-12 2016-08-10 乐视控股(北京)有限公司 敏感词过滤方法及装置
CN107392016A (zh) * 2017-07-07 2017-11-24 四川大学 一种基于代理的Web数据库攻击行为检测系统
CN108712453A (zh) * 2018-08-30 2018-10-26 杭州安恒信息技术股份有限公司 基于逻辑回归算法的注入攻击检测方法、装置和服务器
CN109194677A (zh) * 2018-09-21 2019-01-11 郑州云海信息技术有限公司 一种sql注入攻击检测方法、装置及设备
CN109525567A (zh) * 2018-11-01 2019-03-26 郑州云海信息技术有限公司 一种针对网站实施参数注入攻击的检测方法与系统
CN109547423A (zh) * 2018-11-09 2019-03-29 上海交通大学 一种基于机器学习的web恶意请求深度检测系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李应博等: ""基于改进TFIDF算法的SQL注入攻击检测方法"", 《信息工程大学学报》, vol. 21, no. 1, 29 February 2020 (2020-02-29), pages 108 - 114 *
杨连群等: ""基于隐马尔可夫模型的新型SQL注入攻击检测方法"", 《信息网络安全》, 30 September 2017 (2017-09-30), pages 114 - 118 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021135919A1 (zh) * 2020-05-27 2021-07-08 平安科技(深圳)有限公司 基于机器学习的sql语句安全检测方法、装置、设备及介质
CN112395304A (zh) * 2020-10-30 2021-02-23 迅鳐成都科技有限公司 基于数据行为模拟的数据安全计算方法、系统及存储介质
CN112395304B (zh) * 2020-10-30 2024-01-02 迅鳐成都科技有限公司 基于数据行为模拟的数据安全计算方法、系统及存储介质
CN112560021A (zh) * 2020-11-26 2021-03-26 新华三技术有限公司合肥分公司 一种攻击的检测方法和攻击检测模型
CN112766236A (zh) * 2021-03-10 2021-05-07 拉扎斯网络科技(上海)有限公司 文本生成方法、装置、计算机设备及计算机可读存储介质
CN112766236B (zh) * 2021-03-10 2023-04-07 拉扎斯网络科技(上海)有限公司 文本生成方法、装置、计算机设备及计算机可读存储介质
CN114095241A (zh) * 2021-11-18 2022-02-25 中国电信股份有限公司 检测方法、装置及计算机可读存储介质
CN114118063A (zh) * 2021-11-23 2022-03-01 中国电信股份有限公司 检测方法、装置及计算机可读存储介质
CN115344869A (zh) * 2022-08-10 2022-11-15 中国电信股份有限公司 风险确定方法、装置、存储介质及电子设备
CN116248412A (zh) * 2023-04-27 2023-06-09 中国人民解放军总医院 共享数据资源异常检测方法、系统、设备、存储器及产品
CN116248412B (zh) * 2023-04-27 2023-08-22 中国人民解放军总医院 共享数据资源异常检测方法、系统、设备、存储器及产品
CN117955863A (zh) * 2024-01-29 2024-04-30 江南大学 基于人工智能的数据安全检测方法及系统

Also Published As

Publication number Publication date
WO2021135919A1 (zh) 2021-07-08

Similar Documents

Publication Publication Date Title
CN111783132A (zh) 基于机器学习的sql语句安全检测方法、装置、设备及介质
CN111897970B (zh) 基于知识图谱的文本比对方法、装置、设备及存储介质
CN108090351B (zh) 用于处理请求消息的方法和装置
CN109714341A (zh) 一种Web恶意攻击识别方法、终端设备及存储介质
CN105431859A (zh) 指示恶意软件的信号标记
CN110933104B (zh) 恶意命令检测方法、装置、设备及介质
Das et al. Defeating SQL injection attack in authentication security: an experimental study
CN111586695B (zh) 短信识别方法及相关设备
CN112468658A (zh) 语音质量检测方法、装置、计算机设备及存储介质
US20220321598A1 (en) Method of processing security information, device and storage medium
CN112733645A (zh) 手写签名校验方法、装置、计算机设备及存储介质
CN112686053A (zh) 一种数据增强方法、装置、计算机设备及存储介质
Hara et al. Machine-learning approach using solidity bytecode for smart-contract honeypot detection in the ethereum
CN114461833A (zh) 图片取证方法、装置、计算机设备及存储介质
CN111639360A (zh) 智能数据脱敏方法、装置、计算机设备及存储介质
CN115544558A (zh) 敏感信息检测方法、装置、计算机设备及存储介质
CN113918949A (zh) 基于多模态融合的诈骗app的识别方法
CN112417886A (zh) 意图实体信息抽取方法、装置、计算机设备及存储介质
CN116776150A (zh) 接口异常访问识别方法、装置、计算机设备及存储介质
CN114742058B (zh) 一种命名实体抽取方法、装置、计算机设备及存储介质
CN116561737A (zh) 基于用户行为基线的密码有效性检测方法及其相关设备
CN118103839A (zh) 用于检测可疑网络活动的随机字符串分类
CN115545753A (zh) 一种基于贝叶斯算法的合作伙伴预测方法及相关设备
CN115730237A (zh) 垃圾邮件检测方法、装置、计算机设备及存储介质
CN115859273A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40030170

Country of ref document: HK