oracle修改cycle设置,oracle加固

一.检查项名称:检查是否使用加密传输

判断条件:通过网络层捕获的数据库传输包为加密包,有设置sqlnet.encryption为符合要求  1.在Oracle Net Manager中选择“Oracle Advanced Security”。

2. 然后选择Encryption。

3. 选择Client或Server选项。

4. 选择加密类型。

5. 输入加密种子(可选)。

6. 选择加密算法(可选)。

7. 保存网络配置,sqlnet.ora被更新。

补充操作说明:存在sqlnet.encryption

二.使用lsnrctl start或lsnrctl stop命令起停listener需要密码

通过下面命令设置密码:

$ lsnrctl

LSNRCTL> change_password

Old password:Not displayed

New password:Not displayed

Reenter new password:Not displayed

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=prolin1)(PORT=1521)(IP=FIRST)))

Password changed for LISTENER

The command completed successfully

LSNRCTL> save_config

补充操作说明:命令:cat network/admin/sqlnet.ora,回显中存在PASSWORDS_LISTENER

三.Oracle软件账户的安全策略

判断条件:每3个月自动提示更改密码,过期后不能登陆。  使用操作系统一级的账户安全管理来保护Oracle软件账户。

补充操作说明:此项的判断方式同操作系统的口令生存周期项一致

四.检查是否限制可以访问数据库的地址

判断条件:在非信任的客户端以数据库账户登陆被提示拒绝。

只需在服务器上的文件$ORACLE_HOME/network/admin/sqlnet.ora中设置以下行:

tcp.validnode_checking = yes

tcp.invited_nodes = (ip1,ip2…)

补充操作说明:tcp.validnode_checking的值为yes

五.10分钟以上的无任何操作的空闲数据库连接被自动断开,SQLNET.EXPIRE_TIME有设置  在sqlnet.ora中设置下面参数:

SQLNET.EXPIRE_TIME=10

补充操作说明:存在SQLNET.EXPIRE_TIME值大于等于1

六.检查是否配置最大认证失败次数

判断条件:连续6次用错误的密码连接用户,第7次时用户将被锁定

为用户建profile,指定FAILED_LOGIN_ATTEMPTS为6

补充操作说明:如果连续6次连接该用户不成功,用户将被锁定

命令:select limit from dba_profiles t where resource_name= 'FAILED_LOGIN_ATTEMPTS',回显中default值变成6

七.检查是否根据业务要求制定数据库审计策略

判断条件:对审计的对象进行一次数据库操作,检查操作是否被记录。

1. 通过设置参数audit_trail = db或os来打开数据库审计。

2. 然后可使用Audit命令对相应的对象进行审计设置。

补充操作说明:存在os,db,DB,OS

八.检查是否记录操作日志

判断条件:做相关操作,检查是否记录成功

创建ORACLE登录触发器,记录相关信息,但对IP地址的记录会有困难

1.建表LOGON_TABLE

2.建触发器

CREATE TRIGGER TRI_LOGON

AFTER LOGON ON DATABASE

BEGIN

INSERT INTO LOGON_TABLE VALUES(SYS_CONTEXT('USERENV', 'SESSION_USER'),

SYSDATE);

END;

补充操作说明:命令:select value from v$parameter t where t.name= 'audit_trail',VALUE等于DB,OS中的一个

九.检查是否限制具备数据库超级管理员(SYSDBA)权限的用户远程登录

判断条件:1. 以SYSDBA用户不能远程连接到数据库。

1.在spfile中设置REMOTE_LOGIN_PASSWORDFILE=NONE来禁止SYSDBA用户从远程登陆。

补充操作说明:命令:select t.VALUE from v$parameter t whereupper(t.NAME) like  '%REMOTE_LOGIN_PASSWORDFILE%',回显中出现NONE

十.检查是否在数据库对象上设置了VPD和OLS

判断条件:通过视图来检查是否在数据库对象上设置了VPD和OLS。

1.在表上构建 VPD可以使用Oracle所提供的 PL/SQL 包 DBMS_RLS 控制整个 VPD 基础架构,具体设置方法较复杂,建议参考Oracle文档进行配置。

2. Oracle标签安全(OLS)是在相关表上通过添加一个标签列来实现复杂的数据安全控制,具体细节请参考Oracle文档。

补充操作说明:命令:select count(*) from v$vpd_policy,回显中COUNT值大于等于1

十一. 检查帐户口令生存周期

判断条件:到期不修改密码,密码将会失效。连接数据库将不会成功

修改profile,使所有profile的PASSWORD_LIFE_TIME参数小于等于90

补充操作说明:在90天内,需要修改密码

命令:select limit from dba_profiles t where resource_name= 'PASSWORD_LIFE_TIME',回显值小于等于90

十二. 检查口令强度设置

判断条件:修改密码为不符合要求的密码,将失败.profile中对于口令强度有定义

为用户建profile,调整PASSWORD_VERIFY_FUNCTION,指定密码复杂度

CREATE PROFILE "TEST_PROFILE"

LIMIT PASSWORD_VERIFY_FUNCTION VERIFY_FUNCTION;

ALTER USER "USER_NAME"  PROFILE"TEST_PROFILE";

补充操作说明:命令:select count(*) from dba_profiles whereresource_name = 'PASSWORD_VERIFY_FUNCTION' and limit = 'NULL',回显中COUNT值为0

十三.检查是否使用数据库角色(ROLE)来管理对象的权限

判断条件:对应用用户不要赋予DBA Role或不必要的权限。1.使用Create Role命令创建角色。

2. 使用用Grant命令将相应的系统、对象或Role的权限赋予应用用户。

除了默认用户(sys、system和sysman),其他用户都没有赋予dba角色

补充操作说明:获取拥有dba权限的非默认管理员用户,用户数等于0

十四.检查是否在配置用户所需的最小权限

判断条件:非默认的具有DBA权限用户个数为0      grant权限 to username;

revoke 权限 from username;

补充操作说明:用第一条命令给用户赋相应的最小权限

用第二条命令收回用户多余的权限

获取拥有dba权限的非默认管理员用户,用户数等于0

十五.检查是否配置日志功能

判断条件:登录测试,检查相关信息是否被记录

创建ORACLE登录触发器,记录相关信息,但对IP地址的记录会有困难1.建表LOGON_TABLE2.建触发器CREATE TRIGGER TRI_LOGON AFTER LOGON ON DATABASEBEGIN INSERT INTO LOGON_TABLE VALUES (SYS_CONTEXT('USERENV','SESSION_USER'),SYSDATE);END;

补充操作说明:触发器与AUDIT会有相应资源开消,请检查系统资源是否充足。特别是RAC环境,资源消耗较大。

命令:select count(*) from dba_triggers t wheretrim(t.triggering_event) = trim('LOGON'),回显中COUNT值大于等于1

十六. 检查是否记录安全事件日志

判断条件:做相关测试,检查是否记录成功

创建ORACLE登录触发器,记录相关信息,但对IP地址的记录会有困难

1.建表LOGON_TABLE

2.建触发器

CREATE TRIGGER TRI_LOGON

AFTER LOGON ON DATABASE

BEGIN

INSERT INTO LOGON_TABLE VALUES(SYS_CONTEXT('USERENV', 'SESSION_USER'),

SYSDATE);

END;

补充操作说明:命令:select count(*) from dba_triggers t wheretrim(t.triggering_event) = trim('LOGON')。回显中COUNT值大于等于1

十七. 检查是否设置记住历史密码次数

判断条件:重用修改5次内的密码,将不能成功。profile中对于次数有定义

为用户建profile,指定PASSWORD_REUSE_MAX为5

补充操作说明:当前使用的密码,必需在密码修改5次后才能再次被使用

命令:select limit from dba_profiles t where resource_name= 'PASSWORD_REUSE_MAX',回显中default值变成5

十八. 检查是否对用户的属性进行控制

判断条件:1. 可通过设置profile来限制数据库账户口令的复杂程度,口令生存周期和账户的锁定方式等。

2. 可通过设置profile来限制数据库账户的CPU资源占用。

为每个新用户赋予非默认的profile。

可通过下面类似命令来创建profile,并把它赋予一个用户

CREATE PROFILE app_user2 LIMIT

FAILED_LOGIN_ATTEMPTS 6

PASSWORD_LIFE_TIME 60

PASSWORD_REUSE_TIME 60

PASSWORD_REUSE_MAX 5

PASSWORD_VERIFY_FUNCTIONverify_function

PASSWORD_LOCK_TIME 1/24

PASSWORD_GRACE_TIME 90;

ALTER USER jd PROFILE app_user2;

补充操作说明:命令:select * from dba_users t where profile notin ('DEFAULT','MONITORING_PROFILE'),回显中的值大于0

十九. 检查是否存在dvsys用户dbms_macadm对象

判断条件:以DBA用户登陆,不能查询其它用户下面的数据

Oracle Data Vault是作为数据库安全解决方案的一个单独选件,主要功能是将数据库管理账户的权限和应用数据访问的权限分开, Data Vault可限制有DBA权限的用户访问敏感数据。设置比较复杂,具体细节请参考Oracle文档。

补充操作说明:命令:select count(*) from dba_users whereusername='DVSYS',回显中COUNT值等于1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值