1.本技术涉及到数据库领域,具体而言,涉及一种基于数据包的会话处理方法和系统。
背景技术:
2.数据库审计以安全事件为中心,以全面审计和精确审计为基础,实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行实时告警。它通过对用户访问数据库行为的记录、分析和汇报,来帮助用户事后生成合规报告、事故追根溯源,同时通过大数据搜索技术提供高效查询审计报告,定位事件原因,以便日后查询、分析、过滤,实现加强内外部数据库网络行为的监控与审计,提高数据资产安全。
3.在某种情况下,仅需要设计运维访问数据库时所进行的操作,但是,在现有技术中无法区分是运维访问数据库还是应用访问数据库,从而无法针对运维访问进行审计。
技术实现要素:
4.本技术实施例提供了一种基于数据包的会话处理方法和系统,以至少解决现有技术中无法区分是运维访问还是应用访问所导致的问题。
5.根据本技术的一个方面,提供了一种基于数据包的会话处理方法,包括:获取访问数据库的数据库流量;对于所述数据库流量中的每个会话分别获取该会话创建之后的前n个数据包;从所述前n个数据包中获取所述会话的会话信息,其中,所述会话信息包括:访问数据库使用的用户名、访问数据库所使用的客户端工具的名称以及访问所述数据库的客户端的网络地址;根据所述会话的会话信息判断所述会话内所执行的数据库操作的性质。
6.进一步地,根据所述会话信息判断所述会话内所执行的数据库操作的性质包括:根据所述会话信息和预先配置的行为特征判断所述会话内所执行的数据库操作是运维进行的操作或者是应用进行的操作。
7.进一步地,所述预先配置的行为特征包括:使用特定用户名、使用特定客户端工具或者使用特定网络地址的客户端的会话为运维进行的操作。
8.进一步地,根据所述会话信息判断所述会话内所执行的数据库操作的性质包括:根据所述会话信息判断所述会话内所执行的数据库操作是否为风险行为。
9.进一步地,所述风险行为包括以下至少之一:撞库、非法访问、暴力破解。
10.根据本技术的另一个方面,还提供了一种基于数据包的会话处理系统,包括:第一获取模块,用于获取访问数据库的数据库流量;第二获取模块,用于对于所述数据库流量中的每个会话分别获取该会话创建之后的前n个数据包;第三获取模块,用于从所述前n个数据包中获取所述会话的会话信息,其中,所述会话信息包括:访问数据库使用的用户名、访问数据库所使用的客户端工具的名称以及访问所述数据库的客户端的网络地址;判断模块,用于根据所述会话的会话信息判断所述会话内所执行的数据库操作的性质。
11.进一步地,所述判断模块用于:根据所述会话信息和预先配置的行为特征判断所述会话内所执行的数据库操作是运维进行的操作或者是应用进行的操作。
12.进一步地,所述预先配置的行为特征包括:使用特定用户名、使用特定客户端工具或者使用特定网络地址的客户端的会话为运维进行的操作。
13.进一步地,所述判断模块用于:根据所述会话信息判断所述会话内所执行的数据库操作是否为风险行为。
14.进一步地,所述风险行为包括以下至少之一:撞库、非法访问、暴力破解。
15.在本技术实施例中,采用了获取访问数据库的数据库流量;对于所述数据库流量中的每个会话分别获取该会话创建之后的前n个数据包;从所述前n个数据包中获取所述会话的会话信息,其中,所述会话信息包括:访问数据库使用的用户名、访问数据库所使用的客户端工具的名称以及访问所述数据库的客户端的网络地址;根据所述会话的会话信息判断所述会话内所执行的数据库操作的性质。通过本技术解决了现有技术中无法区分是运维访问还是应用访问所导致的问题,从而能够区分出运维访问,为审计运维访问提供了可能。
附图说明
16.构成本技术的一部分的附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:图1是根据本技术实施例的基于数据包的会话处理方法的流程图。
具体实施方式
17.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
18.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
19.在本实施例中提供了一种基于数据包的会话处理方法,图1是根据本技术实施例的基于数据包的会话处理方法的流程图,如图1所示,该方法包括如下步骤:步骤s102,获取访问数据库的数据库流量;步骤s104,对于所述数据库流量中的每个会话分别获取该会话创建之后的前n个数据包(例如,前30个数据包);步骤s106,从所述前n个数据包中获取所述会话的会话信息,其中,所述会话信息包括:访问数据库使用的用户名、访问数据库所使用的客户端工具的名称以及访问所述数据库的客户端的网络地址;例如,可以对抓到的数据包进行解析,在数据包中internet protocol version 4字段中,src:10.10.10.10,这个ip地址就是访问数据库的客户端的网络地址。在数据包中可以解析得到username:root,root就是访问数据库所使用的用户名,在数据包中还可以解析到program_name:mysqlworkbench,这其中的mysqlworkbench就是访问数据库所使用的客户端工具的名称。即在本步骤中,对数据包进行解析,从前n个数据包中用于指示访问数据库使用的用户名的字段、用于指示访问数据库所使用的客户端工具的名称的字段以及用
于指示访问所述数据库的客户端的网络地址的字段,从这些字段中可以得到需要的会话信息。
20.步骤s108,根据所述会话的会话信息判断所述会话内所执行的数据库操作的性质。
21.在该步骤中,可以判断出会话所执行的数据库操作的性质的例子有很多,例如,根据所述会话信息和预先配置的行为特征判断所述会话内所执行的数据库操作是运维进行的操作或者是应用进行的操作。可选地,所述预先配置的行为特征可以包括:使用特定用户名、使用特定客户端工具或者使用特定网络地址的客户端的会话为运维进行的操作。下面对此进行举例说明,运维特征场景确认:来自于堡垒机ip、运维主机ip网段可以确定为运维访问;来自于特定数据库用户,例如root、sys之类的高权用户一般为运维访问;来自于特定工具的访问,例如mysqlworkbench和sqlplus一般为运维访问。同理,来自于应用服务器ip的访问为应用访问来自于应用所用的数据库访问用户的访问一般为应用访问部分应用会在登陆信息里面注册自己的应用名称,也可以用来做应用访问识别。
22.又例如,根据所述会话信息判断所述会话内所执行的数据库操作是否为风险行为。可选地,所述风险行为可以包括以下至少之一:撞库、非法访问、暴力破解。
23.通过上述步骤解决了现有技术中无法区分是运维访问还是应用访问所导致的问题,从而能够区分出运维访问,为审计运维访问提供了可能。
24.作为一个可选的实施方式,记录解析出所述用户名、所述客户端工具的名称以及所述客户端的网络地址的数据包是该会话中的第几个数据包,统计所述用户名、所述客户端工具的名称以及所述客户端网络地址所在的数据包在会话中的出现的预定位置,在后续解析数据包时,首先解析预定位置的数据包,如果未能解析得到所述用户名、所述客户端工具以及所述客户端的网络地址,则再对前n个数据包进行解析。
25.作为另一个可选的实施方式,预先配置预定用户名、预定客户端工具以及预定客户端网络地址所能够执行的操作,在判断出预定会话为运维访问的情况下,根据运维访问所使用的用户名、客户端工具和/或网络地址确定该运维会话能够运行的sql语句以及禁止运行的sql语句,获取该预定会话中执行的sql语句,在执行的sql语句不属于该运维会话能够运行的sql语句或者属于禁止运行的sql语句,则进行记录并发出告警信息。通过该可选的实施方式,不仅仅能够判断该访问是否为运维访问,并且还能够对运维访问中所使用的sql语句进行审计,从而在一定程度上提高了数据库访问的安全性。
26.作为另一个可选实施例,从所述前n个数据包中未获取所述会话的会话信息的情况下,获取该会话所执行的sql语句,根据所执行的sql语句中是否包括预定语句判断该会话是运维访问或者是应用访问,其中,所述预定语句为预先配置的。
27.在本实施例中,提供一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行以上实施例中的方法。
28.上述程序可以运行在处理器中,或者也可以存储在存储器中(或称为计算机可读介质),计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (pram)、静态随机存取存储器 (sram)、动态随机存取存储器 (dram)、其他类型的随机存取存储器 (ram)、只读存储器 (rom)、电可
擦除可编程只读存储器 (eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器 (cd-rom)、数字多功能光盘 (dvd) 或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
29.这些计算机程序也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤,对应与不同的步骤可以通过不同的模块来实现。
30.该本实施例中就提供了这样的一种装置或系统。该系统被称为基于数据包的会话处理系统,包括:第一获取模块,用于获取访问数据库的数据库流量;第二获取模块,用于对于所述数据库流量中的每个会话分别获取该会话创建之后的前n个数据包;第三获取模块,用于从所述前n个数据包中获取所述会话的会话信息,其中,所述会话信息包括:访问数据库使用的用户名、访问数据库所使用的客户端工具的名称以及访问所述数据库的客户端的网络地址;判断模块,用于根据所述会话的会话信息判断所述会话内所执行的数据库操作的性质。
31.该系统或者装置用于实现上述的实施例中的方法的功能,该系统或者装置中的每个模块与方法中的每个步骤相对应,已经在方法中进行过说明的,在此不再赘述。
32.例如,所述判断模块用于:根据所述会话信息和预先配置的行为特征判断所述会话内所执行的数据库操作是运维进行的操作或者是应用进行的操作。
33.又例如,所述判断模块用于:根据所述会话信息判断所述会话内所执行的数据库操作是否为风险行为。
34.通过上述实施例解决了现有技术中无法区分是运维访问还是应用访问所导致的问题,从而能够区分出运维访问,为审计运维访问提供了可能。
35.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
技术特征:
1.一种基于数据包的会话处理方法,其特征在于,包括:获取访问数据库的数据库流量;对于所述数据库流量中的每个会话分别获取该会话创建之后的前n个数据包;从所述前n个数据包中获取所述会话的会话信息,其中,所述会话信息包括:访问数据库使用的用户名、访问数据库所使用的客户端工具的名称以及访问所述数据库的客户端的网络地址;根据所述会话的会话信息判断所述会话内所执行的数据库操作的性质。2.根据权利要求1所述的方法,其特征在于,根据所述会话信息判断所述会话内所执行的数据库操作的性质包括:根据所述会话信息和预先配置的行为特征判断所述会话内所执行的数据库操作是运维进行的操作或者是应用进行的操作。3.根据权利要求2所述的方法,其特征在于,所述预先配置的行为特征包括:使用特定用户名、使用特定客户端工具或者使用特定网络地址的客户端的会话为运维进行的操作。4.根据权利要求1所述的方法,其特征在于,根据所述会话信息判断所述会话内所执行的数据库操作的性质包括:根据所述会话信息判断所述会话内所执行的数据库操作是否为风险行为。5.根据权利要求4所述的方法,其特征在于,所述风险行为包括以下至少之一:撞库、非法访问、暴力破解。6.一种基于数据包的会话处理系统,其特征在于,包括:第一获取模块,用于获取访问数据库的数据库流量;第二获取模块,用于对于所述数据库流量中的每个会话分别获取该会话创建之后的前n个数据包;第三获取模块,用于从所述前n个数据包中获取所述会话的会话信息,其中,所述会话信息包括:访问数据库使用的用户名、访问数据库所使用的客户端工具的名称以及访问所述数据库的客户端的网络地址;判断模块,用于根据所述会话的会话信息判断所述会话内所执行的数据库操作的性质。7.根据权利要求6所述的系统,其特征在于,所述判断模块用于:根据所述会话信息和预先配置的行为特征判断所述会话内所执行的数据库操作是运维进行的操作或者是应用进行的操作。8.根据权利要求7所述的系统,其特征在于,所述预先配置的行为特征包括:使用特定用户名、使用特定客户端工具或者使用特定网络地址的客户端的会话为运维进行的操作。9.根据权利要求6所述的系统,其特征在于,所述判断模块用于:根据所述会话信息判断所述会话内所执行的数据库操作是否为风险行为。10.根据权利要求9所述的系统,其特征在于,所述风险行为包括以下至少之一:撞库、非法访问、暴力破解。
技术总结
本申请公开了一种基于数据包的会话处理方法和系统,该方法包括:获取访问数据库的数据库流量;对于所述数据库流量中的每个会话分别获取该会话创建之后的前N个数据包;从所述前N个数据包中获取所述会话的会话信息,其中,所述会话信息包括:访问数据库使用的用户名、访问数据库所使用的客户端工具的名称以及访问所述数据库的客户端的网络地址;根据所述会话的会话信息判断所述会话内所执行的数据库操作的性质。通过本申请解决了现有技术中无法区分是运维访问还是应用访问所导致的问题,从而能够区分出运维访问,为审计运维访问提供了可能。可能。可能。
技术研发人员:刘晓韬 李彦君
受保护的技术使用者:北京安华金和科技有限公司
技术研发日:2022.04.24
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-7761.html