ORACLE数据库安全基础知识

前端之家收集整理的这篇文章主要介绍了ORACLE数据库安全基础知识前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

@H_502_1@一、数据字典保护

@H_502_1@启用数据字典保护,只有SYSDBA@H_502_1@用户才能访问数据字典基础表

@H_502_1@使用show parameters@H_502_1@命令来检查参数O7_DICTIONARY_ACCESSIBILITY@H_502_1@是否为FALSE@H_502_1@。

@H_502_1@二、账号安全管理

@H_502_1@1、根据用户的业务需要,配置最小权限

@H_502_1@使用以下sql@H_502_1@查询具有DBA@H_502_1@权限的用户

selectgranteeasusernfromdba_role_privswheregranted_role='DBA'intersectselectusernamefromdba_users;

@H_502_1@使用以下sql@H_502_1@查询具有DBA@H_502_1@权限的角色

selectgranteeasusernfromdba_role_privswheregranted_role='DBA'minus(selectgranteeasusernfromdba_role_privswheregranted_role='DBA'intersectselectusernamefromdba_users);

@H_502_1@2、使用数据库角色(ROLE@H_502_1@)来管理对象的权限

@H_502_1@使用select * from dba_role_privs@H_502_1@或dba_tab_privs; select* from user_role_privs;@H_502_1@查看帐号角色;确定帐号权限划分是否明确。

@H_502_1@3、对用户属性进行控制,包括密码策略、资源限制等。

@H_502_1@为不同的业务用户建立不同的profile@H_502_1@,设置数据库口令复杂度,有效期及锁定配置等,Profile@H_502_1@参数解释如下:

A@H_502_1@.对数据库资源做限制

SESSIONS_PER_USER @H_502_1@每个用户名所允许的并行会话数

cpu_PER_SESSION @H_502_1@一个会话一共可以使用的cpu@H_502_1@时间,单位是百分之一秒

cpu_PER_CALL @H_502_1@一次sql@H_502_1@调用(@H_502_1@解析、执行和获取)@H_502_1@允许使用的cpu@H_502_1@时间

CONNECT_TIME @H_502_1@限制会话连接时间,单位是分钟

IDLE_TIME @H_502_1@允许空闲会话的时间,单位是分钟

LOGICAL_READS_PER_SESSION @H_502_1@限制会话对数据块的读取,单位是块

LOGICAL_READS_PER_CALL @H_502_1@限制sql@H_502_1@调用对数据块的读取,单位是块

COMPOSITE_LIMIT @H_502_1@指定一个会话的总的资源消耗,以serviceunits@H_502_1@单位表示

PRIVATE_SGA @H_502_1@限制会话在SGA@H_502_1@中Shared Pool@H_502_1@中私有空间的分配

B@H_502_1@.对密码做限制

Failed_LOGIN_ATTEMPTS @H_502_1@帐户被锁定之前可以错误尝试的次数

PASSWORD_LIFE_TIME @H_502_1@密码可以被使用的天数,单位是天,默认值180@H_502_1@天

PASSWORD_REUSE_TIME @H_502_1@密码可重用的间隔时间(@H_502_1@结合PASSWORD_REUSE_MAX)

PASSWORD_REUSE_MAX @H_502_1@密码的最大改变次数(@H_502_1@结合PASSWORD_REUSE_TIME)

PASSWORD_LOCK_TIME @H_502_1@超过错误尝试次数后,用户被锁定的天数,默认1@H_502_1@天

PASSWORD_GRACE_TIME @H_502_1@当密码过期之后还有多少天可以使用原密码

PASSWORD_VERIFY_FUNCTION @H_502_1@密码复杂度设置,至少8@H_502_1@个字符大写字母+@H_502_1@小写字母+@H_502_1@数字+@H_502_1@特殊符号

@H_502_1@具体用法举例:

alterprofileprofile_namelimitPASSWORD_VERIFY_FUNCTIONverify_function_11g;--设置数据库口令复杂度
alterprofileprofile_namelimitFailed_LOGIN_ATTEMPTS5--设置数据库口令输错5次被锁


@H_502_1@4、根据业务限制具备数据库超级管理员(SYSDBA@H_502_1@)权限的用户远程登录

@H_502_1@使用show parameters@H_502_1@命令来检查参数REMOTE_LOGIN_PASSWORDFILE@H_502_1@是否为NONE@H_502_1@。(搭建DG,RMAN@H_502_1@备份等都需要管理员权限,根据业务设置)

@H_502_1@5、限制在DBA@H_502_1@组中的操作系统用户数量

@H_502_1@限制除oracle,grid@H_502_1@之外的其它操作系统用户dba@H_502_1@组中,以防止其用户串改或删除oracle@H_502_1@软件文件内容

三、@H_502_1@可信IP@H_502_1@地址访问控制

@H_502_1@通过数据库所在操作系统或防火墙限制,只有信任的IP@H_502_1@地址才能通过监听器访问数据库,可通过设置$ORACLE_HOME/network/admin/sqlnet.ora@H_502_1@文件中参数tcp.validnode_checking@H_502_1@和tcp.invited_nodes@H_502_1@实现限制,需重启监听。

四、默认端口及实例名修改
对于默认的1521端口,应该修改掉默认的监听端口;对于 Oracle TNS Listener SID 可以被猜测,不应该使用安装Oracle时默认的SID(ORCL),应该设置复杂度较高的SID。


@H_502_1@五、记录操作事件

@H_502_1@1、创建触发器对用户登录进行日志记录

@H_502_1@建表LOGIN_CHECK_LOG

createtablelogin_check_log(session_idnumber(8,0)notnull,login_on_timedate,user_in_dbvarchar(50),ip_addressvarchar(20));

@H_502_1@建触发器LOGIN_CHECK

createtriggerlogin_check
afterlogonondatabase
begin
insertintologin_check_log(session_id,login_on_time,user_in_db,ip_address)selectaudsid,sysdate,sys.login_user,sys_context('userenv','ip_address')fromv$sessionwhereaudsid=userenv('sessionid');
end;
/

@H_502_1@还可以通过创建数据库连接使用相关的触发器,比如:限制只能IP@H_502_1@为xxx@H_502_1@的客户端使用PL/sql@H_502_1@连接数据库

@H_502_1@2、数据库应配置日志功能,记录用户数据库的操作

@H_502_1@通过记录操作日志,记录需要包含用户帐号,操作时间,操作内容以及操作结果等。比如开启监听器日志。

LSNRCTL>setlog_directory$ORACLE_HOME/diag/tnslsnr/<hostname>/listener/alert/
LSNRCTL>setlog_filelog.xml
LSNRCTL>setlog_statuson
LSNRCTL>save_config


@H_502_1@3、根据业务要求制定数据库审计策略

@H_502_1@使用show parameter@H_502_1@命令来检查参数audit_trail@H_502_1@是否设置,具有参数如下:

none@H_502_1@:是默认值,禁用数据库审计。

os@H_502_1@:启用审计,并将数据库审计记录定向到 OS@H_502_1@审计记录。

db@H_502_1@:启用审计,并将数据库审计记录定向到数据库 SYS.AUD$@H_502_1@表 11g@H_502_1@此参数默认为 db@H_502_1@。

db_extended@H_502_1@:启用审计,并将数据库所有审计记录定向的到数据库@H_502_1@的 SYS.AUD$@H_502_1@表中,包含 SYS.AUD$@H_502_1@表的 sqlBIND @H_502_1@列和 sqlTEXTCLOB @H_502_1@列。这样审计的结果里面除了连接信息还包含了当时执行的具体语句。

xml@H_502_1@:启用数据库审计,并将所有的记录写到XML @H_502_1@格式的 OS @H_502_1@系统文件中。

xml_extended@H_502_1@:启用数据库审计,输出审计记录的所有列,包括 sqltext @H_502_1@和 sqlbind@H_502_1@。

@H_502_1@有兴趣的童鞋还可以了解一下ORACLE@H_502_1@的安全审计产品:Oracle Audit Vault and Database Firewall @H_502_1@(AVDF@H_502_1@)

@H_502_1@六、数据库漏洞管理

@H_502_1@使用主流漏洞扫描工具进行扫描,对于中高危漏洞,应及时修复,检查系统的详细版本号,@H_502_1@及时更新ORACLE@H_502_1@发布的中高危补丁;对于暂无修复手段的漏洞,应通过其他技术手段进行风险规避。具体请参考:国内外权威的CVE@H_502_1@漏洞库。

CVE@H_502_1@中文漏洞信息库-SCAP@H_502_1@中文社区:http://cve.scap.org.cn/

CVE - Common Vulnerabilities and Exposures(CVE) @H_502_1@:http://cve.mitre.org/

猜你在找的Oracle相关文章