首页 存档 技术 查看内容

Oracle数据库安全面面观

2018-3-30 13:00 |来自: 互联网 325 0

摘要: 转载声明:本文为DBA 社群原创文章,转载必须连同本订阅号二维码全文转载,并注明作者名字及来源:DBA 社群(dbaplus)。 专家简介 张文宇:10年以上IT服务相关工作经验,长期从事系统、网络及数据库方面的规划设计 ...



转载声明:本文为DBA 社群原创文章,转载必须连同本订阅号二维码全文转载,并注明作者名字及来源:DBA 社群(dbaplus)。


专家简介

张文宇:10年以上IT服务相关工作经验,长期从事系统、网络及数据库方面的规划设计、工程实施与运维管理工作,具备丰富的运营商、医疗等行业项目经验。目前专注项目管理、解决方案、售前及咨询类工作。持有Oracle 8i OCP,10g OCM,及思科、微软等厂商产品认证。


1
概述


数据库中保存的数据涉及各类账号、密码、个人隐私、安全信息等敏感信息,核心数据是企业的命脉。通过建立完善的信息安全系统,保护企业核心数据尤其是企业商业机密,防止从内、外部泄密,已经成为当前众多企业的共识。


随着信息化建设的不断发展,IT安全建设的重点,已经从传统的网络安全、桌面安全、系统安全、应用安全和身份认证管理安全等领域,转向了如何加强IT系统核心的数据库安全防范。


数据库成为企业信息资产的同时, 也被越来越多的不良之徒所觊觎。数据被违规访问、删、改、复制和缺乏审计的安全问题, 已经成为IT系统最大的威胁。根据IOUG 和Verizon Business的最新市场调查,2010 年全球造成严重后果的IT安全事件中92%是针对数据库的侵入,89%的黑客采用了SQL注入技术,84%的外部攻击利用了管理不善的数据库用户权限。


那么,如何才能更有效地保护数据库不受侵害?如何解决非法访问的监控与审计?如何达到《信息安全等级保护条例》的信息安全合规要求?怎样才能满足中国SOX《企业内部控制基本规范》的规定?


本文从数据安全角度简述数据库安全的管理,从逻辑安全与物理安全两个方面进行论述。


2
安全状况分析


调查结果显示92%的记录源自被侵入的数据库服务器,也就是说数据库安全是确保数据安全的关键。




-- Databases and file servers, both repositories of so much valuable information, are also targeted regularly.


近年一些著名的泄密门:

  • 省级电信公司的增值服务客户信息被竞争对手掌握

  • 某移动公司的充值卡数据被篡改、作案者卖卡获利380万

  • 某地社保核心参数被修改,导致当月所有缴费金额错误

  • 某地社保受益账户修改,诈领养老金事件


数据泄漏的途径离不开以下三个层面:

  • 存储层:直接盗走数据文件或备份文件,异地还原后得到数据;

  • 数据访问:通过人为获取DBA等高权限用户的口令,或通过权限提升等漏洞得到一个高权限用户身份,进行数据窃取;

  • 应用层:破解或通过工作便利获取应用中的数据库用户口令,绕开业务系统直接访问所有数据(因业务系统中往往对操作范围进行限定,只可获得局部数据)。


数据库的安全漏洞与威胁类别繁多,入侵数据库的常见手段不下几十种,攻击者最常使用的有:

  1. 通过暴力破解数据库用户口令,操纵数据库

  2. 利用缺省口令的漏洞访问数据库

  3. 利用权限提升的漏洞得到高权限用户身份,控制数据库

  4. 利用PL/SQL注入等,获取访问权限提升,操纵数据库

  5. 利用管理漏洞,获知DBA等合法用户名的口令,操纵数据库

  6. 入侵到数据库服务器主机,拷贝数据文件、或备份文件




3
数据逻辑安全防御措施


如前所述,真正行之有效的数据库防护的技术手段应该是从根源上,进行核心数据的增强访问控制。包括存储层上利用加密技术保护核心数据项、访问控制上采用独立的权限控制增强技术防止DBA等高权限用户,应用层保证数据库用户与业务系统的绑定无法绕开。


本文后续重点介绍数据库层面的数据安全防御措施。




3.1 用户管理


首先应针对数据库账号,将其按照功能进行分类,例如:数据库默认账号、程序账号、维护账号等。




数据库用户/用户组应配置相应的安全规则,如下:




使用用户profile进行属性控制,针对不同类型的用户,使用不同的profile属性:




3.2 权限管理


根据最佳实践,针对权限管理建议从用户权限、账号角色管理、数据字典保护、DBA组权限限制方面做到如下几点:

  • 根据用户的业务需要,配置其所需的最小权限

  • 使用数据库角色(ROLE)来管理对象的权限

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

  • 限制在DBA组中的操作系统用户数量,通常DBA组中只有Oracle安装用户




遵循权限最小化原则,使用角色对用户进行授权。




3.3 日志安全管理


日志安全方面,可从登录日志、操作日志、系统安全事件、数据库审计策略四个方面考虑:

  • 记录登录日志:数据库应配置日志功能,对用户登录进行记录,记录内容包括用户登录使用的账号、登录是否成功、登录时间以及远程登录时用户使用的IP地址。

  • 记录操作日志:数据库应记录用户对数据库的操作,包括但不限于以下内容:账号创建、删除,权限、口令修改,读取与修改数据库配置,读取与修改业务用户的敏感数据。记录需要包含用户账号、操作时间、操作内容以及操作结果几个方面。

  • 记录系统安全事件:配置在系统层面记录安全事件,方便管理人员分析。

  • 数据库审计策略:根据业务要求制定数据库审计策略。


3.4 数据库审计


需要特别强调一下数据库审计方面的内容,Audit审计的种类可大致分为如下几种:

  • 强制审计:为每一次实例启动写出审计记录到OS文件,shutdown以及权限登录的记录存放在$ORACLE_HOME/rdbms/audit 目录下。其中对SYS用户的审计记录SYSDBA/SYSOPER等权限用户的操作,审计记录存放在OS 文件,SYSLOG中。

  • 标准审计:记录用户针对数据库对象、语句、权限级别的行为。审计记录可以存放在OS文件、XML文件或数据库中(AUD$基表),分为如下级别:

    ◎对象级别审计

    ◎权限级别审计

    语句级别审计

  • 细粒度控制:基于用户访问的数据记录用户行为。 审计记录存放在数据库内(FGA_LOG$)或者XML文件中。


标准审计包括:SQL语句审计、系统权限审计与对象权限审计三类,流程及说明如下:






SQL 语句审计:幻灯片中显示的语句可审计影响表的任何数据定义语言 (DDL) 语句,包括 CREATE TABLE、DROP TABLE 和 TRUNCATE TABLE 等。可按用户名或者按成功或失败来设置 SQL 语句审计的重点:


SQL

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部