Oracle数据安全解决方案(2)——Oracle Database Vault

原文地址:http://download.oracle.com/docs/cd/B28359_01/server.111/b31222/dvintro.htm

Oracle Database Vault

本篇包含如下内容:

·         什么是Oracle Database Vault?

·         Oracle Database Vault组成部分

·         Oracle Database Vault遵循哪些规范

·         Database Vault应对哪些内部威胁

·         Oracle Database Vault允许制定灵活的安全策略

·         Oracle Database Vault如何应对数据库联合

1.1  什么是Oracle Database Vault?

Oracle Database Vault能够限制任何用户访问数据库中的特定区域,包括拥有管理(administrative)权限在内的用户,例如,你可以限制管理员访问员工薪水、客户医疗记录、或者其他敏感信息。

这样你就可以针对你的敏感数据以多种方式来应用细粒度的访问控制,它加固Oracle数据库实例,同时加强了分离传统高权限用户职责的这个业界最佳实践。更重要的是,它使你的数据免遭特权用户损坏,同时又允许他们维护Oracle数据库。Oracle Database Vault是你的企业不可分割的一部分。

通过Oracle Database Vault,你可以解决现在仍然是最困难的安全问题:保护数据免遭内部威胁,满足通常的合规要求,加强职责隔离。

你可以配置Oracle Database Vault去管理独立的Oracle数据库实例的安全。你可以安装Oracle Database Vault到一个独立的Oracle数据库设备上、多个Oracle home下、以及Oracle RAC环境中。

更多关于Oracle Database VaultFAQ请访问如下链接:

http://www.oracle.com/technology/deploy/security/database-security/database-vault/dbv_faq.html

更多OTN上关于Oracle Database Vault的信息请访问如下链接:

http://www.oracle.com/technology/deploy/security/database-security/database-vault/index.html

1.2  Oracle Database Vault组成部分

Oracle Database Vault包含如下部分:

·         Oracle Database Vault 访问控制组件

·         Oracle Database Vault 管理员组件(DVA)

·         Oracle Database Vault配置助手DVCA)

·         Oracle Database Vault DVSYS DVF Schemas

·         Oracle Database Vault PL/SQL接口和开发包

·         Oracle Database VaultOracle Label Security PL/SQL APIs

·         Oracle Database Vault 监控和报告工具

1.2.1   Oracle Database Vault访问控制组件

Oracle Database Vault使你能够创建如下组件来保护你的数据库实例的安全:

·         域:域是需要被保护的数据库schemal、对象、角色的一个功能上的集合。例如:你可以将和账户、销售、或者人力资源相关的数据库schemal、对象、角色组成一个域。当你将这些组成一个域后,你可以使用域来控制赋给特定账户或者角色的系统权限的使用。这样你就可以给任何想使用这些数据库schemal、对象、角色的用户提供细粒度的访问控制。Chapter 4, "Configuring Realms" 详细讨论了域。.

·         命令规则:命令规则是一个特殊的规则,通过这个规则,你可以控制用户如何执行他们能够执行的几乎所有的SQL语句,包括SELECT, ALTER SYSTEM, database definition language (DDL), data manipulation language (DML)语句.命令规则必须和规则集一起决定某个语句是否允许执行。Chapter 6, "Configuring Command Rules" 详细讨论了规则集.

·         因素:因素是一个命名变量或者属性,例如用户位置、数据库IP地址、会话用户,这些因素是Oracle Database Vault能够识别和保护的。你可以针对用户活动使用这些因素,例如授权数据库账户链接到数据库,或者创建过滤逻辑条件来限制数据的可见性和可管理性。每个因素可以包含一个或者多个标识,标识是因素的具体的值。一个因素可以包含多个标识,这取决于因素的检索方法或者它的映射逻辑。Chapter 7, "Configuring Factors" 详细讨论了因素.

·         规则集:规则集是一个或者多个规则的集合,你可以将规则集和一个域的授权、命令规则、因素指派、或者安全应用角色关联起来。规则集基于其中的每个规则的计算值以及规则的计算方式(所有为真或者任意为真)。规则集中的规则是一个结果为“true”或“false”的PL/SQL表达式。Chapter 5, "Configuring Rule Sets"详细讨论了规则集。

·         安全应用角色:一个安全应用角色是一个特殊的Oracle数据库角色,它可以基于Oracle database vault规则集的计算结果激活。Chapter 8, "Configuring Secure Application Roles for Oracle Database Vault"详细讨论了安全应用角色。

为了加强这些组件的功能,Oracle Database vault提供了一系列的PL/SQL接口和包。"Oracle Database Vault PL/SQL Interfaces and Packages" 提供了一个概括的介绍.

