oracle数据库设计:Oracle数据库安全性设计建议

="t18"> 、 什么是安全系统
安全性建设是个长期并且卓绝工作作为个符合标准企业级系统我们认为税务系统应该具备以下安全性特点:
 高可用性
 对敏感数据访问控制能力
 监测用户行为审计能力
 用户帐号治理有效性和扩充性

2、 从哪些方面作安全性检查
个企业级系统安全性建设并不仅仅局限于软件Software技术方面设置和控制甚至我们可以说技术仅仅位于个补充和提高现有安全性地位上通常应该按照重要性依次进行如下安全性检查
 物理层面控制
控制物理接触是系统安全性建设也是最会有成效最应该优先执行
权威安全研究显示70% 信息系统数据损失和攻击都是由“内部人”(即具备某种系统及其数据访问权限用户)造成和发起
比如授权人员才可以进入机房治理人员密码不要记录在显眼地方离开个人终端锁定屏幕等等这些建议看上去似乎比较琐碎但是假如缺少了这些意识即使我们运用了再好安全性技术再复杂数据分离技术个人可以接近需要保护服务器个人可以通过窃取密码接近需要保护数据那么安全性建设都将是个摆设
千里的堤毁于蚁穴个牢固堤坝不会外界洪水冲击而倒塌却会崩坏于隐藏在自身内部蛀虫
所以最佳思路方法是不要让蚂蚁靠近堤坝

安全性流程建设
实施安全性建设的后必须要有个具体周密而且行的有效流程控制(Process Control)其中行的有效是我们应该注重
有时候会听到抱怨在增强了安全性建设系统中维护人员由于分工过细导致整个系统应变能力下降维护成本提高治理效率降低以前个人可以在10分钟内作好修改现在却要途经34个人的手耗时1-2天还不定能够做完
过犹不及建立个符合企业自身需求安全性流程是我们应该优先考虑

普遍性安全性措施
不仅仅是Oracle数据库系统作为个具有领先性IT系统都应该包括以下安全性措施
1. 只安装需要软件Software
每个软件Software都有缺陷对于Oracle数据库软件Software来说自定义安装只选取需要组件少作少错点在安全性方面显得尤为重要个具有潜在安全性漏洞组件假如它没有被安装那它就不会影响整个系统
2. 锁定或者失效默认用户
对于Oracle数据库系统来说安装时候会有系列默认用户生成应该在数据库安装完毕的后经过功能筛选锁定或者失效这些用户
3. 修改可用用户默认密码
不能锁定或者失效用户必须修改默认密码比如具有SYSDBA权限SYS用户和具有DBA权限SYSTEM用户都应该修改默认密码至于密码长度和复杂性有效控制在后面将会谈到
4. 限制操作系统存取权限
Oracle数据库系统是依存在操作系统的上假如操作系统被人侵入那么通过修改配置文件等系列思路方法Oracle数据库安全性也将荡然无存
5. 定期更新厂家推出安全性补丁
随着时间推移厂家通常会推出系列安全性补丁来弥补现有系统安全隐患
对于Oracle数据库而言应该定期查看以下网址来获取Oracle公司最新安全性警告和解决方案 http://www.oracle.com/technology/deploy/security/alerts.htm

Oracle数据库本身安全性建设
从总体上而言Oracle数据库是业界安全性方面最完备数据库产品在数据库安全性国际标准中Oracle通过了14项标准测试是所有数据库产品中通过安全性标准最多、最全面产品Oracle在C2级操作系统上(如商用UNIX,VMS操作系统)不仅满足NCSC C2级安全标准而且已经正式通过了NCSC C2标准测试在B1级操作系统上不仅满足NCSC B1级安全标准而且已经通过了NCSC B1级标准测试

Oracle提供主要安全性措施如下:
 身份认证功能(Authentication):识别访问个体身份
 数据访问机密性(Confidentialty):保证敏感数据访问机密性
 数据完整性(Integrity):保证数据不被篡改
 授权能力(Authorization):保证被授权用户对数据查询和修改能力
 访问控制(Access Control):确定对指定数据访问能力
 审计能力(Auditing):提供监测用户行为能力
 私有性(Privacy):提供对敏感数据访问私密性
 高可用性(Availability):保证数据和系统提供不间断服务能力
 代理治理能力(Delegated Administration):提供对用户帐号集中治理功能

下面将就应用系统本身对于Oracle提供安全性措施作更深入探讨
3、 Oracle安全性领域
Profile控制
Oracle利用profile机制来治理会话资源占用同时也治理用户密码安全策略
通过profile我们可以实现:
某个特定用户最多只能占用系统百分的几CPU时间?
某个特定用户连接到数据库的后能存活多长时间?
某个特定用户连接到数据库的后多长时间处于非活跃状态就将被系统中断连接?
用户登录密码输入多少次的后就将自动锁定用户?
用户密码长度和包含必须符合什么样规则?
用户密码在多少天后将自动失效并要求设定新密码?

用户权限控制 (Privilage)
Oracle通过角色(Role)权限(Privilage)等系列授予(Grant)和回收(Revoke)操作可以有效进行用户权限控制

