数据库安全审计管理模块制造技术

技术编号:33531202 阅读:15 留言:0更新日期:2022-05-19 02:02
本发明专利技术公开了数据库安全审计管理模块,包括配置参数、AuditItem结构体和功能函数;配置参数包括审计类型参数、日志类型配置参数、目录日志记录参数、客户端日志记录参数、审计日志级别参数、参数打印配置、数据表行配置参数和声明打印配置参数;AuditItem结构体用于格式化记录目标数据库用户的SQL执行语句操作;功能函数包括初始化审计事件函数、DML审计函数、DDL审计函数、审计函数调用函数和日志记录函数。本发明专利技术在日志记录过程中将执行语句进行解析并提取关键信息,方便管理员进行日常安全维护以及在发生数据泄露后快速定位,并进行后续处理。续处理。续处理。

【技术实现步骤摘要】
数据库安全审计管理模块


[0001]本专利技术涉及数据库安全维护领域,具体涉及一种数据库安全审计管理模块,从开源数据库PostgreSQL着手开发,通过扩展插件的形式将该安全审计插件植入数据库,并且可以跨平台移植。

技术介绍

[0002]近年来,在人工智能、分布式计算等技术高速发展的背景下,数据库作为其分析数据的基本载体,也越来越被重视。当前在医疗健康、信息定制化推送、传感器信息分析等大数据领域,数据库应用需求呈现数据来源多元化、用户需求个性化、权限管理分级化的趋势。
[0003]相比于商用数据库,开源数据库有着可扩展的优势,适用于各种应用领域。其中, PostgreSQL是一个开源的对象

关系型数据库管理系统,由于其操作是目录驱动的,开发者可通过扩展插件的方式将自定义功能函数动态载入数据库系统,并且PostgreSQL以hook 函数重写的形式为开发者提供了便利的接口,能够修改数据库SQL语句翻译、优化、执行等过程中的具体操作方式。相比于其他开源数据库修改数据库源代码从而自定义数据库功能的做法,扩展插件的形式使得开发者不需要修改其数据库系统源代码就能够实现自定义功能,能够干净、高效地进行数据库功能开发,并且随时安装、卸载。由于开发者代码独立于PostgreSQL源代码,当出现错误代码导致数据库崩溃时能够快速定位错误扩展从而进行代码修正,且可以立即卸载插件从而恢复数据库正常使用。
[0004]然而,现有开源数据库的安全审计工具功能单一,缺少集成化、系统化的安全审计组件,只能够简单记录执行的SQL语句,无法辅助管理员以及审计员将SQL语句进行解析。并且,随着企业单位以及个人用户对各类数据库系统的使用频率提升,数据库存储着大量关键、敏感信息,包括个人数据、商业企划的重要信息。如果不设计合理的审计管理组件加以扩展来维护数据库系统安全,数据库信息泄露所造成的影响难以估量。
[0005]数据库安全风险主要来自于系统外部的恶意侵入以及内部人员的非法操作行为和不当语句指令。在数据库系统的访问控制、用户身份核验以及防火墙阻隔等安全防护手段失效后,数据库安全审计技术作为最后一道屏障来保护数据库安全,检测相关违规行为和数据库活动,并记录用户操作,从而来确保数据库系统的安全性和稳定性。该技术属于数据库系统安全的事后防护与补救,能够帮助数据库管理员找到恶意用户以及不当操作语句。

技术实现思路