通常情况下,你要做的第一步是创建一个包含你想保护的schema或者数据库对象的域,然后你就可以通过创建规则、命令规则、因素、标识、规则集、安全应用角色来保护你的域。除此以外,你可以运行报告工具来报告这些组件监控和保护的活动。Chapter 3, "Getting Started with Oracle Database Vault"提供了一个简单的指南,可以使你熟悉Oracle Database Vault的功能,Chapter 16, "Oracle Database Vault Reports"提供了更多关于如何运行报告来检查配置和其它Oracle Database Vault 完成的活动。

1.2.2   Oracle Database Vault管理员(DVA)

Oracle Database Vault 管理员是一个基于Oracle Database VaultPL/SQL API构建的Java程序。这个程序可以让不熟悉PL/SQL接口的安全管理者通过友好的用户界面来配置访问控制策略。Oracle Database Vault管理员程序提供了众多的安全相关的报告,这些报告可以帮助了解基准的安全配置。这些报告同时也有助于指出与基准配置相比,当前配置有哪些变化。

Chapter 4 Chapter 9解释了如何通过Oracle database Vault管理员程序来配置访问策略, 以及如何将Oracle Database Vault与其它Oracle产品集成起来. Chapter 16, "Oracle Database Vault Reports" 解释了Oracle Database Vault报告.

1.2.3   Oracle Database Vault 配置助手 (DVCA)

为了执行维护任务,可以使用命令行工具Oracle Database Vault配置助手(DVCA).更多信息请参考Appendix C, "Postinstallation Oracle Database Vault Procedures".

1.2.4   Oracle Database Vault DVSYS and DVF Schemas

Oracle Database Vault 提供了DVSYS这个schema来存储所有需要Oracle Database Vault保护的数据库对象。DVSYS schema包含角色、视图、账户、函数、以及其它Oracle Database Vault使用的数据库对象。DVF schema包含一些公共函数,这些函数用于从Oracle Database Vault访问控制配置中读取因素值的集合。

Chapter 10, "Oracle Database Vault Objects" 详细描述了这两个schema.

1.2.5   Oracle Database Vault PL/SQL 接口和包

Oracle Database Vault提供了一个PL/SQL接口和包,让安全管理员或者应用程序开发者按需配置访问控制策略。PL/SQL存储过程和函数使得普通的数据库账户能够在一个数据库会话上下文中在访问控制策略边界里进行操作。

参考Chapter 14, "Using the Oracle Database Vault PL/SQL Interfaces" and Chapter 11, "Using the DVSYS.DBMS_MACADM Package"获取更多信息.

1.2.6   Oracle Database Vault Oracle Label Security PL/SQL APIs

Oracle Database Vault提供了能够和Oracle Label Security集成的访问控制能力。Oracle Label Security是和Oracle Enterprise Manager Database Control集成的,Oracle Enterprise Manager Database Control能够让安全管理员定义应用到数据库对象的标签安全策略。Oracle Label Security同样提供了一组可以供数据库应用程序开发者用来提供标签安全策略的PL/SQL API

参考 "Integrating Oracle Database Vault with Oracle Label Security" 获取更多关于Oracle Database VaultOracle Label Security如何配合的信息. 参考 Oracle Label Security Administrator's Guide 获取更多关于Oracle Policy Manager的信息.

1.2.7   Oracle Database Vault 报告和监控工具

你可以根据Oracle Database Vault监控的不同的活动来生成报告,你可以监控策略的改变、异常的安全尝试、数据库配置和结构的变化。

参考 Chapter 16, "Oracle Database Vault Reports" 获取更多关于你可以生成的报告的信息. Chapter 15, "Monitoring Oracle Database Vault" 解释了如何监控Oracle Database Vault.

1.3  Oracle Database Vault遵循哪些规范

对规章制度的顺从的一个最大的好处是安全意识。历史上,关于信息技术部门的关注重点在可获得性和性能上面,而对遵守规章制度的关注要求每个人退后一步,然后从安全的角度看看他们的IT基础设施、数据库、应用程序。通常的问题包括:

·         谁能够访问这些信息?

·         敏感信息存储在哪里?

法律法规如Sarbanes-Oxley Act, Health Insurance Portability and Accountability Act (HIPAA), International Convergence of Capital Measurement and Capital Standards: a Revised Framework (Basel II), Japan Privacy Law, Payment Card Industry Data Security Standard (PCI DSS), and the European Union Directive on Privacy and Electronic Communications都含有一些常见的主题,例如内部控制、职责分离,以及访问控制。

然而,对于像Sarbanes-Oxley and HIPAA这些法规来说,最大的挑战是程序上的,剩余的部分可能需要技术投资。法律规章中一个常见的安全需求是严厉的内部控制。Oracle Database Vault能够帮助组织达到要求的程度随不同的法律规章而变化。通常情况下,Oracle Database Vault域、职责分离、命令集、因素总体上有助于减少全世界的法律规章规定的安全威胁。

