mysql 判断日期是否合法_一项一项教你测等保2.0——MySQL安全审计

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 15:58   1855   0

一、前言

只要是信息系统,就需要运行所必需的系统环境,而Windows和Linux系统是现在使用最为广泛的主机操作系统,前边我们已经讲了等保测评2.0主机系统方面的测评项要求,大家有兴趣的可以翻阅我之前的文章。

而信息系统只要运行,就会产生数据,产生数据就需要存储,数据库就是另一个所有信息系统所必需的,数据是信息系统最重要的东西,所以数据库的安全就是保障数据安全的重要的屏障,现在市面上有许多数据库产品,其中另一个使用比较广泛的就是MySQL数据库,今天我们就来讲一讲等保测评2.0中对MySQL数据库有哪些安全要求。

二、测评项

a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计;

b)审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息;

c)应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等;

d)应对审计进程进行保护,防止未经授权的中断。

三、测评项a

a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计;

对于比较成熟和常用的软件,很少不自带审计功能,MySQL数据库也不例外,它的审计功能——general_log是安装MySQL数据库时就自带的,然而默认状态下则是关闭的,因为它会记录下所有MySQL数据库所执行的SQL语句,所以会占用非常大的服务器和数据库资源。

我们可以通过语句:

show global variables like '%general%'

来查看MySQL数据库是否开启了general_log审计功能,如下图所示:

5dd406e5da9f796159ab0d0c556763ea.png

general_log审计功能

果然MySQL数据库是默认关闭general_log审计功能的,下面一行则表示审计日志general_log_file所存放的位置。

要想开启general_log审计功能,我们可以使用语句:

set global general_log = on;

执行后我们再使用前边的查看语句查看general_log审计功能的状态,已经变成了“ON”,如下图所示:

d713f9fdedc364e5ccf9f78ebcedb174.png

开启general_log审计功能

但是这只是临时性的开启,当数据库重新启动时general_log审计功能又会变回关闭状态,要想永久开启就必须修改配置文件“my.cnf”中的“general_log”参数为“ON”,就可以永久开启了。

除此之外,我们也可以通过插件来实现审计功能。

MariaDB的Audit Plugin插件

我们可以使用语句:

SHOW GLOBAL VARIABLES LIKE 'server_audit%';

来查看该插件是否启用,当然只有在一些MySQL数据库版本之上才可以使用此插件,这里判断Audit Plugin插件是否开启,只需查看server_audit_logging参数是否为“ON”。

a806c6f8ab28bdf9b7062dbf218c009d.png

Audit Plugin插件配置信息

四、测评项b

b)审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息;

不管是自带的general_log审计功能还是插件审计功能,审计记录所包含的内容都符合该测评项所要求的内容,我们以general_log审计功能所记录的日志为例,如下所示:

| 2020-11-16 10:00:12 | root[root] @ localhost [] | 2 | 1132333306 | Query | select * from user

其中包括日期和时间、用户、事件类型为“query”查询,具体语句为“select * from user”等。

五、测评项c

c)应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等;

我们可以使用语句:

show variables like 'log_output';

来查看审计记录的保存方式,“file”表示文件存储,“table”表示数据表存储,采用什么存储方式就需要查看对应文件的权限,只允许数据库管理员之类的人员才可以访问、修改等。

86ea360704c17185ac493b9484e1a00a.png

审计记录存储方式

备份的话,就直接查看备份文件就可以了,再看看备份策略,符合定期备份的要求就可以了。

六、测评项d

d)应对审计进程进行保护,防止未经授权的中断。

这个就比较简单了,有两个地方可以对审计进程进行配置。一个是my.cnf,这里就需要操作系统上对配置文件的权限进行限制,只允许数据库管理有权限进行修改。(同时也要限制MySQL中的file_priv权限。)另外一个就是那些变量了,似乎是需要super权限才可以设置全局变量,那么这里的话就需要查看super权限给了哪些账户。

以上就是一项一项教你测等保2.0——MySQL安全审计的所有内容,希望对大家有所帮助,欢迎关注@科技兴了解更多科技尤其是网络安全方面的资讯与知识。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP