知识宝库在此藏,一键关注获宝藏
操作系统内:sqlplus / as sysdba
命令:select * from v$version;
![等保2.0测评深入理解 — Oracle 数据库 等保2.0测评深入理解 — Oracle 数据库]()
首先通过安装包,进行安装PLSQL软件(付费阅读后可私聊免费领取),完成后双击打开
图型化工具只是对 sqlplus 命令的外表封装,所以我们需要让 plsqldev 这个
工具能找到 sqlplus 命令,这里就需要对应的Oracle环境
配置客户端目录,工具--->首选项(Tools-->Preferences)
录入 oracle 客户端的目录+”oci.dll”
C:UsersAdministratorDesktopinstantclient_11_2
C:UsersAdministratorDesktopinstantclient_11_2oci.dll
此时这个数据库的名字就是上述 tnsnames.ora 的配置,同时如果是SYS、SYSTEM账户登录,记得连接为修改成SYSDBA。
所以现场测评的时候,记得确认下IP地址是否正确,不要测错了数据库哦。
PS:如果误操作左边对象浏览器没了,视图 → 对象浏览器
![等保2.0测评深入理解 — Oracle 数据库 等保2.0测评深入理解 — Oracle 数据库]()
一、身份鉴别
a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换
1. 身份标识和鉴别
2. 身份标识唯一性
即用户名具有唯一性,无同名账户存在,oracle默认符合
user_id是唯一的,每个用户在数据库中都会被分配一个唯一的user_id,用于唯一标识该用户。查看用户user_id
select username,user_id from dba_users;
3. 身份鉴别信息具有复杂度
3.1 当前口令组成
首先确认用户当前口令是否具有一定的复杂度,即口令是否包含大写字母、小写字母、数字、特殊字符中的三种,长度8位以上。
3.2 强制密码策略
select * from dba_profiles where profile='DEFAULT';
查看PASSWORD_VERIFY_FUNCTION 的值
这里配置表的规则,用户时可以自定义多个配置给不同用户使用的
比如这里的 PASSWORD_VERIFY_FUNCTION 的profile字段值为DEFAULT,某用户要使用Default的相关配置,就要设置DBA_USERS表中的profile字段值为DEFAULT。
select username,profile from db_users;
当然使用plsql连接的话还可以通过图形化界面来看
3.2.1 utlpwdmg.sql
在安装oracle的时候,默认会有一个utlpwdmg.sql文件,是创建函数的一段语句。
使用,find / -name 'utlpwdmg.sql';
查询到文件在此位置,/data/oracle/product/11.2.0/db_1/rdbms/admin/utlpwdmg.sql
然后sqlplus / as sysdba 进入SQL
在oracle11g中,运行utlpwdmg.sql 会创建两个函数,一个是新版本的口令校验函数,一个是老版本的,在里面还会对配置表进行修改,让PASSWORD_VERIFY_FUNCTION 的值为新版本的口令校验函数的名字。
查看utlpwdmg.sql文件,最后有这么一段,但是不准确
实际引用的函数直接在数据库中查看相应的值,而不是去查看utlpwdmg.sql 文件。
3.2.2 PASSWORD_VERIFY_FUNCTION_11G
1)第一段就是检查口令的最小长度,如果小于8就返回错误,所以口令最小长度须为8
2)第二段检查用户口令是否和用户名一样,如果一样返回错误
并且同时检查口令不能是用户名后面加上1-100的数字
4)第四段检查用户口令是否和数据库名相等,以及是否为数据库名+(1-100)
因为我这里是默认数据库名:orcl,口令的长度不够,测试不出来
5)第五段,检查口令是否为一些简单的单词,用户意义根据需要自行添加一些弱口令
6)第六段,检查口令是否为oracle(1-100)
7)第七段,检查口令是否同时包含1个数字和1个字母
由于这里字母组、数字的定义是:
verify_function_11G,如果新口令和旧口令一样的话,应该通不过校验的才对。
经过实验,不知道是为什么old_password是空字符串,压根就没有传值进来,所以实际上直接跳过了旧口令和新口令的对比校验……
9)最后,第九字段,如果通过了所有校验(没有返回错误),就返回ture
总结:
从整个默认的新版校验函数来看,要求口令长度不低于8位,需要同时包含数字、字母(大小写均可),然后一些简单的弱密码不可以设置。
另外,针对SYS账户的口令更改,不受到这个校验函数的限制。
登录SYS按道理来说使用的是密码文件或操作系统的验证,所以不知道在USER$中SYS账户的PASSWORD字段的值有什么用,虽然也会跟着口令的更改而更改就是了。
原文始发于微信公众号(等保不好做啊):等保2.0测评深入理解 — Oracle 数据库
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
点赞
https://cn-sec.com/archives/2312964.html
复制链接
复制链接
-
左青龙
- 微信扫一扫
-
-
右白虎
- 微信扫一扫
-
评论