Table 1-1列出了法律规章给出的潜在的安全威胁

Table 1-1法律规章给出的潜在的安全威胁

Regulation

Potential Security Threat

Sarbanes-Oxley Section 302

未经授权修改数据

Sarbanes-Oxley Section 404

修改数据,未经授权访问

Sarbanes-Oxley Section 409

拒绝服务,未经授权访问

Gramm-Leach-Bliley

未经授权访问, 修改,查看

Health Insurance Portability and Accountability Act (HIPAA) 164.306

未经授权访问

HIPAA 164.312

未经授权访问

Basel II – Internal Risk Management

未经授权访问

CFR Part 11

未经授权访问

Japan Privacy Law

未经授权访问

EU Directive on Privacy and Electronic Communications

未经授权访问

Payment Card Industry Data Security Standard (PCI DSS)

未经授权修改数据

 

1.4  Database Vault应对哪些内部威胁

多年来,蠕虫、病毒,和外部入侵者(黑客)被认为是计算机系统最大的威胁。不幸的是,经常被忽视的是可信用户以及特权用户可能盗窃或者修改数据。

Oracle Database Vault使用域、因素、命令规则来应对内部威胁。这些手段合起来提供强大的安全工具来帮助保护对数据库、应用程序、敏感数据的访问。你可以结合规则和因素来控制在什么样的条件下数据库命令能够被执行,控制被域保护的数据的访问。例如,你可以基于IP地址、时间日期、特定的应用程序来创建规则和因素来控制对数据的访问。这样可以限制只能由满足条件的连接才能够访问数据,以此来防止未经授权访问应用数据和为经授权的应用访问数据库。

Oracle Database Vault提供一些内置的因素,你可以将其与规则结合来控制数据库访问、域保护应用、以及数据库内部的命令。

你可以将规则以及因素和几十个数据库内部命令关联起来,提供更强的数据库内部控制。你可以定制这些手段来满足你的操作策略。例如,你可以定义一个规则来限制特定IP地址特定主机名称运行ALTER SYSTEM语句。

1.5  Oracle Database Vault允许制定灵活的安全策略

Oracle Database Vault可以帮助你为你的数据库设计灵活的安全策略。例如,任何具有DBA角色的数据库用户,如SYSTEM,能够修改数据库的基本参数。加入一个有系统特权的菜鸟管理员决定启动新的redo log文件,但是他并没有意识到在特定的时间进行那样操作会导致数据库出问题。通过Oracle Database Vault,你可以创建一个限制使用ALTER SYSTEM SWITCH LOGFILE命令规则来防止这样的用户做这样的操作。

除此以外,你也可以将规则绑定到命令规则上,以此来多方面的限制活动,例如,按照如下方式限制语句的执行:

·         按照时间(例如,只能在周五下午4~5点执行)

·         只能本地访问, 即不允许远程访问

·         按照IP地址(例如,只允许每个特定范围的IP地址访问)

通过这种方式,你可以很小心的控制和保护你的系统。你可以按照你的需要激活或者禁止命令规则,你也可以通过Oracle Database Vault管理员工具非常容易的集中维护命令规则。

1.6  Oracle Database Vault如何应对数据库联合

Oracle的客户拥有数百甚至数千分布在企业或者全球的数据库。因此,数据库合并在未来的几年将持续作为一个成本节约策略。分布式的数据库架构提供的物理安全在合并环境中也必须具备。Oracle Database Vault提出了关于数据库合并的主要关注点。

Figure 1-1 表明了Oracle Database Vault 如何应对这些关注点:

·         管理特权账户访问应用数据: 这种情况下,Oracle Database Vault 防止DBA访问由FIN域保护的schema。尽管DBA是最强大和可信的用户,但DBA并不需要访问数据库中的应用数据。

·         应用数据访问的职责分离: 这种情况下,由Oracle Database Vault 创建的,FIN域拥有者,能够访问FIN域的schema.

Figure 1-1 Oracle Database Vault 安全

Oracle数据安全解决方案(2)——Oracle Database Vault
Description of "Figure 1-1 Oracle Database Vault Security"

数据库合并导致很多强大的用户账号驻留在单个数据库中。这意味着除了整个数据库的DBA,各个应用schema的拥有者也具有强大的特权。废除一些特权将反过来影响已有的应用。通过Oracle Database Vault域,你可以通过可信路径、防止未经授权的用户使用特权查看数据两个手段来加强对应用数据的访问。例如,可以防止拥有SELECT ANY TABLE特权的DBA使用这个特权来查看应用数据。

上一篇:博客文章: Nginx虚拟主机防webshell


下一篇:mac AndroidStudio git 引用失效