我们都知道密码策略加固的参数一般包括密码长度、复杂度检测、最大最小使用时间、过期警报时间、最大登录失败次数以及锁定时间等设置。

Oracle默认提供了一个密码策略的sql执行文件utlpwdmg.sql。linux/unix默认路径是$ORACLE_HOME/rdbms/admin/utlpwdmg.sql 。

windows路径位置可以通过搜索来获得。

首先我们先看一下Oracle默认安装后密码策略设置是怎样的。

图1

图2

通过配置文件可以发现目前密码策略中密码长度设置为不小于4位,同时也设置了密码存活时间为180天,密码警告时间为7天,

登录失败次数显示为10次,锁定时间为1分钟。

接下来我们通过测试来看一下此策略设置脚本是否生效。

图3

修改scott恩口令tiger为123成功,说明utlpwdmg.sql脚本文件未被执行。

下面我们重新修改好utlpwdmg.sql配置,然后执行。

图4

图5

执行脚本:

图6

然后我们查看是否密码长度、密码复杂度检测功能是否已经开启。

图7

有图可知:新密码设置为123失败,要求必须是8位以上。

图8

由图可知:新密码设置为12345678失败,要求必须至少一个数字、一个字母,说明密码复杂度检测已经开启。

图9

由图可知,utlpwdmg.sql默认的failed_login_attempts值由10变为5。

综上所知:utlpwdmg.sql 脚本文件生效,部分密码策略已经生效。

( 为了测试方面,实验中profile中的密码策略参数只做了部分修改,实际加固中要多所有的密码策略进行整改加固。)

其实针对用户的profile的设置可以直接通过以下命令单独来设置:

ALTER PROFILE DEFAULT LIMIT

PASSWORD_LIFE_TIME 180

PASSWORD_GRACE_TIME 7

PASSWORD_REUSE_TIME 100

PASSWORD_REUSE_MAX 200

FAILED_LOGIN_ATTEMPTS 5

PASSWORD_LOCK_TIME 1/1440

PASSWORD_VERIFY_FUNCTION verify_function_11G;

补充:

1.            其中verify_function_11G 是utlpwdmg.sql文件中一段针对用户密码的复杂度检测函数。

2.            PASSWORD_LOCK_TIME 1/1440 其中的单位都是天,这里/1440是除以1440(24*60)的意思,综合此处意思为锁定时间为1分钟。

本文由网络安全攻防研究室(www.91ri)信息安全小组收集整理,转载请注明出处。

更多推荐

oracle数据库密码复杂度查询,Oracle数据库加固之密码策略