首页> 中国专利> 一种数据库安全保护方法及装置

一种数据库安全保护方法及装置

摘要

本发明提供了一种数据库安全保护方法及装置,属于数据库安全技术领域。本发明提供了一种数据库安全保护方法,通过记录和收集一段时间内数据库数据访问量数据,包括访问IP、访问时间、访问数据库条数、访问语句等数据,通过机器学习算法建立流量时序预测模型。在后续的业务中通过检测数据库访问量与时序预测模型比对,如果比对结果异常,则触发数据库数据保护机制,包括关闭数据库、伪造访问端口等方式,通过这种方式来保护数据库的数据安全。

著录项

  • 公开/公告号CN112749410A

    专利类型发明专利

  • 公开/公告日2021-05-04

    原文格式PDF

  • 申请/专利权人 广州锦行网络科技有限公司;

    申请/专利号CN202110023167.X

  • 发明设计人 吴建亮;胡鹏;王永君;

    申请日2021-01-08

  • 分类号G06F21/62(20130101);G06F16/18(20190101);G06F16/2455(20190101);G06N20/00(20190101);H04L12/24(20060101);H04L29/06(20060101);

  • 代理机构11470 北京精金石知识产权代理有限公司;

  • 代理人杨兰兰

  • 地址 510095 广东省广州市天河区新岑四路2号203-208房

  • 入库时间 2023-06-19 10:51:07

说明书

技术领域

本发明涉及数据库安全技术领域,尤其涉及一种数据库安全保护方法及装置。

背景技术

数据库可以说是互联网公司的核心,几乎所有的业务流程都离不开数据库的支撑。数据库的数据安全更是核心中的关键。当前的数据库安全防护技术基本包括数据库加密、数据库防火墙、数据脱敏等层面技术。而目前对数据库数据安全威胁比较多的常常发生在内部数据泄露,以及通过服务器为跳板,窃取数据库数据。这些威胁手段常常使传统解决方案失去控制能力。

因此,在网络高度发达、大数据高速发展的今天,对于数据库的保护尤为重要,技术人员对数据库的保护也进行了各种方案的探索。

中国专利申请文献CN102480385A中,公开了一种数据库安全保护方法,包括:制定模型生成策略;对数据库访问操作进行统计;根据统计结果生成正常行为模型;根据正常行为模型,检测数据库操作是否存在异常。接收报文,提取报文中标识数据库操作的结构化查询语言语句,从结构化查询语言语句中提取数据库访问操作。对数据库访问操作进行统计具体为:对与策略参数相匹配的数据库访问操作进行分类统计,得到统计结果,分类统计具体为按照操作类型统计一观测周期内各类操作的操作次数。根据统计结果生成正常行为模型包括:在每个模型生成周期,根据统计结果,分别计算前一采样周期内各观测周期全部操作的操作次数;分别计算各观测周期内各类操作的操作次数占全部操作的操作次数的比例;根据全部操作的操作次数和各类操作的操作次数占全部操作的操作次数的比例,按照模型生成策略,生成正常行为模型,将当前所在观测周期内对一类操作的操作次数占该观测周期内全部操作次数的比例与前一模型生成周期内的该比例的均值之差,与该类操作的操作次数占全部操作次数的比例的方差值进行比较,根据比较结果,判断是否存在数据库操作异常。该方案有很多的局限性。因为其实基于操作模型去判断的,而不是基于流量。这样就有可能存在发生了发生了大批量数据下载,而可能这次还是一次正常的访问行为。在这种情况下是判断不出来异常。

现有技术至少存在以下不足:

1.现有的技术中,很多程度上都是比较看重数据库物理层面上的保护,没有做到对数据层的保护。而对于数据的保护往往是基于操作行为判断,这就很容易导致并不能从根本上去限制恶意下载、数据泄露等行为的发生。

发明内容