[0006]本专利技术为了增强数据库安全性,提供一种数据库安全审计管理模块,通过扩展插件的形式植入PostgreSQL数据库系统。
[0007]本专利技术数据库安全审计管理模块,包括配置参数、AuditItem结构体和功能函数;所述的配置参数包括审计类型参数logType、日志类型配置参数logClass、目录日志记录参
数 logCatalog、客户端日志记录参数logClient、审计日志级别参数logLevel、参数打印配置 logParam、数据表行配置参数logRow和声明打印配置参数logStmt;所述的AuditItem结构体用于格式化记录目标数据库用户的SQL执行语句操作;所述的功能函数包括初始化审计事件函数、DML审计函数、DDL审计函数、审计函数调用函数和日志记录函数。
[0008]优选地,所述的审计类型参数logType包括对象审计和会话审计;会话审计使用户所有的数据库会话被日志记录,对象审计只针对管理员特指的用户对于特定数据表的指定行为被日志记录。
[0009]更优选地,所述的审计类型参数logType默认设置为会话审计。
[0010]优选地,所述的日志类型配置参数logClass用于设置被记录进日志的SQL语句类型,包括不记录NONE、读操作READ、写操作WRITE、函数操作FUNC、角色操作ROLE、 DDL操作和全命令,默认设置为NONE;目录日志记录参数logCatalog用于设置用户对于目录的查询语句是否被记录,默认设置为关闭;客户端日志记录参数logClient默认设置为关闭,测试调试时开启可查看审计日志情况;审计日志级别参数logLevel指定用于日志条目的打印等级,默认设置为LOG;参数打印配置logParam配置是否将SQL语句中引入的参数以CSV形式在标准审计日志陈述后打印,默认设置为开启;数据表行配置参数 logRow决定是否记录用户SQL语句影响的数据表条目信息,默认设置为关闭;声明打印配置参数logStmt确认用户执行的整条SQL语句是否记录入日志,默认配置为开启。
[0011]优选地,所述的AuditItem结构体包括审计日志序列logID、消息安全级别logLevel、 SQL语句类型cmdTag、SQL语句cmdText、审计对象类型objType、审计对象名称 objName、语句参数列表paramList和是否已经记录logged。
[0012]优选地,所述的初始化审计事件函数传入PostgreSQL解析用户SQL语句后获得的查询描述符,将用户对数据库发起的查询事件创建成一个标准AuditItem结构体,并将该 AuditItem结构体进行初始化。
[0013]优选地,所述的DML审计函数对数据操纵语言进行会话审计和对象审计,具体如下:首先,获得审计对象的oid,检验该角色ID的有效性;遍历SQL语句的范围表,检测当前会话用户是否为目标审计列表成员,若会话用户不处于目标审计列表中则退出DML 审计函数;其中,在处理第一个范围表时,进行会话日志打印,然后开始解析AuditItem结构体,处理其余范围表时,则直接开始解析AuditItem结构体;解析AuditItem结构体时,根据配置参数中的logLevel和SQL语句的节点标签对AuditItem结构体进行分类,通过解析范围表的请求访问权限和类型参数,来生成节点类型、对象类型以及节点标签,依照配置参数设置条件,如果满足配置参数设置条件则将日志以特定格式进行输出;对于对象审计,根据审计角色获得对表操作的审计授权情况,日志会记录被授权的操作;完成DML 审计函数的安全审计后调用原有标准hook函数,使数据库原有处理流程正常执行。
[0014]优选地,所述的DDL审计函数对数据定义语言以及实用命令进行会话审计,具体如下:首先检查内存上下文环境是否处于“处理实用命令查询”状态或在此之前,不处于则退出DDL审计函数,处于则创建新的AuditItem结构体并将从PostgreSQL优化树中获得的优化声明节点中的各类参数赋值给AuditItem结构体,然后判断,若数据定义语言以及实用命令执行语句为SQL的DO函数块,则在该执行语句调用原有实用命令处理的hook函数之前调用日志记录函数对该执行语句进行日志记录,再调用原有标准hook函数,否则直接调用原有
标准hook函数,使数据库原有处理流程正常执行;最后,如果审计事件仍处于堆栈中,即数据定义语言以及实用命令为非DO函数块,则调用日志记录函数存储执行语句信息。
[0015]优选地,所述的审计函数调用函数对本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.数据库安全审计管理模块,包括配置参数和功能函数,其特征在于:还包括AuditItem结构体;所述的配置参数包括审计类型参数logType、日志类型配置参数logClass、目录日志记录参数logCatalog、客户端日志记录参数logClient、审计日志级别参数logLevel、参数打印配置logParam、数据表行配置参数logRow和声明打印配置参数logStmt;所述的AuditItem结构体用于格式化记录目标数据库用户的SQL执行语句操作;所述的功能函数包括初始化审计事件函数、DML审计函数、DDL审计函数、审计函数调用函数和日志记录函数。2.根据权利要求1所述的数据库安全审计管理模块,其特征在于:所述的审计类型参数logType包括对象审计和会话审计;会话审计使用户所有的数据库会话被日志记录,对象审计只针对管理员特指的用户对于特定数据表的指定行为被日志记录。3.根据权利要求2所述的数据库安全审计管理模块,其特征在于:所述的审计类型参数logType默认设置为会话审计。4.根据权利要求1所述的数据库安全审计管理模块,其特征在于:所述的日志类型配置参数logClass用于设置被记录进日志的SQL语句类型,包括不记录NONE、读操作READ、写操作WRITE、函数操作FUNC、角色操作ROLE、DDL操作和全命令,默认设置为NONE;目录日志记录参数logCatalog用于设置用户对于目录的查询语句是否被记录,默认设置为关闭;客户端日志记录参数logClient默认设置为关闭,测试调试时开启可查看审计日志情况;审计日志级别参数logLevel指定用于日志条目的打印等级,默认设置为LOG;参数打印配置logParam配置是否将SQL语句中引入的参数以CSV形式在标准审计日志陈述后打印,默认设置为开启;数据表行配置参数logRow决定是否记录用户SQL语句影响的数据表条目信息,默认设置为关闭;声明打印配置参数logStmt确认用户执行的整条SQL语句是否记录入日志,默认配置为开启。5.根据权利要求1所述的数据库安全审计管理模块,其特征在于:所述的AuditItem结构体包括审计日志序列logID、消息安全级别logLevel、SQL语句类型cmdTag、SQL语句cmdText、审计对象类型objType、审计对象名称objName、语句参数列表paramList和是否已经记录logged。6.根据权利要求1所述的数据库安全审计管理模块,其特征在于:所述的初始化审计事件函数传入PostgreSQL解析用户SQL语句后获得的查询描述符,将用户对数据库发起的查询事件创建成一个标准AuditItem结构体,并将该AuditItem结构体进行初...

【专利技术属性】
技术研发人员:薛梅婷金江涛寇亮张欢赵备李琛璞黄钰淦
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:

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

1