第二步是利用 Guardium Vulnerability Assessment 扫描环境,查看是否具有特定于 ">Netezza 的不安全配置和权限。第三步是详细介绍如何通过在 Netezza 配置中进行适当调整来解决一些失败的漏洞评估测试。最后一步是确保在第一和第三阶段中构建的最优权限配置未被篡改。Guardium Entitlement Reports 将用于审计 Netezza 用户管理。到现阶段为止,我们已经使用 InfoSphere Guardium 通过持续评估构建了一个固化的 Netezza 设备。
保护和加固数据环境
要建立一个安全而固化的数据环境,需要处理数据库安全性的方方面面。使用用户和组权限限制数据访问是需要为任何新的或现有数据环境关注的一个数据库活动示例。类似地,许多开箱即用的设置可能无法为给定数据环境提供最优的安全配置。这些设置中有一些是特定于平台的,需要专家知识才能实现最佳配置。除了持续更新环境和频繁识别数据库应用程序漏洞之外,还建议对影响数据环境安全性的所有组件进行评估。
InfoSphere Guardium Database Vulnerability Assessment 提供一种检测多种数据库漏洞并推荐修复方案的解决方法,其中包括不安全的配置和对象权限,弱密码和补丁缺失。通过数据库保护服务进行定期更新可确保测试基于最新的行业最佳实践,包括 CIS 和 STIG 以及供应商发布的重要更新。
产品基于成熟的 Guardium 架构,运行于安全的、经过加固的 Guardium 设备之上。评估测试和结果存储在设备上,可通过一个安全的 Web 界面加以访问。解决方案的非侵入独立性质消除了对数据服务器的性能影响。它还能确保在数据库活动与数据库管理任务之间真正实现权责分离。
除了全面的 Vulnerability Assessment 解决方案之外,Guardium 还提供 Entitlement Reports 来审核敏感的 Netezza 用户和组权限。这些报告提供了用户和组权限的屏幕截图,包括访问权限、对象权限和特定于 Netezza 数据仓库环境的系统权限。
一个安全的 Netezza 环境需要一个初始的数据库安全配置和相关的操作系统配置,且需要创建用户和组以及访问权限分配。这一过程应当基于安全最佳实践和漏洞评估结果及其建议。在完成初始设置之后,还需要重复测试和评估权限和配置。必须审查权限变更或调优配置偏离,并呈报它们,以便对它们进行修复。
已完成的保护和加固数据环境的过程将应用于 Netezza 数据仓库设备。有关 Netezza 和 Guardium 配置的详细信息,将会随场景示例一同讲解。
Netezza 安全基础
Netezza 安全性类似于其他数据库,并拥有相同的基本概念。主要挑战是准确安全地验证用户身份并设置访问权限,这样一来用户就只能看到和修改其有权限操作的数据库对象。这两个问题的解决方法与其他数据库类似,不过稍有不同。Netezza 与其他数据库之间的一个不同之处在于,它是一个包含服务器硬件、操作系统和数据库软件的设备,因此我们需要讨论所有组件。
OS 安全性
Netezza 数据仓库设备上的 OS 是一个经过修改的 Red Hat Linux®。通常用户只能对 OS 进行初始修改;例如,程序包管理由 Netezza 支持处理。默认情况下,一个 Netezza 设备有两个 OS 用户:
ROOT:仅在应用 Netezza 固件和操作系统补丁时使用 NZ:数据库软件的所有者
可以创建其他用户,比如进行开发或数据移动的用户。在这种情况下,应当遵循基本的 Red Hat 安全准则。将对设备的直接访问减少到最低很重要。
用户身份验证
Netezza 数据库用户由数据库管理,与 OS 用户无关。默认情况下,用户身份验证由数据库软件本身处理。可以使用 LDAP,不过这不在本文的讨论范围之内。Netezza 数据库软件最初构建于 PostgreSQL 之上,共享了大量特性,尤其是用户安全性等管理特性。Netezza 提供了各种高级功能来限制用户访问,其中一些我们会予以讨论。
用户和组
Netezza 设备在出厂时有一个单用户 ADMIN,这是数据库的超级用户,拥有所有可能的权限和一些特殊优势,比如一套储备的系统资源。ADMIN 仅在进行初始设置和出现突发事件时使用。在一个常规的 Netezza 设备中,您可以创建各种用户。您可以基于任务创建用户,不过他们通常应当与其真实世界的人物角色有关联,以提高审计的可能性。
Netezza 还支持组,使用组来创建具有特定权限集的用户角色。有一个特殊的组 (PUBLIC),每个已创建用户都属于这个组。它始终存在,无法删除。PUBLIC 组是将权限赋予所有数据库用户的一种方式。您应当限制赋予 PUBLIC 组的权限。
Netezza 数据库
每个 Netezza 设备都有一个 Netezza Performance Software (NPS) 运行实例,NPS 是助力 Netezza 数据仓库设备的数据库软件。不过它可以有多个数据库。与其他数据库系统相比之下,这些数据库与物理对象无关。他们是数据库对象的逻辑分组,用于管理和设置权限。例如,您会有一个与应用程序或项目相关的数据库。每个 Netezza 系统都有一个名为 SYSTEM 的特殊数据库。该数据库包含系统目录,从某种程度上讲,它是凌驾于系统中其他数据库之上的一个全局数据库。用户应当拥有对 SYSTEM 数据库的最低限度的访问权。
访问权限
在安全验证用户身份之后,系统需要确保该用户仅能够访问和修改用户有权限操作的数据库对象。和其他数据库系统一样,这是通过访问权限完成的。在 Netezza 中有两种类型的访问权限:管理权限和对象权限。管理权限与备份、还原或硬件管理等管理任务相关。它们没有绑定到特定数据库对象。对象权限与特定数据库对象相关。
可以使用 GRANT 命令授予用户或组权限。权限始终是可以附加的,这意味着每个用户都有直接授予他的所有权限,以及授予给其所属的所有组的所有权限。可以使用 REVOKE 命令删除一个组或用户的权限,不过这会删除属于该组的所有用户的权限。
Netezza 中的访问权限可以是数据库本地的或者全局的,也就是说,可以将它们应用于系统中的每一个数据库。要全局赋予权限,需要在连接到 SYSTEM 数据库的同时授予权限。要赋予仅针对特定数据库的权限,需要在执行 GRANT 之前连接到该数据库。
除了 GRANT 之外,Netezza 中还有第二个用于提供权限的概念:对象所有权。Netezza 中的每个数据库对象都有一个所有者,默认情况下,所有者是对象的创建者。所有者拥有对象的所有权限。这对于数据库特别有用,因为所有者可以充当数据库管理员,而不影响其他数据库或 SYSTEM 数据库。