为解决现有技术中存在的技术问题,本发明提供了一种流量分析算法的数据库数据安全保护方法,通过记录和收集一段时间内数据库数据访问量数据,包括访问IP,访问日期,访问数据库条数,访问语句等数据,通过机器学习算法建立流量访问分析模型。在后续的业务中通过检测数据库访问量与时序预测模型比对,如果比对结果异常,则触发数据库数据保护机制,包括关闭数据库、伪造访问端口等方式,通过这种方式来保护数据库的数据安全。

时间序列预测算法是一种回归预测算法,属于定量预测。在假定事物发展的延续性下,经常通过对过去的时间序列数据进行统计分析,同时消除干扰随机波动数据,并以此建立数据与时间的关系模型。通过这套建立的时间关系模型进行趋势预测。

设计一种基于流量分析算法的数据库数据安全保护方法,能够通过建立访问量的时序预测模型,在内部与外部攻击行为到来的时候,对数据库数据进行安全保护。

本发明提供了一种数据库安全保护方法,包括以下步骤:

在数据库中创建访问记录表,用于记录用户访问流量相关信息,根据访问记录表记录的信息可以得到连接时间connect_time和访问操作connect_option;

开启流量监控工具,运行数据库;

记录数据库日志和访问记录表;

读取数据库日志和访问记录表的信息,进行数据分析,获得各用户各访问访问时间点对应的流量;

根据各用户访问时间点与流量的对应关系,建立各用户的流量时序预测模型;

构建多个不同级别的数据库避险措施,用于在监测到非正常访问后的数据库保护;

运行各用户的所述流量时序预测模型,开启流量监控工具监测访问流量;

将监测到的预设时间段内的访问流量数据值与该流量对应用户的时序预测模型的预测值进行比对,判断访问流量是否正常:

如果异常,则触发数据库避险措施;

如果正常,则将监控到的预设时间段及对应的访问流量数据值输入时序预测模型,对时序预测模型进行优化,并继续监测。

优选地,所述在数据库中创建访问记录表包括以下步骤:

在数据库中创建访问记录表;

在数据库中进行设置,开启访问记录表的记录;

在数据库中进行设置,开启数据库日志记录,所述数据库日志记录的信息包括:访问时间、连接id和访问操作。

优选地,所述访问记录表记录的信息包括:连接id connect_id、连接时间connect_time、访问者IP地址和访问者名字connect_name。

优选地,所述数据分析包括如下步骤:

根据访问记录表中各用户的连接id查询数据库日志,如果该连接id的操作为取数据库数据,则获取该连接id的连接时间connect_time;

根据获取的各用户的连接时间和访问者IP地址,从流量监控工具获取该连接时间对应的访问流量值,并进行记录;

得到各用户在不同访问时间点T和各访问时间点T对应的访问流量H的{T,H}数据点集合。

优选地,所述流量时序预测模型的建立包括:

根据数据分析得到的各用户的{T,H}数据点集合,选取k阶曲线对各用户流量与访问时间的关系进行拟合,拟合公式如下:

其中i为拟合曲线阶数,取0,1...k;

T

H

a

使用最小二乘拟合,得到各用户拟合公式中各阶表达式的系数,得到各用户不同访问时间点T和访问时间点T对应的访问流量H的k阶拟合时序预测模型。

优选地,将监测到的预设时间段内的访问流量数据值与该流量对应用户的时序预测模型的预测值进行比对,判断访问流量是否正常,包括:

在预设时间段ΔT内,记录访问流量H

时序预测模型计算得到预设时间段ΔT内的预测访问流量H'

比较访问量H

优选地,所述预设阈值为多个不同值,访问流量相对差值|H

优选地,所述数据库避险措施包括:关闭数据库、伪造端口、数据失真保护、访问限制和数据自动备份。

本发明提供了一种数据库安全保护装置,包括:

数据库操作模块、数据分析模块、时序预测模块和数据库保护模块;

所述数据库操作模块执行如下操作:

在数据库中创建访问记录表,用于记录用户访问流量相关信息;

开启访问记录表的记录和数据库日志的记录;

在运行数据库期间,针对数据库的访问,进行数据库日志和访问记录表的记录;

所述数据分析模块执行如下操作:

读取数据库日志和访问记录表;

获得各用户不同访问时间点T和访问时间点T对应的访问流量H的{T,H}数据点集合;

所述时序预测模块执行如下操作:

根据获得的各用户不同访问时间点T和访问时间点T对应的访问流量H的{T,H}数据点集合,采用k阶曲线对各用户流量与访问时间的关系进行拟合,建立各用户的流量时序预测模型,所述时序预测模型可以根据预设时间段预测所述预设时间段内的访问流量;

利用时序预测模型对预设时间段进行访问流量预测;

根据监控得到的所述预设时间段的访问流量与预测得到的访问流量得到访问流量相对差值;

将访问流量相对差值与多个预设阈值对比,判断访问流量是否正常,如果异常,启动数据库避险措施,如果正常,将监控到的预设时间段及对应的访问流量数据值输入时序预测模型,对时序预测模型进行优化。

优选地,所述访问流量相对差值在不同预设阈值内选择不同等级的数据库避险措施,所述数据库避险措施按等级由高到低分别包括:关闭数据库、伪造端口、数据失真保护、访问限制和数据自动备份。

与现有技术相对比,本发明的有益效果如下:

1.本发明通过访问时间点及访问时间点对应的访问流量建立时序预测模型,并利用时序预测模型与实际监控流量对比,判断访问流量是否异常,可以根据历史访问流量判断当前访问流量情况,更准确。

2.本发明通过设置多个阈值判断访问流量是否异常,并对不同阈值范围采取不同的避险措施,根据异常程度对数据库给予不同程度的保护,适应性更强。

附图说明

图1是本发明的一个实施例的数据库安全保护方法流程图;

图2是本发明的一个实施例建立时序预测模型的流程图;

图3是本发明的一个实施例的数据库安全保护装置框图。

具体实施方式

下面结合附图1-3,对本发明的具体实施方式作详细的说明。

本发明提供了一种数据库安全保护方法,包括以下步骤:

在数据库中创建访问记录表,用于记录用户访问流量相关信息,根据访问记录表记录的信息可以得到连接时间connect_time和访问操作connect_option;

数据库日志会自动记录访问时间、连接id和访问操作,但是无法记录访问者IP地址和访问者名字,需要根据访问记录表记录的信息从数据库日志获取同一连接id、同一访问时间的访问操作是什么,对于访问操作是取数据库的操作时,才需要判断是否为异常访问;

开启流量监控工具,运行数据库;

数据库需要开启一段时间,以便获得足够建立流量时序预测模型的数据。流量监控工具可以选择zabbix,同时需要进行流量监控工具的配置,设置数据库主机名、指定存放zabbix数据数据库的名字、指定连接数据库的用户名、用户连接数据库需要的密码、前文主机设置、用户连接数据库所用的sock位置,以及数据库的端口号。

记录数据库日志和访问记录表;

读取数据库日志和访问记录表的信息,进行数据分析,获得各用户各访问访问时间点对应的流量;

数据分析的目的是通过记录的日志信息,获取不同连接id在不同时间点对应的访问流量,首先需要获取连接id在连接时间的操作,只有对于取数据库数据的操作才需要判断访问是否异常,才需要获取流量,如果操作是取数据库数据,则需要进一步从流量监控工具获取不同连接id在不同时间点对应的访问流量。

根据各用户访问时间点与流量的对应关系,建立各用户的流量时序预测模型;

采集足够多的流量信息,可以用来通过机器学习建立流量时序预测模型,建立的流量时序预测模型,用于后续对预设时间段访问流量的判断,判断访问流量是否异常。此处访问流量的异常判断是基于历史访问情况进行的,因此需要在后期的过程建立闭环的优化过程,进行预测模型的优化。

构建多个不同级别的数据库避险措施,用于在监测到非正常访问后的数据库保护;

对于检测到的异常访问,需要建立不同级别的数据库避险措施,对数据库进行保护,访问量与预测模型比超出很多时,需要提高保护等级。

运行各用户的所述流量时序预测模型,开启流量监控工具监测访问流量;

