数据库安全设计指南

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库安全设计指南当今人们对计算机网络的依赖程度不断增长,计算机网络在许多领域得到广泛应用。现今几乎所有机构都拥有自己的计算机网络,使信息和资源得以充分共享和利用。随着计算机网络的发展,众多问题也日趋显现。其中安全隐患问题日益突出,计算机网络与应用的安全成为各个组织机构在建设计算机系统时首要考虑因素。本文适用于产品设计人员和开发人员、安全评估人员师、架构设计人员等。

1.为默认用户添加密码管理

数据库安装之后的默认用户没有激活用户密码管理,需要修改相应用户或者角色的配置文件。

【示例】

使用ALTER USER <用户名> PROFILE default修改配置文件。在SQLPLUS下执行如下语句可以更改默认配置文件的内容。

其中FAILED_LOGIN_ATTEMPTS表示允许登录失败次数,PASSWORD_LIFE_TIME 表示密码多少天过期,PASSWORD_REUSE_MAX表示密码重用次数,PASSWORD_REUSE_TIME表示多少天之后密码可以重使用,PASSWORD_LOCK_TIME 表示密码锁住之后多少天自动解锁,PASSWORD_GRACE_TIME表示在密码多少天后快要过期前给出提示信息。

对于LIMIT FAILED_LOGIN_ATTEMPTS和PASSWORD_LIFE_TIME有两种配置,一种是设置这两个值为unlimited,这样应用程序不需要再修改密码,一种是设置某一个具体的值,这样比较安装,但要增加维护工作量,因为需要定期修改密码。

Oracle安装之后默认用户包括:

ANONYMOUS、APEX_PUBLIC_USER、BI、CTXSYS、DBSNMP、DIP、DMSYS、EXFSYS、FLOWS_03000、FLOWS_FILES、HR、IX、LBACSYS、MDDATA、MDSYS、MGMT_VIEW、OE、OLAPSYS、ORACLE_OCM、ORDPLUGINS、ORDSYS、OUTLN、OWBSYS、PM、SCOTT、SH、SI_INFORMTN_SCHEMA、SPATIAL_CSW_ADMIN_USR、SPATIAL_WFS_ADMIN_USR、SYS、SYSMAN、SYSTEM、TSMSYS、WK_TEST、WKPROXY、WKSYS、WMSYS、XDB、XS$NULL

2.修改Sys密码和System密码

SYS为数据库最高权限用户,System是有默认DBA权限的用户。SYS和SYSTEM也是带有默认密码的默认用户,由于它们的敏感性所以最好显式修改密码

【示例】

周期性地显式修改密码为强健的密码,如一个月修改一次,参考如何审核弱密码一条。要修改密码,可以在SQLPLUS中执行如下语句:

3.回收PUBLIC组对视图ALL_USERS的查询权限

ALL_USERS等以ALL_开头的视图是一个像DBA_USERS一样的视图,它可以给任何人使用,因为PUBLIC组对它有查询权限。这个视图可以显示用户名,而用户名是在密码加密算法中是对密码加密的种子。

【示例】

在SQLPLUS中执行下列语句:

收回权限后还应该对低权限用户进行测试以确保他们的确不能查看用户名,这是因为权限可能从另一个路径继承下来。

【说明】all_users视图包括的字段如下:

4.检查非DBA用户对涉及用户角色权限的视图的访问

以DBA开头的视图只应该被DBA用户访问,回收非DBA用户对它们的访问权限,另外还有几个视图记录有用户角色权限的视图也不应被非DBA访问。

DBA_ROLES','DBA_SYS_PRIVS','DBA_ROLE_PRIVS', 'DBA_USERS', 'ROLE_ROLE_PRIVS', 'USER_TAB_PRIVS', 'USER_ROLE_PRIVS

【示例】

在SQLPLUS下执行如下语句:

针对上面查询的结果中显示有非DBA用户对这些表有访问权限,则根据执行一系列的sql语句来回收权限,示例如下

如针对第一行,则执行:

5.检查被授予DBA角色的用户

DBA权限很大所以不应该被广泛使用,检查拥有它的用户

【示例】

在SQLPLUS中执行下列语句:

对于不应该授予此角色的用户回收,使用下列语句收回角色授予:

6.回收用户所有包含ANY关键词的权限

避免使用ANY权限因为它并不必需,可以为用户分配对特定对象的访问权限。

【示例】

然后执行权限回收语句:

其中的privilege和grantee是从上面语句的执行结果中得出的。

7.回收不必要的CREATE LIBRARY和CREATE PROCEDURE权

限授予

“CREATE LIBRARY”权限可以被用来访问操作系统或者用来提升权限,如可以用C 语言写一个访问操作系统资源的dll或so文件,create library可以调用这些dll或so文件。如果不是特别需要应该避免授予此权限

【示例】

回收非DBA用户拥有的CREATE LIBRARY权限和CREATE PROCEDURE权限。8.回收应用程序用户的RESOURCE角色

RESOURCE角色有UNLIMITED TABLESPACE这样不必要的权限,这有可能导致DOS 攻击,就算显式为已经授予RESOURCE角色的用户分配空间限额也不起作用,因为UNLIMITED TABLESPACE会覆盖这些【描述】。

【示例】

点击查看每个用户所授予的角色,回收所有已经授予RESOURCE角色的应用程序用户的RESOURCE角色。

9.为每个用户分配合适的表空间限额

为了防止用户占用过多空间而可能有意无意地导致DOS攻击,应该为每个用户设置空间限额以限制表大小。

相关文档
最新文档