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

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

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

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

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

6f3d9d8f755d22a3165abaf7e10ce35e.png

图1

aa1bec9a824decef99584672e21afc70.png

图2

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

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

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

6acf394110d7f78905adda705f9685ee.png

图3

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

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

bd5b7f47937059c2853080bda95057d9.png

图4

0e287e3ff593ff8e45c262a833aa81a7.png

图5

执行脚本:

b486bb3eab9110ddf011222f74fc594c.png

图6

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

ea5caccba1fdb7b728793be5542147c3.png

图7

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

5bddd0cb4b4b16eb5dd94adc5a703171.png

图8

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

0f04be0f849f6b1a72d4376795c796b2.png

图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.org)信息安全小组收集整理,转载请注明出处。