设置SinoDB数据库审计三权分立

  上一篇文章SinoDB数据库安全审计介绍了SinoDB数据库安全审计的基本概念、配置参数等。这篇文章主要介绍如何设置安全审计角色分离,以满足安全评审要求。

  • 如果没有角色分离,sinodbms用户可以启动审计、停止审计、更改审计掩码、篡改审计文件等,这将削弱审计的有效性。

  • 使用角色分离,只有特定用户才能更改审计配置、更改已审计的事件并执行sinodbms管理。

  • 设置角色分离后,会减少sinodbms帐户的使用,仅保留在特殊情况下的操作。

1. 角色分离

通常需要设置以下3个角色:

  • 审计分析员(AAO - Audit Analysis Officer)
    –负责审计配置
    –审核审计信息
    –管理审计文件

  • 数据库系统安全员(DBSSO -Database System Security Officer)
    –定义和修改审核掩码

  • 数据库服务器管理员(DBSA - Database Server Administrator)
    –执行数据库维护

以下表格展示各角色拥有的权限:

*表示可以使用UNIX权限限制审核文件目录

2.角色分离设置

  • 角色分离要求为每个角色设置分离的UNIX组:AAO、DBSO、DBSA

  • 向每个组添加一个或多个用户

  • 可以使用自己的名字对群组/ID命名

  • 避免角色重叠,但这是允许的

  • 在安装时或安装后设置角色分离

3. 角色分离设置示例

① 创建用户组和用户

  • 创建用户组: sino_dbsso为DBSSO用户组,sino_aao为AAO用户组
# groupadd sino_dbsso
# groupadd sino_aao
  • 为每个组添加用户: dbsso_user为DBSSO,aao_user为AAO。本示例不特地创建DBSA用户,将sinodbms用户作为DBSA用户使用
# useradd dbsso_user -g sino_dbsso -m
# useradd aao_user -g sino_aao -m

② 启用三权分立,将 INFORMIXDIR 下的 aaodir、dbssodir 和 etc 目录的组分别更改为 AAO、DBSSO 和 DBSA 的用户组:

# cd $INFORMIXDIR
# chgrp -R sino_dbsso dbssodir
# chgrp -R sino_aao aaodir

  由于本示例将informix用户作为DBSA用户使用,所以不用更改etc目录的权限。如果有另外创建DBSA用户,需要将etc目录、onconfig文件以及sqlhosts文件所在的用户组改为DBSA用户组。

③ 为用户dbsso_user 与aao_user配置实例环境变量

# cat profile.sinodb>> /home/dbsso_user/.bashrc
# cat profile.sinodb>> /home/aao_user/.bashrc

④ 设置审计文件存放路径到aao_user用户下,以隔离sinodbms用户的访问

# su - aao_user
$ mkdir aaodir
$ onaudit -p /home/aao_user/aaodir

⑤ 权限分离测试

  • DBSA用户无法启动或关闭审计:
[sinodbms@vm84145 ~]$ onaudit -l 7
Onaudit -- Audit Subsystem Configuration Utility

Must be an AAO or DBSSO to run this program.

[sinodbms@vm84145 ~]$ onaudit -l 0
Onaudit -- Audit Subsystem Configuration Utility

Must be an AAO or DBSSO to run this program.

  • DBSA用户无法通过 onshowaudit 命令查看审计文件:
[sinodbms@vm84145 ~]$ onshowaudit -n 1

Must be an AAO to run this program.
  • DBSA用户无法查看或修改磁盘上的审计文件:
[sinodbms@vm84145 ~]$ cd /home/aao_user/aaodir
-bash: cd: /home/aao_user/aaodir: Permission denied
[sinodbms@vm84145 ~]$ cat /home/aao_user/aaodir/sinodb.6
cat: /home/aao_user/aaodir/sinodb.6: Permission denied
  • DBSSO用户无法关闭审计,也无法查看审计文件:
[dbsso_user@vm84145 ~]$ onaudit -n 0
Onaudit -- Audit Subsystem Configuration Utility

Must be an AAO to execute this action.

[dbsso_user@vm84145 ~]$ onshowaudit -n 1

Must be a DBSA, user root or an AAO to run this program

  • AAO用户无法查看与修改审计掩码
[aao_user@vm84145 ~]$ onaudit -o -y
Onaudit -- Audit Subsystem Configuration Utility

Must be a DBSSO to execute this action.
[aao_user@vm84145 aaodir]$ onaudit -m
Onaudit -- Audit Subsystem Configuration Utility

Must be a DBSSO to execute this action.