DB2数据库基线检查策略
1、从PUBLIC撤销隐式的权限和特权
1、参考配置
(1)在每一个数据库中,应撤销被授给PUBLIC的隐式特权,执行如下命令:
db2 =>CONNECT TO <数据库名称> ##连接到数据库
db2 =>REVOKE BINDADD ON DATABASE FROM PUBLIC
db2 =>REVOKE CREATETAB ON DATABASE FROM PUBLIC
db2 =>REVOKE CONNECT ON DATABASE FROM PUBLIC
db2 =>REVOKE IMPLICIT_SCHEMA ON DATABASE FROM PUBLIC
db2 =>REVOKE USE OF TABLESPACE USERSPACE1 FROM PUBLIC
db2 =>REVOKE SELECT ON TABLE SYSCAT.COLAUTH FROM PUBLIC
db2 =>REVOKE SELECT ON TABLE SYSCAT.DBAUTH FROM PUBLIC
db2 =>REVOKE SELECT ON TABLE SYSCAT.INDEXAUTH FROM PUBLIC
db2 =>REVOKE SELECT ON TABLE SYSCAT.PACKAGEAUTH FROM PUBLIC
db2 =>REVOKE SELECT ON TABLE SYSCAT.PASSTHRUAUTH FROM PUBLIC
db2 =>REVOKE SELECT ON TABLE SYSCAT.ROUTINEAUTH FROM PUBLIC
db2 =>REVOKE SELECT ON TABLE SYSCAT.SCHEMAAUTH FROM PUBLIC
db2 =>REVOKE SELECT ON TABLE SYSCAT.SECURITYLABELACCESS FROM PUBLIC
db2 =>REVOKE SELECT ON TABLE SYSCAT.SECURITYPOLICYEXEMPTIONS FROM PUBLIC
db2 =>REVOKE SELECT ON TABLE SYSCAT.SEQUENCEAUTH FROM PUBLIC
db2 =>REVOKE SELECT ON TABLE SYSCAT.SURROGATEAUTHIDSFROM PUBLIC
db2 =>REVOKE SELECT ON TABLE SYSCAT.TABAUTH FROM PUBLIC
db2 =>REVOKE SELECT ON TABLE SYSCAT.TBSPACEAUTH FROM PUBLIC
db2 =>REVOKE SELECT ON TABLE SYSCAT.XSROBJECTAUTHFROM PUBLIC
db2 =>REVOKE SELECT ON TABLE SYSCAT.AUTHORIZATIONIDS FROM PUBLIC
db2 =>REVOKE SELECT ON TABLE SYSCAT.OBJECTOWNERS FROM PUBLIC
db2 =>REVOKE SELECT ON TABLE SYSCAT.PRIVILEGES FROM PUBLIC
2、补充操作说明
(1)从DB2 V9.1开始,CREATE DATABASE命令语法增加了RESTRICTIVE选项。如果该命令中包括了RESTRICTIVE选项,那么会导致RESTRICT_ACCESS数据库配置参数被设置为YES,同时不自动授予PUBLIC任何特权。如果忽略了RESTRICTIVE选项,那么RESTRICT_ACCESS数据库配置参数被设置为NO,前述所有特权都将自动授予PUBLIC。
2、跟踪隐式的特权
1、参考配置
(1)执行如下命令:
#db2 connect to <数据库名称>
#db2 get db cfg
如果“Restrict access”参数值为“NO”,则说明在创建数据库的时候未做限制,当创建数据库用户时会存在隐式的特权赋值,需重新建立数据库,在执行CREATE DATABASE命令时调用RESTRICTIVE参数。跟踪系统隐式特权可仿照如下样例指令,按补充操作说明要求来进行:
#db2 grant bindadd<权限> on database to public<创建者>
2、补充操作说明
系统隐式特权赋值情况如下
(1)当创建新的数据库时,将GRANT of DBADM权限以及BINDADD、CONNECT、CREATETAB、CREATE_EXTERNAL_ROUTINE、CREATE_NOT_FENCED_ROUTINE、IMPLICIT_ SCHEMA、LOAD和QUIESCE_CONNECT权限授予创建者(SYSADM 或SYSCTRL);将GRANT of BINDADD、CREATETAB、CONNECT和IMPLICIT_SCHEMA授予PUBLIC;将USERSPACE1表空间上的USE特权授予PUBLIC;将SYSPROC模式中所有过程和函数的EXECUTE WITH GRANT特权授予PUBLIC;将SQLJ模式中所有过程上的EXECUTE with GRANT;特权授予PUBLIC;将NULLID模式中所有包上的BIND和EXECUTE特权授予PUBLIC;将SQLJ和NULLID模式上的CREATEIN授予PUBLIC;将SYSIBM编目上的SELECT授予PUBLIC;将SYSCAT编目视图上的SELECT特权授予PUBLIC;将SYSIBMADM 管理视图上的SELECT特权授予PUBLIC;将SYSSTAT编目视图上的SELECT特权授予PUBLIC;将SYSSTAT编目视图上的UPDATE特权授予PUBLIC。
(2)当授予DBADM权限时,将GRANT of BINDADD、CONNECT、CREATETAB、CREATE_EXTERNAL_ ROUTINE、CREATE_NOT_FENCED_ROUTINE、IMPLICIT_SCHEMA、LOAD和QUIESCE_CONNECT授予目标用户。
(3)当显式地创建模式时,CREATEIN、ALTERIN、DROPIN权限被授予创建模式的用户;当隐式地创建模式时,另外还有CREATEIN权限被授予PUBLIC。
(4)当创建对象(表、索引、包)时,将GRANT of CONTROL授予对象创建者。
(5)当创建视图时,仅当用户对视图定义中引用的所有表、视图和昵称均有CONTROL特权时,才为其授予Grant of CONTROL特权。
3、在数据库权限配置能力内,根据用户的业务需要,配置其所需的最小权限。
1、参考配置
(1)将 SYSMAINT_GROUP 参数的值改为 MAINT,可以在命令行上执行以下命令:
db2 => update dbm cfg using SYSMAINT_GROUP MAINT
要让修改生效,必须使用以下两个命令重新启动 DB2 UDB 实例:
db2stop
db2start
2、 补充操作说明
要从用户 JEN 撤消 STAFF 表上的 ALTER 特权,可以发出以下语句:REVOKE ALTER ON TABLE staff FROM USER jen
要从 JEN 撤消 STAFF 表上的所有特权,可以发出以下语句:REVOKE ALL PRIVILEGES ON TABLE staff FROM USER jen。
4、执行随机安全审计
参考配置
(1)执行如下命令,开启安全审计:
#db2audit start
(2)查看当前审计状态:
#db2audit describe
5、为SYSxxx_GROUP参数使用显式值
参考配置
(1)为SYSxxx_GROUP 参数使用显式值,执行如下命令:
#db2 UPDATE DBM CFG USING SYSADM_GROUP <组名>
#db2 UPDATE DBM CFG USING SYSCTRL_GROUP <组名>
#db2 UPDATE DBM CFG USING SYSMAINT_GROUP <组名>
#db2 UPDATE DBM CFG USING SYSMON_GROUP <组名>
(2)重新启动数据库:
#db2stop
#db2start
6、使用加密的AUTHENTICATION模式
参考配置
(1)执行如下命令:
#db2 UPDATE DBM CFG USING AUTHENTICATION DATA_ENCRYPT
(2)重起数据库:
#db2stop
#db2start
7、修改日志文件大小
1、参考配置操作
修改日志文件大小命令如下
db2 => update db cfg for sample using LOGFILSIZ 50000
请将sample改为指定数据库实例名
8、配置审计缓冲区
1、参考配置操作
将审计缓冲区的大小增大到 40KB,以便采用异步写日志方式,并提高性能。那么可以通过发出以下命令来完成这个任务:
db2 => update dbm cfg using audit_buf_sz 40
db2 => quit
db2stop
db2start
9、配置审计内容
1、参考配置操作
(1)将审计功能配置成只记录失败的 AUDIT 和 VALIDATE 事件,并使用 NORMAL 错误处理选项
db2audit configure scope audit status failure errortype normal
db2audit configure scope validate status failure errortype normal
将审计功能配置成监视所有事件类型,同时记录成功的和失败的尝试,并且使用AUDIT错误处理选项
db2audit configure scope all status both errortype audit
(2)启动审计功能,执行如下命令:
db2audit start
最后更新于
这有帮助吗?