用于数据库审计系统的SQL新语句识别方法及装置制造方法及图纸

技术编号:28144586 阅读:24 留言:0更新日期:2021-04-21 19:26
本发明专利技术公开一种用于数据库审计系统的SQL新语句识别方法及装置,涉及大数据技术领域,能够有效降低数据库审计系统的资源占用量,进而提升系统性能。该方法包括:接收网络报文中的SQL语句,模块化处理后提取主干语句;针对主干语句进行摘要计算,并将摘要值转换处理成整型值;利用整型值查表比对,并基于比对结果识别SQL语句是否为SQL新语句。该装置应用有上述方案所提的方法。方案所提的方法。方案所提的方法。

【技术实现步骤摘要】
用于数据库审计系统的SQL新语句识别方法及装置


[0001]本专利技术涉及大数据
,尤其涉及一种用于数据库审计系统的SQL新语句识别方法及装置。

技术介绍

[0002]数据库审计系统主要用于审计数据库服务器上的各类操作行为,通过旁路镜像或者安装插件的方式获取数据库服务器的网络报文,然后提取报文中的SQL语句保存到数据库审计系统的数据库中,以便后续进行查询、过滤、分析等操作,从而实现对数据库服务器的监控和审计。
[0003]数据库审计系统通过分析提取的SQL语句,判断被审计的数据库服务器是否存在漏洞或者被攻击行为。从技术实现角度看就是对SQL语句的提取、分析、保存,其中分析就是审计SQL语句是否存在漏洞或者攻击。为了确保审计的准确性,审计系统需要分析所有的SQL语句,随着审计系统部署的数据库服务器的数量越来越多,被审计的数据库业务流量流越来越大,已有的软硬件平台已经不能满足需求。
[0004]经过分析发现,在实际的业务流量中,有很多SQL语句都是相同的,另外还有一些语句的语法主干相同,只是参数值不同而已。以上这类相同的语句在审计系统中其实只需要分析一次,假设数据库审计系统只处理这些不同的SQL语句,那它只需要很小的一部分流量。这就需要审计系统在进行SQL分析前就能识别出哪些语句是首次出现的。
[0005]常用的几种识别SQL语句的方法主要有:字符匹配、AI识别、SQL语义解析等。上述几种方法都有一定的弊端,比如字符匹配无法忽略不同参数值,如ID=3和ID=4,字符匹配会认为这是两条语句,无法有效过滤重复语句,另外大量超长SQL语句对CPU和存储空间都有很高的要求;AI识别在实际使用中短时间内也无法保证准确度,另外还需要增加额外的硬件服务器,反而会增加系统的部署成本;SQL语义分析同样比较占资源,新语句识别就是为了过滤掉大量重复的语句,降低后续SQL语义分析的负载,只有新语句才需要做语义分析。

技术实现思路

[0006]本专利技术的目的在于提供一种用于数据库审计系统的SQL新语句识别方法及装置,能够有效降低数据库审计系统的资源占用量,进而提升系统性能。
[0007]为了实现上述目的,本专利技术的第一方面提供一种用于数据库审计系统的SQL新语句识别方法,包括:
[0008]接收网络报文中的SQL语句,模块化处理后提取主干语句;
[0009]针对所述主干语句进行摘要计算,并将摘要值转换处理成整型值;
[0010]利用所述整型值查表比对,并基于比对结果识别所述SQL语句是否为SQL新语句。
[0011]优选地,模块化处理后提取主干语句的方法包括:
[0012]识别所述SQL语句中的SQL语法关键字,剔除所述SQL语句中除SQL语法关键字之外
的内容得到所述主干语句。
[0013]较佳地,针对所述主干语句进行摘要计算之前还包括:
[0014]识别所述主干语句中是否存在组合值;
[0015]若存在则对组合值进行合并处理,再对其中的参数值采用通用字符替换进行去值处理;
[0016]若不存在,则直接对其中的参数值采用通用字符替换进行去值处理;
[0017]所述参数值包括变量参数和/或字符串。
[0018]较佳地,针对所述主干语句进行摘要计算之前还包括:
[0019]将所述主干语句的非ascii码采用通用字符进行替换处理。
[0020]优选地,针对所述主干语句进行摘要计算,并将摘要值转换处理得到整型值的方法包括:
[0021]采用MD5算法对处理后的所述主干语句进行摘要计算,得到摘要值;
[0022]从所述摘要值中提取固定位置的部分字节数据,采用整型算法转化成整型值。
[0023]进一步地,利用所述整型值查表比对,并基于比对结果识别所述SQL语句是否为SQL新语句的方法包括:
[0024]所述表中包括多个与主干语句一一对应的key

value键值对,所述key值为对应主干语句的整型值,所述value值为对应SQL语句的接收时间;
[0025]针对当前接收到的SQL语句对应的整型值查表,若所述表中存在与所述整型值相同的key值,则识别所述SQL语句不是SQL新语句,同时将所述整型值作为key值,将所述SQL语句的接收时间作为value值,以key

value键值对的形式存入表中;
[0026]若所述表中不存在与所述整型值相同的key值,则识别所述SQL语句为SQL新语句。
[0027]进一步地,识别所述SQL语句不是SQL新语句之后还包括:
[0028]比较新加入表中的所述SQL语句与表中已存在的相同key值对应SQL语句的接收时间差值,并在接收时间差值超过阈值时删除表中已存在的key

value键值对。
[0029]优选地,根据权利要求1所述的方法,其特征在于,还包括:
[0030]对识别为SQL新语句的SQL语句进行新语句标识;
[0031]将标识结果、对应的所述SQL语句、对应的所述整型值整合成一条json数据,提交至消息队列以供消费;
[0032]利用风险引擎从消息队列中消费所述json数据,提供针对SQL新语句的风险分析服务。
[0033]与现有技术相比,本专利技术提供的用于数据库审计系统的SQL新语句识别方法具有以下有益效果:
[0034]本专利技术提供的用于数据库审计系统的SQL新语句识别方法中,在接收到网络报文的SQL语句时,通过模块化处理后提取主干语句,并针对主干语句进行摘要计算,并将摘要值转换处理成整型值,之后利用整型值查表比对,若表中存在与整型值相同的key值,则识别SQL语句不是SQL新语句,同时将整型值作为key值,将SQL语句的接收时间作为value值,以key

value键值对的形式存入表中,若表中不存在与整型值相同的key值,则识别SQL语句为SQL新语句。
[0035]可见,本专利技术首先对SQL语句进行模板化处理,提取SQL语法主干,然后对SQL语法
主干进行摘要计算,最终用一个整型数值标识一组具备相同语义的SQL语句。与现有技术中的字符匹配方案相比,本专利技术方案屏蔽了不停变化的value值信息,只关注语句主干。与现有技术中的SQL语义分析相比,本专利技术方案不做具体的语义分析,重点关注语句是否相同,避免了不必要的语义分析占用过多的系统资源。通过生产环境实际使用数据表明,采用本专利技术方案的新语句识别方法所占资源在系统中几乎可以忽略不计,因此可以有效降低数据库审计系统的资源占用量,提升系统性能。
[0036]本专利技术的第二方面提供一种用于数据库审计系统的SQL新语句识别装置,应用于上述技术方案所述的用于数据库审计系统的SQL新语句识别方法中,所述装置包括:
[0037]主干提取单元,用于接收网络报文中的SQL语句,模块化处理后得到主干语句;
[0038]整型处理单元,用于针对所述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于数据库审计系统的SQL新语句识别方法,其特征在于,包括:接收网络报文中的SQL语句,模块化处理后提取主干语句;针对所述主干语句进行摘要计算,并将摘要值转换处理成整型值;利用所述整型值查表比对,并基于比对结果识别所述SQL语句是否为SQL新语句。2.根据权利要求1所述的方法,其特征在于,模块化处理后提取主干语句的方法包括:识别所述SQL语句中的SQL语法关键字,剔除所述SQL语句中除SQL语法关键字之外的内容得到所述主干语句。3.根据权利要求1或2所述的方法,其特征在于,针对所述主干语句进行摘要计算之前还包括:识别所述主干语句中是否存在组合值;若存在则对组合值进行合并处理,再对其中的参数值采用通用字符替换进行去值处理;若不存在,则直接对其中的参数值采用通用字符替换进行去值处理;所述参数值包括变量参数和/或字符串。4.根据权利要求1或3所述的方法,其特征在于,针对所述主干语句进行摘要计算之前还包括:将所述主干语句的非ascii码采用通用字符进行替换处理。5.根据权利要求3或4所述的方法,其特征在于,针对所述主干语句进行摘要计算,并将摘要值转换处理得到整型值的方法包括:采用MD5算法对处理后的所述主干语句进行摘要计算,得到摘要值;从所述摘要值中提取固定位置的部分字节数据,采用整型算法转化成整型值。6.根据权利要求5所述的方法,其特征在于,利用所述整型值查表比对,并基于比对结果识别所述SQL语句是否为SQL新语句的方法包括:所述表中包括多个与主干语句一一对应的key

value键值对,所述key值为对应主干语句的整型值,所述value值为对应S...

【专利技术属性】
技术研发人员:韦建明葛毅李宗霖
申请(专利权)人:江苏苏宁云计算有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1