一种数据库审计方法、装置、电子设备与流程

文档序号:33712852发布日期:2023-04-01 00:40阅读:48来源:国知局
一种数据库审计方法、装置、电子设备与流程

1.本公开涉及数据库相关技术领域,具体涉及一种数据库审计方法、装置、电子设备。


背景技术:

2.对数据库的操作记录包括两大类:
3.a类(生产操作)即业务生产过程中的每一次查询、删除、新增等信息;
4.b类(人为操作)即出于生产故障排查、开发工作、数据核对等需求,在此过程中,开发或审计人员对于数据库的操作信息;
5.本着数据信息安全可溯原则,并符合国家信息安全等级保护制度,需自动甄别每一笔记录为a类或b类,对人为操作进行审计并对异常人为操作进行识别以保证数据库的安全。但如网约车业务,以上两类信息日均共产生数十tb级别的日志量。对数十tb级别日志的实时在线分析会造成数据库集群抖动,从而影响到生产业务。


技术实现要素:

6.本公开实施例提出了一种数据库审计方法、一种数据库审计装置和一种电子设备,以使开发或审计人员只能通过跳板机对数据库集群进行操作并对所述操作记录进行审计,从而解决了现有技术无法在线对人为操作进行审计和分析的问题。
7.本公开实施例的第一方面提供了一种数据库审计方法,其特征在于,包括:
8.监听跳板机,获取通过所述跳板机登录数据库的用户的登录信息,其中,所述数据库被配置为只允许用户通过跳板机访问;
9.消费消息平台,获取所述跳板机对所述数据库的操作信息,其中,所述跳板机被配置为登录数据库后,将对所述数据库的操作信息实时推送到所述消息平台;
10.关联所述登录信息和所述操作信息,生成数据库人为操作记录。
11.在一些实施例中所述方法还包括:
12.根据预设值,识别所述数据库人为操作记录中的异常人为操作记录并报警。
13.在一些实施例中,所述登录信息包括:用户在跳板机的用户标识、登录名、登录ip、登录端口、登录时间和登出时间。
14.在一些实施例中,所述操作信息包括:用户在跳板机的用户标识、执行的数据库操作语句、数据库返回行数、执行时间、源ip地址、目的ip地址、源端口、目的端口。
15.在一些实施例中,所述关联所述登录信息和所述操作信息包括:
16.通过所述用户在跳板机的用户标识关联所述登录信息和所述操作信息。
17.在一些实施例中,当所述预设值是所述登录名和所述登录ip的对应关系时,所述识别所述数据库人为操作记录中的异常人为操作记录包括:
18.获取所述数据库人为操作记录中的登录名和登录ip,如果所述登录名和所述登录ip与预设的登录名和登录ip对应关系不符,则识别所述数据库人为操作记录为异常人为操
作记录。
19.在一些实施例中,当所述预设值是预设的与每个登录名对应的最大数据库返回行数时,所述识别所述数据库人为操作记录中的异常人为操作记录包括:
20.获取所述数据库人为操作记录中所述登录名和所述数据库返回行数,如果所述数据库返回行数大于所述登录名对应的最大数据库返回行数,则识别所述数据库人为操作记录为异常人为操作记录。
21.本公开实施例的第二方面提供了一种数据库审计装置,其特征在于,包括:
22.第一获取模块,用于监听跳板机,获取通过所述跳板机登录数据库的用户的登录信息,其中,所述数据库被配置为只允许用户通过跳板机访问;
23.第二获取模块,用于消费消息平台,获取所述跳板机对所述数据库的操作信息,其中,所述跳板机被配置为登录数据库后,将对所述数据库的操作信息实时推送到所述消息平台;
24.生成模块,用于关联所述登录信息和所述操作信息,生成数据库人为操作记录。
25.本公开实施例的第三方面提供了一种电子设备,其特征在于:包括存储器和处理器,
26.所述存储器,用于存储计算机程序;
27.所述处理器,用于当执行所述计算机程序时,实现根据本公开第一方面所述的数据库审计方法。
28.本公开实施例的第四方面提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现根据本公开第一方面所述的数据库审计方法。
29.本公开实施例的第五方面提供了一种计算机程序产品,包括计算机程序、指令,当所述计算机程序、指令被处理器执行时,实现根据本公开第一方面所述的数据库审计方法。
30.本公开实施例通过使开发或审计人员只能通过跳板机对数据库集群进行操作,并将所述操作整合后进行审计分析,因为只对开发或审计人员对数据库的人为操作进行审计,而人为操作的数据量相对少,从而可以做到对人为操作的在线审计和分析。
附图说明
31.通过参考附图会更加清楚的理解本公开的特征和优点,附图是示意性的而不应理解为对本公开进行任何限制,在附图中:
32.图1是根据本公开适用的一种数据库审计系统的示意图;
33.图2是根据本公开的一些实施例所示的一种数据库审计方法的流程图;
34.图3是根据本公开的一些实施例所示的一种数据库审计装置的示意图;
35.图4本公开的一些实施例所示的一种电子设备示意图。
具体实施方式
36.在下面的详细描述中,通过示例阐述了本公开的许多具体细节,以便提供对相关披露的透彻理解。然而,对于本领域的普通技术人员来讲,本公开显而易见的可以在没有这些细节的情况下实施。应当理解的是,本公开中使用“系统”、“装置”、“单元”和/或“模块”术
语,是用于区分在顺序排列中不同级别的不同部件、元件、部分或组件的一种方法。然而,如果其他表达式可以实现相同的目的,这些术语可以被其他表达式替换。
37.应当理解的是,当设备、单元或模块被称为“在
……
上”、“连接到”或“耦合到”另一设备、单元或模块时,其可以直接在另一设备、单元或模块上,连接或耦合到或与其他设备、单元或模块通信,或者可以存在中间设备、单元或模块,除非上下文明确提示例外情形。例如,本公开所使用的术语“和/或”包括一个或多个相关所列条目的任何一个和所有组合。
38.本公开所用术语仅为了描述特定实施例,而非限制本公开范围。如本公开说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的特征、整体、步骤、操作、元素和/或组件,而该类表述并不构成一个排它性的罗列,其他特征、整体、步骤、操作、元素和/或组件也可以包含在内。
39.参看下面的说明以及附图,本公开的这些或其他特征和特点、操作方法、结构的相关元素的功能、部分的结合以及制造的经济性可以被更好地理解,其中说明和附图形成了说明书的一部分。然而,可以清楚地理解,附图仅用作说明和描述的目的,并不意在限定本公开的保护范围。可以理解的是,附图并非按比例绘制。
40.本公开中使用了多种结构图用来说明根据本公开的实施例的各种变形。应当理解的是,前面或下面的结构并不是用来限定本公开。本公开的保护范围以权利要求为准。
41.图1是本公开适用的数据库审计系统的示意图。图1所示的系统包括mysql数据库集群、跳板服务器、kafka服务器、日志存储。
42.本技术中,数据库审计是指记录数据库中的连接和用户活动相关的信息并保存为审计日志。
43.其中,所述mysql数据库集群关闭所有远程访问生产环境数据库的权限,代之以跳板机(jumpserver)给开发或审计人员提供人工查询线上数据库的统一入口;
44.跳板机(jumpserver)原是作为人为连接线上数据库的网络中转服务器,在本技术中使其作为可以人为正常连接线上数据库服务器的唯一网络中转介质,跳板机非一直连接数据库,而是作为连接的网络中转,随着人员连接新建连接,断开随之断开。
45.开发人员或者审计人员通过vpn登录跳板机,并通过跳板机登录所述mysql数据库集群。根据开发或审计人员进行生产故障排查、开发工作、数据核对等实际需求,给予开放相应数据库操作权限,默认仅开放查询权限。
46.所述跳板机登录所述mysql数据库集群后对数据库集群的操作信息也实时推送到kafka服务器。kafka是一种开源的流式消息发布订阅处理平台。在本技术中,任何消息发布订阅处理平台都适用。
47.所述跳板机上部署有packetbeat,一种开源的实时网络数据包分析工具。packetbeat会实时消费kafka,得到跳板机对数据库集群的操作信息从而形成记录在数据库运行时的每个查询的活动日志。
48.同时跳板机上部署的监听程序也可以监听跳板机系统安全日志以得到登录信息,基于所述登录信息可以形成记录身份验证尝试以及连接与断开连接的连接日志。
49.所述跳板机将所述活动日志和所述连接日志整合后形成用户活动日志并发往日志存储服务器完成审计。
50.图2是根据本公开的一些实施例所示的一种数据库审计的流程图。在一些实施例中,所述数据库审计可以由图1所示的跳板机执行。如图2所示,所述服务执行方法包括以下步骤:
51.s201,监听跳板机,获取通过所述跳板机登录数据库的用户的登录信息,其中,所述数据库被配置为只允许用户通过跳板机访问。
52.具体的,所述数据库关闭所有远程访问生产环境数据库的权限,代之以跳板机(jump server)给开发或审计人员提供人工查询线上数据库的统一入口。
53.开发或审计人员通过跳板机登录数据库集群后,跳板机上部署的监听程序可以通过监听跳板机系统安全日志(/var/log/secure),将登录用户的相关信息解析入库。
54.在本公开的一些实施例中,所述登录信息具体包括:
55.ssh id(用户登录跳板机后在系统安全日志记录的唯一id)
56.登录名
57.登录ip
58.登录端口
59.登录或登出时间。
60.s202,消费消息平台,获取所述跳板机对所述数据库的操作信息,其中,所述跳板机被配置为登录数据库后,将对所述数据库的操作信息实时推送到所述消息平台。
61.具体的,所述跳板机登录所述mysql数据库集群后也将对所述数据库集群的操作信息实时推送到消息发布订阅处理平台。
62.在本公开的一些实施例中,所述消息发布订阅处理平台是kafka。
63.所述跳板机上部署有packetbeat,一种开源的实时网络数据包分析工具。packetbeat实时消费kafka,得到跳板机对数据库集群的操作信息。
64.在本公开的一些实施例中,所述操作信息包括:
65.四元组信息(源ip地址、目的ip地址、源端口、目的端口)
66.执行的数据库操作语句
67.数据库返回行数
68.执行时间
69.ssh id(用户登录跳板机后在系统安全日志记录的唯一id)。
70.s203,关联所述登录信息和所述操作信息,生成数据库人为操作记录。
71.具体的,在本公开的一些实施例中,通过ssh id关联所述所述登录信息和所述操作信息从而可以得到对数据库的人为操作记录。将所述人为操作记录可以发往日志存储服务器以完成审计。
72.在本公开的一些实施例中,所述方法还包括s204:
73.根据预设值,识别所述数据库人为操作记录中的异常人为操作记录并报警。
74.s204可以由图1所示的跳板机执行。
75.具体的,在本公开的一些实施例中,当所述预设值是所述登录名和所述登录ip的对应关系时,所述识别所述数据库人为操作记录中的异常人为操作记录包括:
76.获取所述数据库人为操作记录中的登录名和登录ip,如果所述登录名和所述登录ip与预设的登录名和登录ip对应关系不符,则识别所述数据库人为操作记录为异常人为操
作记录。
77.因为允许访问数据库的来源ip和用户名是一对一绑定的,当出现用户名和来源ip不匹配的情况下,就可以判定是异常登录。
78.当所述预设值是预设的与每个登录名对应的最大数据库返回行数时,所述识别所述数据库人为操作记录中的异常人为操作记录包括:
79.获取所述数据库人为操作记录中所述登录名和所述数据库返回行数,如果所述数据库返回行数大于所述登录名对应的最大数据库返回行数,则识别所述数据库人为操作记录为异常人为操作记录。
80.数据库给不同的人员根据其工作性质赋予了不同的最大数据库返回行数。如果所述人员对数据库的操作获得的数据库返回行数超过了所述最大数据库返回行数,则就可以判定所述操作是异常操作。
81.如开发人员,一般查询线上数据是用来定位问题,所以正常查询是每次几条几十条,所以开发人员如果要是在设置时间内,比如一分钟查询了上万条数据,这种就可以认为有异常。
82.对异常登录和异常操作,可以发送定制化的报警信息,推送钉钉消息,及发送报警邮件进行报警。
83.图3是根据本公开的一些实施例所示的数据库审计装置的示意图。所述数据库审计装置300包括第一获取模块310、第二获取模块320、生成模块330、识别模块340,所述数据库审计的功能可以由图1所示的跳板机执行。
84.其中:
85.第一获取模块310,用于监听跳板机,获取通过所述跳板机登录数据库的用户的登录信息,其中,所述数据库被配置为只允许用户通过跳板机访问;
86.第二获取模块320,用于消费消息平台,获取所述跳板机对所述数据库的操作信息,其中,所述跳板机被配置为登录数据库后,将对所述数据库的操作信息实时推送到所述消息平台;
87.生成模块330,用于关联所述登录信息和所述操作信息,生成数据库人为操作记录。
88.识别模块340,用于根据预设值,识别所述数据库人为操作记录中的异常人为操作记录并报警。
89.图4是根据本公开的一些实施例所示的一种电子设备的示意图,所述电子设备400包括存储器420和处理器410,所述存储器420,用于存储计算机程序;所述处理器410,用于当执行所述计算机程序时,实现s201-s204所述数据库审计方法。
90.本技术的一个实施例提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现s201-s204所述数据库审计方法。
91.本技术的一个实施例提供了一种计算机程序产品,包括计算机程序、指令,当所述计算机程序、指令被处理器执行时,实现s201-s204所述数据库审计方法。
92.综上所述,本技术各实施例提供的数据库审计方法、数据库审计装置、电子设备、计算机可读存储介质和程序产品,通过使开发或审计人员只能通过跳板机对数据库集群进行操作,并将所述操作整合后进行审计分析,因为只对开发或审计人员对数据库的人为操
作进行审计,而人为操作的数据量相对少,从而可以做到对人为操作的在线审计和分析。
93.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述装置实施例中的对应描述,在此不再赘述。
94.尽管此处所述的主题是在结合操作系统和应用程序在计算机系统上的执行而执行的一般上下文中提供的,但本领域技术人员可以认识到,还可结合其他类型的程序模块来执行其他实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。本领域技术人员可以理解,此处所述的本主题可以使用其他计算机系统配置来实践,包括手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、小型计算机、大型计算机等,也可使用在其中任务由通过通信网络连接的远程处理设备执行的分布式计算环境中。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备的两者中。
95.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
96.应当理解的是,本公开的上述具体实施方式仅仅用于示例性说明或解释本公开的原理,而不构成对本公开的限制。因此,在不偏离本公开的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。此外,本公开所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1