一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种用于数据库逻辑日志审计的方法及装置与流程

2021-12-14 23:23:00 来源:中国专利 TAG:
1.本发明属于数据库领域,更具体地,涉及一种用于数据库逻辑日志审计的方法及装置。
背景技术
::2.目前,数据库是任何商业和公共安全中最具有战略性的资产,通常都保存着重要的商业和客户信息,需要被保护起来,以防止竞争者和其他非法者获取。而互联网的急速发展也使得企业数据库信息的价值及可访问性得到了提升,同时也是信息资产的安全面临严峻的挑战。3.数据库审计能够实时地记录应用系统上的数据库操作记录,对数据库操作进行细粒度审计的合理化管理,对数据库可能遭受到的风险行为进行预警,并对攻击性行为能够进行阻断。它通过对用户访问数据库行为的记录、分析和汇报,用来帮助用户事后生成合规报告、对事故追根溯源,同时加强内外数据库网络行为记录,提高数据资产安全。4.在当前越来越多的业务上云的情景下,随着海量数据急剧膨胀,如何高效地开展相关的日志审计工作变得尤为重要。当前各大云厂商主流的日志审计系统主要采用了类似的elk系统来完成相关的日志监控及后续的审计工作。而elk由elasticsearch、logstash和kibana三个部分组成,其中elasticsearch是一个开源的分布式搜索引擎,logstash对日志进行收集和过滤,kibana对处理过的数据进行可视化的展示。后来,一些改良的系统中将消耗系统性能过大的logstash替换成了轻量级的filebeat来完成相关的聚合操作。而这些类似的elk系统主要针对事后的审计分析操作,并不能阻止一些恶意的用户行为和一些破坏性的动作,并无法避免一些恶意的sql操作行为。而且对数据库系统本身的性能损失也比较大,主要针对单一数据库用途,占用了更多的硬件和系统资源,不够高效。5.鉴于此,克服该现有技术所存在的缺陷是本
技术领域
:亟待解决的问题。技术实现要素:6.针对现有技术的以上缺陷或改进需求,本发明提供了一种用于数据库逻辑日志审计的方法及装置,其目的在于克服上述
背景技术
:的不足,通过对数据库中的逻辑日志进行解析、过滤和回放,实现数据库日志的事中审计,由此解决在不影响主数据库效率的情况下,降低主系统负载,让云平台系统下的日志审计变得更加安全可靠的技术问题。7.为实现上述目的,按照本发明的一个方面,提供了一种用于数据库逻辑日志审计的方法,方法包括:8.将数据库产生的逻辑日志进行解析,生成符合数据库语言的动作组合;9.按照预设的评分标准,对于所述符合数据库语言的动作组合进行安全级别评分;10.分数超过预设阈值的动作组合判定为安全,所述安全动作组合进入数据库设置的延迟库中;11.所述安全动作组合进入延迟库时添加延迟时间标记,在达到延迟时间后,所述安全动作组合对应的逻辑日志sql在数据库中进行数据回放。12.优选地,所述将数据库产生的逻辑日志进行解析,生成符合数据库语言的动作,具体方法包括:13.根据所述逻辑日志流的sql属性和用户的权限特征解析数据库的逻辑日志流;14.将数据库的逻辑日志流解析生成符合数据库语言ddl和dml的动作;15.对所述符合数据库语言ddl和dml的动作组合以及属性进行安全级别评分。16.优选地,所述按照预设的评分标准,对于所述符合数据库语言的动作组合进行安全级别评分,具体方法包括:17.所述符合数据库语言ddl的动作包括:create、alter和drop;18.所述符合数据库语言dml的动作包括:select、insert、update和delete;19.将所述符合数据库语言ddl和dml的动作进行组合,所述动作组合中至少包括一种所述符合数据库语言ddl的动作和一种所述符合数据库语言dml的动作;20.所述安全级别评分设置预设阈值,大于或等于预设阈值的动作组合判定为安全,小于预设阈值的动作组合判定为危险。21.优选地,所述动作组合中安全动作与危险动作分别为:22.大于或等于预设阈值的动作组合为:createandselect、createandinsert、createandupdate、alterandselect、alterandinsert和dropandselect;23.小于预设阈值的动作组合为:createanddelete、alterandupdate、alteranddelete、dropandinsert、dropandupdate和dropanddelete。24.优选地,所述危险动作与对应的逻辑日志sql用户行为一并发送告警信号,所述告警信号发送给数据库管理员。25.优选地,所述安全动作组合进入延迟库时加上延迟时间标记,其中,所述安全动作组合被标记的所述延迟时间一致。26.优选地,所述将数据库产生的逻辑日志进行解析之前,方法还包括:27.在数据库中预先设置用户白名单和逻辑日志sql的防火墙规则;28.若用户在所述用户白名单内且用户对应产生的逻辑日志中的sql符合所述防火墙规则,将所述逻辑日志进行解析;29.若用户在所述用户白名单外且/或用户对应产生的逻辑日志中的sql不符合所述防火墙规则,所述逻辑日志被丢弃并上报告警。30.优选地,所述数据回放的具体方法包括:31.利用数据库sql回放设置的延迟时间做进入所述延迟库的动作。32.优选地,所述数据回放的具体方法包括:33.设置具有拉取线程的从库,所述从库延迟所述逻辑日志流进入数据库的时间。34.按照本发明的另一方面,提供了一种用于数据库逻辑日志审计的装置,装置包括:35.至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被程序设置为执行第一方面任一所述的用于数据库逻辑日志审计的方法。36.总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:37.本发明提供的一种用于数据库逻辑日志审计的方法及装置,一方面,用于数据库逻辑日志审计的方法不会争抢系统资源,也不会造成主业务的严重波动,属于一种轻量化操作,在不影响主数据库效率的情况下,引入主流数据库的通用逻辑日志解析工具,完成事中审计,从而降低了误操作或恶意删除核心数据表的风险;另一方面,用于数据库逻辑日志审计的装置具有占用系统资源低、对主系统影响小、可对接多种主流数据库平台的优点。附图说明38.图1是本实施例一提供用于数据库逻辑日志审计的方法流程图;39.图2是本实施例二提供用于数据库逻辑日志审计的系统流程图;40.图3是本实施例三提供用于数据库逻辑日志审计的装置流程图。具体实施方式41.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。42.实施例一:43.传统的审计方式中,如果采用elk方式会对主业务入侵大,而且elk又是非常重载的业务组件,一般需要单独部署,会耗费大量宝贵的cpu资源,并且elk方式利用数据库的binlog日志和general日志进行传输做审计业务(官方性能宣称下降15%~20%),很容易对业务造成巨大干扰。44.本实施例一提供一种用于数据库逻辑日志审计的方法,由此解决在不影响主数据库效率的情况下,降低主系统负载,让云平台系统下的日志审计变得更加安全可靠,如图1所示,方法包括以下步骤:45.s101:将数据库产生的逻辑日志进行解析,生成符合数据库语言的动作组合。46.本实施例一中,数据库是指mysql、mariadb以及oracle之类的关系型数据库。逻辑日志是为了保留自上次存储空间备份以来的事务和数据库服务器更改的历史记录,数据库服务器生成日志记录,数据库服务器将日志记录存储在逻辑日志中,由三个或更多逻辑日志文件组成循环文件,逻辑日志代表数据库服务器的逻辑操作。47.如果数据库的日志带有业务,很难解析成数据库能理解的语言,进而也无法从数据库层面去做有效的干预,例如安全级别分类或者延迟入库等操作。48.本实施例一中,对数据库产生的逻辑日志进行解析,将逻辑日志解析的内容转化成符合数据库语言的动作,以便于对动作的安全级别进行评分。在解析之前,数据库预先设置用户白名单和逻辑日志sql的防火墙规则,若用户符合用户白名单且用户对应产生的逻辑日志中的sql符合防火墙规则,逻辑日志才进行解析;若用户不符合用户白名单且/或用户对应产生的逻辑日志中的sql不符合防火墙规则,则逻辑日志被丢弃并上报告警。49.s102:按照预设的评分标准,对于所述符合数据库语言的动作组合进行安全级别评分。50.本实施例一中,逻辑日志流的数据会带有sql的属性,并附带了用户的权限特征,将带有sql属性的逻辑日志数据解析成符合数据库语言的动作,并且按照符合ddl和dml的语言来做分类。其它符合数据库语言的动作没有涉及到业务数据表的数据变更操作,更多的是角色操作,因此在本实施例一中暂不考虑。51.数据库模式定义语言(datadefinitionlanguage,简称:ddl),是用于描述数据库中要存储的现实世界实体的语言。数据库模式定义语言并非程序设计语言,ddl数据库模式定义语言是sql语言(结构化查询语言)的组成部分。ddl里主要包含create、alter、drop等动作。52.数据操纵语言(datamanipulationlanguage,简称:dml)是用于数据库操作,对数据库其中的对象和数据运行访问工作的编程语句,通常是数据库专用编程语言之中的一个子集。dml里主要包括select、update、insert、delete等动作。53.出于整体风险评估的考虑,将一个逻辑日志数据解析成符合数据库语言的动作组合,动作组合中至少包括两种符合数据库语言的动作。54.s103:分数超过预设阈值的动作组合判定为安全,所述安全动作组合进入数据库设置的延迟库中。55.本实施例一中,对于动作组合进行安全级别评分,提前预设评分标准和预设阈值,超过预设阈值的动作组合判定为安全,将安全动作进入数据库设置的延迟库中,将低于预设阈值的动作组合判定为危险动作,与对应的sql用户行为一并发送告警信号,告警信号发送给数据库管理员。56.s104:所述安全动作组合进入延迟库时添加延迟时间标记,在达到延迟时间后,所述安全动作组合对应的逻辑日志sql在数据库中进行数据回放。57.本实施例一中,将每组安全动作组合放入延迟库中,并且对每组安全动作标记相同的延迟时间,达到延迟时间后,每组安全动作在数据库中进行数据回放,如果数据库被恶意入侵,最后进入延迟库里的安全动作对应的逻辑日志sql进行数据回放后就可以还原数据库被入侵前的各项动作,这样在数据库被恶意入侵的短时间内依然可以拿到入侵前的逻辑日志sql,避免了恶意入侵造成的巨大损失。如果没有延迟入库和数据回放,安全动作可以保存到本地持久化为文件,也可以直接丢弃,但是无法实现事中审计。58.本实施例在不影响主数据库效率的情况下,引入主流数据库的通用逻辑日志解析工具,完成事中审计,从而最小程度降低了误操作或恶意删除核心数据表的风险,具有占用系统资源低、对主系统影响小和可对接多种主流数据库平台的优点。59.为了便于判断逻辑日志中数据库更改动作的安全或危险,结合本发明实施例,还存在一种优选的实现方案,具体的,所述将数据库产生的逻辑日志进行解析,生成符合数据库语言的动作,具体方法包括:60.根据所述逻辑日志流的sql属性和用户的权限特征解析数据库的逻辑日志流;61.将数据库的逻辑日志流解析生成符合数据库语言ddl和dml的动作;62.对所述符合数据库语言ddl和dml的动作组合以及属性进行安全级别评分。63.本实施例一中,将数据库的原始逻辑日志按照规则过滤审核后,得到动作组合,再进行对动作组合进行判定。用户的权限特征是根据业务预先分配的,具体为拥有dml权限的特征,用户具备读写权限,数据库根据用户的权限特征设置白名单,白名单内是数据库信任的用户,对于白名单内的用户所发生的任何操作均不进行安全级别评分。64.若用户不在白名单内,数据库需要授权用户继续做后续安全或危险的动作判定。例如:对于不在白名单内的用户,默认数据库授权给用户的权限可以进行select、insert、update或delete的动作,当用户去做dropanddelete的行为,就会被认定为危险动作而拦截,当用户做的是安全动作,则进入延迟库,等待达到延迟时间后再进行数据回放,数据回放的是安全动作组合对应的sql。65.为了将数据库中的逻辑日志流解析成符合数据库语言的动作组合,结合本发明实施例,还存在一种优选的实现方案,具体的,所述按照预设的评分标准,对于所述符合数据库语言的动作进行安全级别评分,具体方法包括:66.所述符合数据库语言ddl的动作包括:create、alter和drop;67.所述符合数据库语言dml的动作包括:select、insert、update和delete;68.将所述符合数据库语言ddl和dml的动作进行组合,所述动作组合中至少包括一种所述符合数据库语言ddl的动作和一种所述符合数据库语言dml的动作;69.所述安全级别评分设置预设阈值,大于或等于预设阈值的动作组合判定为安全,小于预设阈值的动作组合为危险。本实施例一中,例如,将安全级别评分的阈值设置在0.4,若动作组合得到的安全级别评分低于0.4,判定为危险,危险动作与对应的sql用户行为一并发送告警信号,告警信号发送给数据库管理员;若动作组合得到的安全级别评分等于或大于0.4,判定为安全,将安全动作发送到延迟库,并添加延迟时间标记。70.为了在评判安全级别之前设定最高值和最低值的标准,结合本发明实施例,还存在一种优选的实现方案,具体的,所述动作组合中安全动作与危险动作分别为:71.大于或等于预设阈值的动作组合为:createandselect、createandinsert、createandupdate、alterandselect、alterandinsert和dropandselect;72.小于预设阈值的动作组合为:createanddelete、alterandupdate、alteranddelete、dropandinsert、dropandupdate和dropanddelete。73.本实施例一中,还可以进一步的将评分标准细化成以下部分:74.createandselect=0.9;createandinsert=0.8;createandupdate=0.8;alterandselect=0.7;alterandinsert=0.6;dropandselect=0.5;createanddelete=0.3;alterandupdate=0.3;alteranddelete=0.2;dropandinsert=0.2;dropandupdate=0.1;dropanddelete=0.1。若将安全级别评分的阈值设置在0.4,则等于或大于0.4的动作组合(createandselect、createandinsert、createandupdate、alterandselect、alterandinsert和dropandselect)进入延迟库,并添加延迟时间标记;小于0.4的动作组合(createanddelete、alterandupdate、alteranddelete、dropandinsert、dropandupdate和dropanddelete),判定为危险,危险动作与对应的sql用户行为一并发送告警信号,告警信号发送给数据库管理员。75.为了及时将危险动作告知给数据库管理员,结合本发明实施例,还存在一种优选的实现方案,具体的,所述危险动作与对应的逻辑日志sql用户行为一并发送告警信号,所述告警信号发送给数据库管理员。76.本实施例一中,告警信号发送给数据库管理员后,数据库管理员会对告警信号做出相应的动作,比如误报就清除告警信号,造成某些业务不可用的动作就进行修补,等等。77.为了尽量减少数据库被入侵或用户做出危险动作后发生数据丢失的情况,结合本发明实施例,还存在一种优选的实现方案,具体的,所述安全动作组合进入延迟库时加上延迟时间标记,其中,所述安全动作组合被标记的所述延迟时间一致。78.本实施例一中,对于进入延迟库动作组合对应的逻辑日志sql都需要进行数据回放,延迟时间统一,按照数据库中rto(recoverytimeobjective,复原时间目标)和rpo(recoverypointobjective,复原点目标)的要求,尽量控制设置在1200秒以内。若发生数据库被入侵或用户做出危险动作,低于安全级别评分的预设阈值动作发送告警信号,并及时对危险动作进行阻断或拦截,在低于安全级别评分的预设阈值动作之前的安全动作对应的逻辑日志sql在延迟库中进行数据回放,还原数据库入侵前的各项动作,尽量减少数据丢失的情况。79.为了便于提高解析逻辑日志的效率,结合本发明实施例,还存在一种优选的实现方案,具体的,所述将数据库产生的逻辑日志进行解析之前,方法还包括:80.在数据库中预先设置用户白名单和逻辑日志sql的防火墙规则;81.若用户在所述用户白名单内且用户对应产生的逻辑日志中的sql符合所述防火墙规则,将所述逻辑日志进行解析;82.若用户在所述用户白名单外且/或用户对应产生的逻辑日志中的sql不符合所述防火墙规则,所述逻辑日志被丢弃并上报告警。83.本实施例一中,数据库预先设置用户白名单和逻辑日志sql的防火墙规则,将数据库产生的逻辑日志进行解析之前,需要判断用户和用户对应产生的逻辑日志中的sql是否同时符合用户白名单和防火墙规则,若同时满足,才将逻辑日志进行解析;若用户不符合用户白名单或用户对应产生的逻辑日志sql不符合所述防火墙规则,或者用户不符合用户白名单且用户对应产生的逻辑日志sql不符合所述防火墙规则,则将逻辑日志被丢弃并上报告警。84.并且,为了进一步的提高逻辑日志的解析效率,数据库中可以优先判断用户是否在用户白名单内,白名单外的用户产生的逻辑日志可以直接丢弃并上报告警。85.为了实现延迟库中安全动作组合对应的逻辑日志sql数据回放,结合本发明实施例,还存在一种优选的实现方案,具体的,所述数据回放的具体方法包括:86.利用数据库sql回放设置的延迟时间做进入所述延迟库的动作。87.本实施例一中,预先在数据库内部设置获取逻辑日志流的动作进程,当采集到数据库的逻辑日志流后,对逻辑日志流的sql属性进行解析,按照预定的规则把解析后的安全动作组合做进入延迟库的动作,丢弃危险动作,其中,在规定的延迟时间内,安全动作组合对应的逻辑日志流的sql在数据库内进行回放。88.为了实现延迟库中安全动作组合对应的逻辑日志sql数据回放,结合本发明实施例,还存在一种优选的实现方案,具体的,所述数据回放的具体方法包括:89.设置具有拉取线程的从库,所述从库延迟所述逻辑日志流进入数据库的时间。90.本实施例一中,主库是数据库,在主库内设置具有拉取线程的从库,从库采集到数据库的逻辑日志流后开始进行解析、判定和数据回放等动作。具体过程包括:拉取线程收到数据库的逻辑日志,附上用户权限特征,经过解析和安全级别评分后,回放动作是一系列的逻辑日志sql依次执行replay进入从库,在从库中执行类似如下操作:91.updatetable1setcolumn1=‘xxx’;insertintotable2(column1,column2,xxx)values(xxx,xxx,xxx);其中,x代表假定填写的内容,table1和table2代表具有拉取线程从库里的表。92.本实施例一提供的用于数据库逻辑日志审计的方法,不会争抢系统资源,也不会造成主业务的严重波动,属于一种轻量化操作,能够针对通用的数据库做解析,在不影响主数据库效率的情况下,引入主流数据库的通用逻辑日志解析工具,完成事中审计,从而最小程度降低了误操作或恶意删除核心数据表的风险。93.实施例二:94.本实施例二提供一种用于数据库逻辑日志审计的系统,如图2所示,系统包括:95.抽取模块,所述抽取模块用于解析数据库的逻辑日志流,并将数据库产生的逻辑日志进行解析成符合数据库语言的动作。96.本实施例二中,数据库是指mysql、mariadb以及oracle之类的关系型数据库。抽取模块对数据库产生的逻辑日志进行解析,将逻辑日志解析的内容转化成符合数据库语言的动作,以便于对动作的安全级别进行评分。97.鉴权模块,所述鉴权模块用于鉴别所述符合数据库语言的动作是否安全或危险。98.本实施例二中,逻辑日志流的数据会带有sql的属性,并附带了用户的权限特征,将带有sql属性的逻辑日志数据解析成符合数据库语言的动作,并且按照符合ddl和dml的语言来做分类。出于整体风险评估的考虑,将一个逻辑日志数据解析成符合数据库语言的动作组合,动作组合中至少包括两种符合数据库语言的动作。对于动作组合进行安全级别评分,鉴权模块提前预设评分标准和预设阈值,超过预设阈值的动作组合判定为安全,将安全动作进入数据库设置的延迟库中,将低于预设阈值的动作组合判定为危险动作,与对应的sql用户行为一并发送告警信号,告警信号发送给数据库管理员。99.延迟库,所述延迟库用于存放所述符合数据库语言的安全动作,并在预设的延迟时间之后将所述符合数据库语言的安全动作组合对应的逻辑日志sql进行数据回放。100.本实施例二中,将每组安全动作组合放入延迟库中,并且对每组安全动作标记相同的延迟时间,达到延迟时间后,每组安全动作在数据库中进行数据回放,如果数据库被恶意入侵,最后进入延迟库里的安全动作对应的逻辑日志sql进行数据回放后就可以还原数据库被入侵前的各项动作,这样在数据库被恶意入侵的短时间内依然可以拿到入侵前的逻辑日志sql,避免了恶意入侵造成的巨大损失。如果没有延迟入库和数据回放,安全动作可以保存到本地持久化为文件,也可以直接丢弃,但是无法实现事中审计。101.告警模块,所述告警模块用于接受所述符合数据库语言的危险动作。102.本实施例二中,告警模块收到告警信号后,数据库管理员会对告警信号做出相应的动作,比如误报就清除告警信号,造成某些业务不可用的动作就进行修补,等等。103.实施例三:104.如图3所示,是本发明实施例三中一种用于数据库逻辑日志审计的装置示意图。本实施例三中,用于数据库逻辑日志审计的装置包括一个或多个处理器21以及存储器22。其中,图3中以一个处理器21为例。105.处理器21和存储器22可以通过总线或者其他方式连接,图3中以通过总线连接为例。106.存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序和非易失性计算机可执行程序,如实施例一中的用于数据库逻辑日志审计的方法。处理器21通过运行存储在存储器22中的非易失性软件程序和指令,从而执行用于数据库逻辑日志审计的方法。107.存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。108.所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例一用于数据库逻辑日志审计的方法,例如,执行以上描述的图1所示的各个步骤。109.值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。110.本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取存储器(ram,randomaccessmemory)、磁盘或光盘等。111.本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献