通过权限控制我们可以实现:
某个特定用户只能读取而不能修改另个用户表数据
某个特定用户只能运行Oracle数据库系统几个存储过程或者
某个特定用户自己能够拥有修改某些数据权力但是却无法给其它不拥有这个权限用户授予修改该数据权力
某个特定用户可以读取数据但是无法创建新表空间
虚拟专用数据库(VPD)
虚拟专用数据库 (VPD) 也称为细粒度访问控制它提供强大行级安全功能它是在 Oracle8i 中推出已经受到广泛欢迎
VPD 工作思路方法是通过透明地更改对数据请求基于系列定义标准向用户提供表局部视图在运行时所有查询都附加了谓词以便筛选出准许用户看到
也就是通过VPD设置我们可以做到行级安全性控制特定用户即使对张表有读取权限那么也只能看到符合自身权限记录

注重在Oracle10g版本中VPD得到增强已经可以实现字段级安全性控制了
例子及搭建步骤参看:利用VPD细粒度访问策略实现行级安全性 Step By Step

Orace Label Security
基于对由客户提交行级安全性严格要求Oracle Label Security(Oracle 数据库企业版选件的)利用多级安全性概念解决了世界上政府和商业用户在实际中碰到数据安全和隐私问题
OLS 通过利用数据敏感度标签(例如“敏感”和“公司机密”)和用户标签授权提供了完善行级安全性控制
OLS 使用政策概念来存储标签定义和授权该政策可直接在数据库中进行治理或在 Oracle 身份治理中进行集中治理

Oracle Database Valut
通常数据库治理员假如具有了DBA权限那么就很难防止这样治理员查看应用数据而Oracle Database Valut则解决了必须保护涉及合作伙伴、员工和顾客敏感业务信息或隐私数据客户最为担心问题
Oracle Database Vault 可防止高权限应用 DBA 访问其他应用、执行其权限的外任务Oracle Database Vault 可在不影响应用功能前提下快速而高效地保护现有
Oracle Database Vault 可通过下列思路方法解决些最为常见安全问题和内部威胁:
1. 限制 DBA 和其他授权用户访问应用数据
2. 防止DBA 操纵数据库和访问其他应用Oracle Database Vault 提供了强大职责划分控制功能可防止擅自更改数据库比如说假如个用户具有 CREATE USER 权限但不具备正确用户治理权限则 Oracle Database Vault 将阻止该 DBA 创建新用户
3. 更好控制何人、何时、何地可以访问应用如日期时间、数据库客户端在网络上位置的类原因
Oracle Database Valut是新Oracle Database 10g企业版选件目前已经有Linux X86以及Solaris SPARC 64bit版本可以下载使用了

用户访问审计
审计是Oracle安全性个重要领域我们还必须小心地计划审计方案有几种方式可在Oracle中进行审计:

1. SQL审计命令(标准审计)

通过AUDIT语句我们可以对成功或者不成功特定对象读取更新操作进行审计
标准审计只会记录较少跟踪信息比如发出该语句用户、时间、终端标识号等等
该审计对于系统性能影响更多地取决于对象繁忙程度

2. 用对象触发器进行审计(也就是DML审计)

此类审计通常由客户自行开发放置于特定数据库对象上触发器由于是自行开发所以相对于标准审计则能够更自由地记录更多感爱好跟踪信息
比如更新操作将某个字段从什么原始值更新到了什么新值
该审计对于系统性能影响更多地取决于对象繁忙程度和触发器编写水平

3. 用系统级触发器进行审计(记录用户登录和退出)

当用户登录数据库或者离开数据库时都可以通过自定义触发器来记录用户名称操作时间终端标识号等信息
由于触发器触发几率小所以该审计对于系统性能影响并不大

4. 用LogMiner进行审计(也就是DML和DDL)

Oracle数据库将所有更新操作都记录在重作日志中而Oracle提供了LogMiner工具用于挖掘重作日志中所有操作相比起上述各种审计思路方法来说该种审计可能是信息最为完善对于应用系统性能影响最小思路方法
此处稍微延展开来说LogMiner是双刃剑既然可以用来审计也就能够被恶意使用作为数据窃取工具所以在数据本身加密方面Oracle同样提供了多种解决方案比如DBMS_OBFUSCATION_TOOLKITDBMS_CRYPTO和最新透明数据加密甚至在数据备份方面Oracle也推出了Secure Backup来应对磁带数据加密但是要注重到数据加密不应用作访问控制替代项存储加密数据并不会在存储介质本身提供额外保护层只是有助于在发生介质遭窃时保护诸如信用卡号的类敏感数据本文不再作更多介绍

5. 细精度审计(FGA)

细粒度审计 (FGA)是在 Oracle 9i 中引入能够记录 SCN 号和行级更改以重建旧数据但是它们只能用于 select 语句而不能用于 DML如 update、insert 和 delete 语句因此对于 Oracle 数据库 10g 的前版本使用触发器虽然对于以行级跟踪用户更改是没有吸引力选择,但它也是唯可靠思路方法
而Oracle10g种FGA功能增强使其不但能够支持select操作同时也支持DML操作在 Oracle 10g 中审计已经从个单纯“操作记录者”成长为个“事实记录机制”它能以个非常具体级别来捕捉用户行为这可以消除您对手动、基于触发器审计需要它还结合了标准审计和 FGA 跟踪这使其更易于跟踪数据库访问而不用考虑它是如何生成
通过细粒度审计我们可以记录:
在早上 9点到下午 6点的间或在星期 6和星期日对某个表进行了访问
使用了公司网络外部某个 IP 地址
选定或更新了特定列
使用了该列特定值
Tags:  oracle数据库恢复 oracle数据库备份 oracle数据库 oracle数据库设计

延伸阅读

最新评论

发表评论