将监测到的预设时间段内的访问流量数据值与该流量对应用户的时序预测模型的预测值进行比对,判断访问流量是否正常:

如果异常,则触发数据库避险措施;

如果正常,则将监控到的预设时间段及对应的访问流量数据值输入时序预测模型,对时序预测模型进行优化,并继续监测。

作为优选实施方式,所述在数据库中创建访问记录表包括以下步骤:

在数据库中创建访问记录表;

在数据库中进行设置,开启访问记录表的记录;

在数据库中进行设置,开启数据库日志记录,所述数据库日志记录的信息包括:访问时间、连接id和访问操作。

作为优选实施方式,所述访问记录表记录的信息包括:连接id connect_id、连接时间connect_time、访问者IP地址和访问者名字connect_name。

作为优选实施方式,所述数据分析包括如下步骤:

根据访问记录表中各用户的连接id查询数据库日志,如果该连接id的操作为取数据库数据,则获取该连接id的连接时间connect_time;

根据获取的各用户的连接时间和访问者IP地址,从流量监控工具获取该连接时间对应的访问流量值,并进行记录;

得到各用户在不同访问时间点T和各访问时间点T对应的访问流量H的{T,H}数据点集合。

作为优选实施方式,所述流量时序预测模型的建立包括:

根据数据分析得到的各用户的{T,H}数据点集合,选取k阶曲线对各用户流量与访问时间的关系进行拟合,拟合公式如下:

其中i为拟合曲线阶数,取0,1...k;

T

H

a

使用最小二乘拟合,得到各用户拟合公式中各阶表达式的系数,得到各用户不同访问时间点T和访问时间点T对应的访问流量H的k阶拟合时序预测模型。

作为优选实施方式,将监测到的预设时间段内的访问流量数据值与该流量对应用户的时序预测模型的预测值进行比对,判断访问流量是否正常,包括:

在预设时间段ΔT内,记录访问流量H

时序预测模型计算得到预设时间段ΔT内的预测访问流量H'

比较访问量H

作为优选实施方式,所述预设阈值为多个不同值,访问流量相对差值|H

作为优选实施方式,所述数据库避险措施包括:关闭数据库、伪造端口、数据失真保护、访问限制和数据自动备份。

在启动数据库避险措施时,访问限制需要针对访问者IP地址进行。最高等级避险就是关闭数据库,拒绝任何访问;其次,可以伪造端口,使得发起异常访问的用户无法访问到正确的端口,从而对数据库进行保护;再者,可以对数据库中的数据进行处理,使发起异常访问的用户得到的数据是失真的,无法进行还原,而合法用户可以根据保护措施进行还原;对于部分情况,可以通过限制访问者IP地址对数据库的访问对数据库进行保护,这个也是最简单直接的方法;最初级的必须措施就是进行数据的自动备份,使得数据库不会被发起异常访问的用户接下来的访问破坏。

本发明提供了一种数据库安全保护装置,包括:

数据库操作模块、数据分析模块、时序预测模块和数据库保护模块;

所述数据库操作模块执行如下操作:

在数据库中创建访问记录表,用于记录用户访问流量相关信息;

开启访问记录表的记录和数据库日志的记录;

在运行数据库期间,针对数据库的访问,进行数据库日志和访问记录表的记录;

所述数据分析模块执行如下操作:

读取数据库日志和访问记录表;

获得各用户不同访问时间点T和访问时间点T对应的访问流量H的{T,H}数据点集合;

所述时序预测模块执行如下操作:

根据获得的各用户不同访问时间点T和访问时间点T对应的访问流量H的{T,H}数据点集合,采用k阶曲线对各用户流量与访问时间的关系进行拟合,建立各用户的流量时序预测模型,所述时序预测模型可以根据预设时间段预测所述预设时间段内的访问流量;

利用时序预测模型对预设时间段进行访问流量预测;

根据监控得到的所述预设时间段的访问流量与预测得到的访问流量得到访问流量相对差值;

