一、前言
信息系统只要运行,就会产生数据,产生数据就需要存储,数据库就是所有信息系统所必需的,数据是信息系统最重要的东西,所以数据库的安全就是保障数据安全的重要屏障,现在市面上有许多数据库产品,其中使用比较广泛的就是Oracle数据库,今天我们就来讲一讲等保测评2.0中对Oracle数据库有哪些安全要求。
Oracle数据库
二、测评项
写到现在,其实等保2.0对于数据库的要求都是一样的,不同的是每个数据库都会有自己的实现方式,下面我们按照惯例列出等保2.0对于Oracle数据库在安全审计方面的要求。
a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计;
b)审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息;
c)应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等;
d)应对审计进程进行保护,防止未经授权的中断。
三、测评项a
a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计;
Oracle数据库是自带审计功能的,要想查看审计功能的状态,我们可以使用语句:
select value from v$parameter where name ='audit_trail';
查看审计功能是否开启,如下图所示:
审计功能参数
我们可以看到,参数为“DB,EXTENDED”,下面是我找到的audit_trail参数的含义:
audit_trail参数有6个参数可以使用:
none:禁用数据库审计(强制审计除外),为理论上的默认值;
os:将所有审核记录定向到操作系统文件,windows系统的话好像是会定向到事件查看器中的应用程序中(注意,其记录的值和db差不多,不包括具体的sql语句);
db:将所有审核记录定向到SYS.AUD$表(但强制审计的记录除外);
db, extended:同上,同时,SYS.AUD$表的SQL bind and SQL text列才会填充值,也就是说参数为db的情况下,并不会记录具体的sql语句;
xml:记录的内容和参数值为db时一致,同时将记录定向到xml文件中;
xml, extended:记录的内容和参数值为“db, extended”时一致,同时将记录定向到xml文件中。
可以看出只要参数不是none,就开启了审计功能,如果想要覆盖到每个用户的所有行为,则推荐参数值设为db, extended或者xml, extended。
四、测评项b
b)审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息;
由上一项可知,当audit_trail参数设置为db, extended或者xml, extended时,审计记录包含的要素是比较全面的,在测评过程中,除了查看audit_trail参数值,最好按照实际情况,查看一下具体的日志文件。
五、测评项c
c)应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等;
如果是将审计记录保存到数据库表中,那就要严格限制对该表有操作权限的用户,除此之外,审计记录还有可能存储在制定的系统文件中,比如:xml文件中,那就要看系统用户对这些文件权限设置了。
至于备份,最好在询问访谈之后,查看到具体的备份数据表或者文件。
六、测评项d
d)应对审计进程进行保护,防止未经授权的中断。
前边我们提到了,只要将audit_trail参数的值设置成none,就可以停止审计功能,为了防止这种情况的发生,就必须知道哪些用户拥有可以修改audit_trail参数的权限,我们知道Oracle数据库用户是通过角色来获取权限的,只有用户获得了sysdba和sysoper角色,才可以拥有修改audit_trail参数的权限,因此只要查看哪些用户拥有sysdba和sysoper角色就可以了,一般只有安全管理员才可以拥有。
还记得查看用户权限的语句吗?
select * from dba_sys_privs where grantee='sys' ORDER BY GRANTEE;
这里我们依然以“sys”用户为例,查看sys用户所拥有的权限,如下图所示:
sys用户权限
以上就是一项一项教你测等保2.0——Oracle安全审计的所有内容,希望对大家有所帮助,欢迎关注@科技兴了解更多科技尤其是网络安全方面的资讯与知识。