设为首页 收藏本站
查看: 843|回复: 0

[经验分享] ORACLE数据库安全基础知识

[复制链接]

尚未签到

发表于 2018-9-6 10:56:48 | 显示全部楼层 |阅读模式
  一、数据字典保护
  启用数据字典保护,只有SYSDBA用户才能访问数据字典基础表
  使用show parameters命令来检查参数O7_DICTIONARY_ACCESSIBILITY是否为FALSE。
  二、账号安全管理
  1、根据用户的业务需要,配置最小权限
  使用以下SQL查询具有DBA权限的用户
select grantee as usern from dba_role_privswhere granted_role ='DBA' intersect select username from dba_users;  使用以下SQL查询具有DBA权限的角色
select grantee as usern from dba_role_privswhere granted_role ='DBA' minus (select grantee as usern from dba_role_privswhere granted_role ='DBA' intersect select username from dba_users);  2、使用数据库角色(ROLE)来管理对象的权限
  使用select * from dba_role_privs或dba_tab_privs; select* from user_role_privs;查看帐号角色;确定帐号权限划分是否明确。
  3、对用户的属性进行控制,包括密码策略、资源限制等。
  为不同的业务用户建立不同的profile,设置数据库口令复杂度,有效期及锁定配置等,Profile参数解释如下:
  A.对数据库资源做限制
  SESSIONS_PER_USER   每个用户名所允许的并行会话数
  CPU_PER_SESSION     一个会话一共可以使用的CPU时间,单位是百分之一秒
  CPU_PER_CALL      一次SQL调用(解析、执行和获取)允许使用的CPU时间
  CONNECT_TIME      限制会话连接时间,单位是分钟
  IDLE_TIME         允许空闲会话的时间,单位是分钟
  LOGICAL_READS_PER_SESSION  限制会话对数据块的读取,单位是块
  LOGICAL_READS_PER_CALL    限制SQL调用对数据块的读取,单位是块
  COMPOSITE_LIMIT          指定一个会话的总的资源消耗,以serviceunits单位表示
  PRIVATE_SGA    限制会话在SGA中Shared Pool中私有空间的分配
  B.对密码做限制
  FAILED_LOGIN_ATTEMPTS 帐户被锁定之前可以错误尝试的次数
  PASSWORD_LIFE_TIME    密码可以被使用的天数,单位是天,默认值180天
  PASSWORD_REUSE_TIME  密码可重用的间隔时间(结合PASSWORD_REUSE_MAX)
  PASSWORD_REUSE_MAX   密码的最大改变次数(结合PASSWORD_REUSE_TIME)
  PASSWORD_LOCK_TIME    超过错误尝试次数后,用户被锁定的天数,默认1天
  PASSWORD_GRACE_TIME   当密码过期之后还有多少天可以使用原密码
  PASSWORD_VERIFY_FUNCTION  密码复杂度设置,至少8个字符大写字母+小写字母+数字+特殊符号
  具体用法举例:
alter profile profile_name limitPASSWORD_VERIFY_FUNCTION verify_function_11g; --设置数据库口令复杂度  
alter profile profile_name limit FAILED_LOGIN_ATTEMPTS5 --设置数据库口令输错5次被锁
  4、根据业务限制具备数据库超级管理员(SYSDBA)权限的用户远程登录
  使用show parameters命令来检查参数REMOTE_LOGIN_PASSWORDFILE是否为NONE。(搭建DG,RMAN备份等都需要管理员权限,根据业务设置)
  5、限制在DBA组中的操作系统用户数量
  限制除oracle,grid之外的其它操作系统用户在dba组中,以防止其用户串改或删除oracle软件文件内容。
  三、可信IP地址访问控制
  通过数据库所在操作系统或防火墙限制,只有信任的IP地址才能通过监听器访问数据库,可通过设置$ORACLE_HOME/network/admin/sqlnet.ora文件中参数tcp.validnode_checking和tcp.invited_nodes实现限制,需重启监听。
  四、默认端口及实例名修改
  对于默认的1521端口,应该修改掉默认的监听端口;对于 Oracle TNS Listener SID 可以被猜测,不应该使用安装Oracle时默认的SID(ORCL),应该设置复杂度较高的SID。
  五、记录操作事件
  1、创建触发器对用户登录进行日志记录
  建表LOGIN_CHECK_LOG
create table login_check_log(session_idnumber(8,0) not null,login_on_time date,user_in_db varchar(50), ip_addressvarchar(20));  建触发器LOGIN_CHECK
create trigger login_check  
after logon on database
  
begin
  
insert into login_check_log(session_id,login_on_time,user_in_db,ip_address)select audsid,sysdate,sys.login_user,sys_context('userenv','ip_address') from v$session where audsid=userenv('sessionid');
  
end;
  
/
  还可以通过创建数据库连接使用相关的触发器,比如:限制只能IP为xxx的客户端使用PL/SQL连接数据库
  2、数据库应配置日志功能,记录用户对数据库的操作
  通过记录操作日志,记录需要包含用户帐号,操作时间,操作内容以及操作结果等。比如开启监听器日志。
LSNRCTL>set log_directory  $ORACLE_HOME/diag/tnslsnr//listener/alert/  
LSNRCTL>set log_file log.xml
  
LSNRCTL>set log_status on
  
LSNRCTL>save_config
  3、根据业务要求制定数据库审计策略
  使用show parameter命令来检查参数audit_trail是否设置,具有参数如下:
  none:是默认值,禁用数据库审计。
  os:启用审计,并将数据库审计记录定向到 OS审计记录。
  db:启用审计,并将数据库审计记录定向到数据库的 SYS.AUD$表 11g此参数默认为 db。
  db_extended:启用审计,并将数据库所有审计记录定向的到数据库的 SYS.AUD$表中,包含 SYS.AUD$表的 SQLBIND 列和 SQLTEXTCLOB 列。这样审计的结果里面除了连接信息还包含了当时执行的具体语句。
  xml:启用数据库审计,并将所有的记录写到XML 格式的 OS 系统文件中。
  xml_extended:启用数据库审计,输出审计记录的所有列,包括 sqltext 和 sqlbind。
  有兴趣的童鞋还可以了解一下ORACLE的安全审计产品:Oracle Audit Vault and Database Firewall (AVDF)
  六、数据库漏洞管理
  使用主流漏洞扫描工具进行扫描,对于中高危漏洞,应及时修复,检查系统的详细版本号,及时更新ORACLE发布的中高危补丁;对于暂无修复手段的漏洞,应通过其他技术手段进行风险规避。具体请参考:国内外权威的CVE漏洞库。
  CVE中文漏洞信息库-SCAP中文社区:http://cve.scap.org.cn/
  CVE - Common Vulnerabilities and Exposures(CVE) :http://cve.mitre.org/



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-563967-1-1.html 上篇帖子: oracle 表收缩 下篇帖子: oracle下载(转载)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表