将访问流量相对差值与多个预设阈值对比,判断访问流量是否正常,如果异常,启动数据库避险措施,如果正常,将监控到的预设时间段及对应的访问流量数据值输入时序预测模型,对时序预测模型进行优化。

作为优选实施方式,所述访问流量相对差值在不同预设阈值内选择不同等级的数据库避险措施,所述数据库避险措施按等级由高到低分别包括:关闭数据库、伪造端口、数据失真保护、访问限制和数据自动备份。

实施例1

参照附图1-3,根据本发明的一个具体实施方案,以利用2阶拟合建立时序预测模型为例,对本发明提供的数据安全保护方法进行详细说明。

本发明提供了一种数据库安全保护方法,包括以下步骤:

在数据库中创建访问记录表,用于记录用户访问流量相关信息,根据访问记录表记录的信息可以得到连接时间connect_time和访问操作connect_option;

所述在数据库中创建访问记录表包括以下步骤:

在数据库中创建访问记录表;

在数据库中进行设置,开启访问记录表的记录;

在数据库中进行设置,开启数据库日志记录,所述数据库日志记录的信息包括:访问时间、连接id和访问操作;

所述访问记录表记录的信息包括:连接id connect_id、连接时间connect_time、访问者IP地址和访问者名字connect_name;

开启流量监控工具,运行数据库;

记录数据库日志和访问记录表;

读取数据库日志和访问记录表的信息,进行数据分析,获得各用户各访问访问时间点对应的流量;

所述数据分析包括如下步骤:

根据访问记录表中各用户的连接id查询数据库日志,如果该连接id的操作为取数据库数据,则获取该连接id的连接时间connect_time;

根据获取的各用户的连接时间和访问者IP地址,从流量监控工具获取该连接时间对应的访问流量值,并进行记录;

得到各用户在不同访问时间点T和各访问时间点T对应的访问流量H的{T,H}数据点集合。

根据各用户访问时间点与流量的对应关系,建立各用户的流量时序预测模型;

所述流量时序预测模型的建立包括:

根据数据分析得到的各用户的{T,H}数据点集合,选取2阶曲线对各用户流量与访问时间的关系进行拟合,拟合公式如下:

其中i为拟合曲线阶数,取0,1,2;

T

H

a

使用最小二乘拟合,得到各用户拟合公式中各阶表达式的系数,得到各用户不同访问时间点T和访问时间点T对应的访问流量H的k阶拟合时序预测模型;

构建多个不同级别的数据库避险措施,用于在监测到非正常访问后的数据库保护;

运行各用户的所述流量时序预测模型,开启流量监控工具监测访问流量;

将监测到的预设时间段内的访问流量数据值与该流量对应用户的时序预测模型的预测值进行比对,判断访问流量是否正常:

如果异常,则触发数据库避险措施;

如果正常,则将监控到的预设时间段及对应的访问流量数据值输入时序预测模型,对时序预测模型进行优化,并继续监测。

所述将监测到的预设时间段内的访问流量数据值与该流量对应用户的时序预测模型的预测值进行比对,判断访问流量是否正常,包括:

在预设时间段ΔT内,记录访问流量H

时序预测模型计算得到预设时间段ΔT内的预测访问流量H'

比较访问量H

所述预设阈值为多个不同值,访问流量相对差值|H

所述数据库避险措施包括:关闭数据库、伪造端口、数据失真保护、访问限制和数据自动备份。

本发明提供了一种数据库安全保护装置,包括:

数据库操作模块、数据分析模块、时序预测模块和数据库保护模块;

所述数据库操作模块执行如下操作:

在数据库中创建访问记录表,用于记录用户访问流量相关信息;

开启访问记录表的记录和数据库日志的记录;

在运行数据库期间,针对数据库的访问,进行数据库日志和访问记录表的记录;

所述数据分析模块执行如下操作:

读取数据库日志和访问记录表;

获得各用户不同访问时间点T和访问时间点T对应的访问流量H的{T,H}数据点集合;

所述时序预测模块执行如下操作:

根据获得的各用户不同访问时间点T和访问时间点T对应的访问流量H的{T,H}数据点集合,采用k阶曲线对各用户流量与访问时间的关系进行拟合,建立各用户的流量时序预测模型,所述时序预测模型可以根据预设时间段预测所述预设时间段内的访问流量;

利用时序预测模型对预设时间段进行访问流量预测;

根据监控得到的所述预设时间段的访问流量与预测得到的访问流量得到访问流量相对差值;

将访问流量相对差值与多个预设阈值对比,判断访问流量是否正常,如果异常,启动数据库避险措施,如果正常,将监控到的预设时间段及对应的访问流量数据值输入时序预测模型,对时序预测模型进行优化。

所述访问流量相对差值在不同预设阈值内选择不同等级的数据库避险措施,所述数据库避险措施按等级由高到低分别包括:关闭数据库、伪造端口、数据失真保护、访问限制和数据自动备份。

实施例2

参照附图1-3,根据本发明的一个具体实施方案,以mysql数据库为例,对本发明提供的数据安全保护方法中流量时序预测模型的建立过程进行详细说明。

第一步:创建访问记录表,并进行数据库配置:

1、首先在数据库在创建一个库logdatabase和一张访问记录表connect_log,其中connect_log中的字段及含义如下:

表1访问记录表的字段含义

2、在数据库配置中添加init-connect设置,设置如下:

init-connect='insert into logdatabase.connect_log(id,connect_id,connect_time,connect_name,connetct_user)values(null,connection_id(),now(),user(),current_user()),’

3、配置写入访问记录表的权限:

select concat("grant insert on auditlog.t_audit to'",user,"'@'",host,"';")from mysql.user;

flush privileges;

第二步,配置完成后,重启mysql;

第三步,进行流量监控工具的安装及配置;

4、安装开源流量监控工具zabbix,用于监控访问流量,配置好监控数据保存的数据库,配置如下:

DBHost=localhost;#数据库主机名,当设置为localhost时,连接mysql通过sock

DBName=zabbix;#指定存放zabbix数据数据库的名字

DBUser=zabbix;#指定连接数据库的用户名

DBPassword=zb123!@$;#用户连接数据库需要的密码

DBSocket=/var/lib/mysql/mysql.sock;#前文主机设置为localhost,用户连接数据库所用的sock位置,

DBPort=3306;#数据库的端口号,当用sock连接时,无关紧要,当通过网络连接时需设置

第四步,安装和配置好zabbix的server和client后,启动流量监控工具;

第五步,收集用于流量时序预测模型建立的日志信息:

5、打开业务网站,正常收集日志一段时间和收集相应的流量监控,数据库日志和访问日志表会记录相关信息;

一般来说,业务都是由后端访问数据库,基本上连接者身份都会相对固定,通常是对其中后端连接者进行流量分析。

第六步,对收集到的日志信息进行分析,得到针对给连接的访问时刻与访问流量的映射关系:

6、分析流程如下:

首先:

用语句select*from logdatabase.connect_log查询连接信息如下:

+----+-----------+---------------------+---------------------------+-------------------------+

|id|connect_id|connect_time|connect_name|connetct_user|

+----+-----------+---------------------+---------------------------+-------------------------+

|1|5|1604977267|user_main@192.168.129.118|user_main@192.168.129.%|

|2|6|1604977322|user_test@192.168.129.153|user_test@192.168.129.%|

+----+-----------+---------------------+---------------------------+-------------------------+

3rows in set(0.00sec)

然后:

根据connect_id去binlog中查询在其访问时刻的访问操作,筛选出来select操作的时间段,找到满足的时间段后,然后在zabbix中查询到该时刻的流量值,最后得到某个连接在某一时间下的访问流量值;

第七步,用各个访问流量与时间映射组合,做拟合分析,得到流量时序预测模型:

对得到的各用户的{T,H}数据点集合,选取2阶曲线对各用户流量与访问时间的关系进行拟合,拟合公式如下:

采用最小二乘法,确定式中的各项系数a

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号