内容


MongoDB 的 InfoSphere Guardium 数据安全和保护,第 3 部分

报告、自动执行和阻止

保护新一代数据库

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: MongoDB 的 InfoSphere Guardium 数据安全和保护,第 3 部分

敬请期待该系列的后续内容。

此内容是该系列的一部分:MongoDB 的 InfoSphere Guardium 数据安全和保护,第 3 部分

敬请期待该系列的后续内容。

简介

此文章系列的第 1 部分介绍了 MongoDB 和 InfoSphere Guardium。提供了有关 InfoSphere Guardium 如何帮助您在更多应用程序中利用 MongoDB 让您感到更安全(因为它能够完全监视和审计数据活动)的一些背景信息。您了解了该解决方案的架构以及使用其原生功能确保 MongoDB 安全的一些建议,还了解了 InfoSphere Guardium 所带来的优势。

此系列的第 2 部分深入介绍了配置解决方案的详细信息,并解释了如何为各种用例创建安全策略规则。

此系列的最后一篇文章将向您介绍可以使用 InfoSphere Guardium 进行的更多操作,其中包括:

  • 搜索和浏览审计数据。
  • 创建报告,并将审计流程配置为路由报告以便进行审查。
  • 阻止可疑用户。只有 Advanced Activity Monitor 才有这个特殊的功能。

查看审计结果:搜索和报告

这一节将介绍用于审计数据的几个不同选项:

  1. 即时搜索(此版本中的新功能)
  2. 活动报告

搜索和浏览

快速搜索工具(位于 Guardium UI 的顶部横幅中),启用该工具时,可提供针对数据库活动、错误和违规的快速搜索和浏览功能。该功能使用了搜索索引,每隔 1-2 分钟运行一次。您可以使用常用的搜索技术,其中包括分面搜索(faceted search)和文本搜索,或者二者的集合使用,以便快速对审计数据进行即时调查。

搜索包含以下事项:

  • 数据库活动各个方面的统计信息(时间、地点、人物、事件)直方图。单击这些方面中的任何一个方面可以缩小您的搜索范围。
  • 自由文本搜索将会搜索所有带索引的审计数据。例如,您可以输入字符串 “john”,然后搜索所有带索引的数据来查找 john,无论它出现在 DB User、OS User、Client 和 Error 中,还是出现在消息详细信息中。

在默认情况下,搜索和浏览功能都处于禁用状态。要启用该功能,可以以 CLI 用户的身份运行以下 grdapigrdapi enable_quick_search

要访问该功能,请输入一个搜索词或单击 InfoSphere Guardium UI 顶部横幅中的手电筒,如图 1 所示。

图 1. 访问审计数据的搜索和浏览
在红色框中突出显示的手电筒图标
在红色框中突出显示的手电筒图标

使用左侧的方面来选择要添加到筛选器的值。例如,如果您想要查看是否有任何人最近丢弃了某个对象,那么您可以选择自己的时间范围,然后选择 MongoDB 作为 DB Type,并选择 drop 作为动词。

图 2. 使用直方图(方面)浏览审计数据
使用直方图(方面)浏览审计数据
使用直方图(方面)浏览审计数据

该操作将会缩小结果的范围,并包含详细信息,包括丢弃的对象、时间和发布该命令的 db 用户。由于空间限制,图 3 中无法显示所有内容。

图 3. 经过筛选的搜索结果
经过筛选的搜索结果
经过筛选的搜索结果

创建报告

InfoSphere Guardium 包含很多内置的报告定义和一个丰富的报告构建功能。一些报告会自动填充数据;而对于另一些报告,您必须修改运行时间参数(比如指定正确的日期范围)才能填充该报告。

如果您看到自己喜欢的报告,还可以克隆用于生成该报告的查询,并对其进行调整,使之满足您的要求。例如,我们假定您喜欢名为 “Admin Users Login” 的报告。如果您以管理员身份登录,那么您会在 Daily Monitor 选项卡上找到该报告。如果单击该报告,您可能会看到消息 No data found,如图 4 所示。出现该消息的常见原因是日期范围可能未包含该活动发生的时间范围,或者未满足查询条件的其他某些方面。

图 4. 一个找不到查询结果的内置报告
一个找不到查询结果的内置报告
一个找不到查询结果的内置报告

单击该报告下面的黄色铅笔图标,您可以看到用于创建该报告的基本查询,如图 5 所示。上半部分包含报告中的列,下半部分包含条件。您可以看到该报告的一个条件是 Admin Users 组的一个运行时参数。

图 5. 用于生成该报告的查询
显示报告列和报告条件的查询构建器
显示报告列和报告条件的查询构建器

要查看 Admin Users 组中都有谁,可以转到 Group Builder 工具。假定您以管理员用户身份登录,请导航到 Tools 选项卡中的 Group Builder。

图 6. Group Builder 菜单
该图显示了 Tools 选项卡和突出显示的 Group Builder 菜单项
该图显示了 Tools 选项卡和突出显示的 Group Builder 菜单项

在打开 Group Filter 后,单击 Next。从现有组的列表中,选择 Admin Users 并单击 Modify

如果您的 MongoDB 管理员用户不在列表中,那么可以添加他们,如图 7 所示。

图 7. 向组中添加新的管理员用户
该图显示了如何将 sundari 添加为管理员成员
该图显示了如何将 sundari 添加为管理员成员

如果该报告仍然没有显示任何数据,那么您可以自定义该报告,以更改数据范围。要执行该操作,请单击该报告右上角的 Customize 图标(蓝色铅笔),如图 8 所示。

图 8. 通过单击报告组件右上角的蓝色铅笔图标来自定义报告
图标题中的文本为描述性文本
图标题中的文本为描述性文本

然后,您可以更改日期范围(如图 9 所示)以包含一个包括之前整个一周(NOW -1 week)的时间范围,我们知道这个时间已经包含该活动。

图 9. 扩展报告的日期范围
日期被更改为 NOW-1 WEEK 以包含更多数据
日期被更改为 NOW-1 WEEK 以包含更多数据

现在,该报告显示了一些数据,如图 10 所示。

图 10. 报告现在显示了一些数据
报告显示了 SUNDARI 登录的活动
报告显示了 SUNDARI 登录的活动

我们仅仅触及了报告自定义和报告创建的一些表面知识。不过,在 参考资料 中,有一个连接到 InfoSphere Guardium 信息中心 “操作方法” 主题的链接,该链接可以帮助您开始执行这些操作。

使用数据集市提高预定义的报告性能

您可以使用自己的或 Guardium 预定义的查询和报告来创建一个数据集市,该数据集市可用来大大提高常用报告的性能。数据集市是一个指定的表,它基于您所需的报告结构。您为了实现汇总数据的目的而定义数据集市的数据粒度(比如分钟、小时、天或周)并计划定期运行该操作。由于结构是预先定义的,所以它不再需要进行运行时联接(join)或其他资源密集型数据库活动。

在需要与常规报告(您可能需要在 Guardium Aggregators 上对大量数据进行处理)一起使用时,数据集市可能特别有效。由于数据集市反映了报告的结构,所以不需要进行复杂的多表联接,从而会大大提高这些报告的性能。

任何报告都可以通过单击报告底部的 Data Mart Builder 链接转换成数据集市,如图 11 所示。

图 11. 进入 Data Mart Builder 的图标
在报告右下角突出显示了该图标位置(底部工具栏)的报告
在报告右下角突出显示了该图标位置(底部工具栏)的报告

在 Data Mart Builder 中,您可以指定希望运行查询的频率,以及您将其保存为使用该定义创建的默认报告的时间。系统会根据您选择的粒度和制定的计划不断填充数据。

图 12. 数据集市配置
数据集市配置字段包含数据集市名称、描述、表的提取结果、表名称、时间粒度等。单击 Add to Pane 可向 UI 中添加相应的报告。
数据集市配置字段包含数据集市名称、描述、表的提取结果、表名称、时间粒度等。单击 Add to Pane 可向 UI 中添加相应的报告。

创建审计数据的报告并将其添加到工作流以便审查

运行报告并获得批准并不只是某个人的有趣想法。这个过程自动化程度越高,您担心它的时间就越少,所需的合规性管理人员或审计员的审计跟踪能力就越高。借助 Guardium,您可以使用一个审计流程来计划要运行的报告,并将此报告自动发送给审查人员。系统将跟踪谁进行了审查或注销。所有必要操作都可以通过 Web 界面安全执行,其中包括审查结果、提供批准、注释和改进某个操作。

图 13. 审计流程可以自动路由审查和注销
箭头显示审计流程从 DBA 流经 Information Security 直到 Auditor/Manager
箭头显示审计流程从 DBA 流经 Information Security 直到 Auditor/Manager

虽然我们不能详细介绍如何创建一个审计流程,但我们会向您介绍其中一些要点。在这个示例中,我们希望创建一个审计流程,该流程将我们的 Privileges 报告的一个副本发送给相应的人员,以便对它们进行审查。

图 14 显示了我们的报告的外观。

图 14. 我们创建的名为 MongoDB Privilege Report 的报告
包含 system.users 上活动的报告
包含 system.users 上活动的报告

要将其添加到审计流程,请转到 Audit Process Builder(如果您以管理员身份登录,则从 Tools 开始)并创建一个新的流程。系统会询问您是否创建接收者,即将接收审计流程结果的人员(或角色)。然后您就可以将该报告添加为该审计流程中的任务,其中包括您希望报告查询涉及的时间范围(例如,从之前的一天 (NOW -1 DAY) 一直到现在 (NOW))。一个审计流程可以包含多个任务,而任务又可以包含一组报告或其他活动。

图 15. 审计流程构建器
该图突出显示了构建器的某些区域,比如计划、接收者和屏幕中的 Audit Tasks 部分,在这个位置,您可以添加 mongodb 特权报告审查任务
该图突出显示了构建器的某些区域,比如计划、接收者和屏幕中的 Audit Tasks 部分,在这个位置,您可以添加 mongodb 特权报告审查任务

您可以制定计划,让任务定期运行,比如每天午夜运行。这样,管理员或 DBA 在第二天早上就会从他们的电子邮件中收到该报告。他们的批准(如果需要)和注释将作为该流程的审计跟踪数据的一部分进行保留。

图 16 给出了发送的电子邮件的一个示例,其中包含该报告的 PDF。

图 16. 审计流程中的电子邮件示例
电子邮件提供了您的评论:MongoDB 审计流程上的用户和特权
电子邮件提供了您的评论:MongoDB 审计流程上的用户和特权

阻止访问(通过高级活动监视功能)

在某些情况下,可能需要阻止用户访问特殊数据。一个典型的用例是阻止管理员访问敏感数据,或者在系统中发现未知用户时阻止该用户。高级活动监视许可证中提供了这项功能,该功能可以在以下情况帮助保护您的数据:

  • 使用外包 DBA 时,需要限制其访问敏感数据
  • 涉及现有或即将出现的内部或外部违规时

该功能依赖于 S-GATE,它是 S-TAP 的一个扩展,可通过修改 guardtap.ini 文件中的一些参数来激活此功能。S-GATE 参数是被称为 “防火墙” 参数。由于使用 S-GATE 可能会导致一些延迟,因此我们建议您在初始化文件中启用 S-GATE,但是,仅当使用名为 S-GATE ATTACH 的策略操作满足某些特定条件时,才能打开该文件。清单 1 提供了您在 guardtap.ini 文件中修改防火墙参数的一个示例。

firewall_installed=1    <This enables the S-GATE capability to be used
firewall_fail_close=0
firewall_default_state=0  <S-GATE off by default but can be turned on using a policy  rule
firewall_timeout=10

假定已经激活了 S-GATE ATTACH 规则,该流程的工作原理如下(有关步骤的说明,请参阅 图 17):

  1. 当某个未经授权的用户连接到 MongoDB 并输入一个命令时,S-GATE 会识别出这个特殊的会话就是必须观察的那个会话。
  2. 该命令由 S-GATE 持有。
  3. 将命令与策略进行比较,以查看是否有违反策略的情况,比如是否访问了某个特殊的敏感对象或对象组。
  4. 如果违反了策略规则并且您的策略操作是 S-GATE TERMINATE,那么 S-GATE 会终止该会话,并不允许继续将该命令用于 Mongo 服务器。如果允许使用该命令,则会允许该语句进入服务器。
图 17. 阻止过程概述
阻止过程概述
阻止过程概述

可以使用许多不同的组合来设置满足您的需要的阻止情况。最重要的事情是确保您不会对普通的业务应用程序应用该功能,因为这会导致延迟针对策略检查所有传入的命令。

对于我们的策略,我们将阻止不在 “授权的用户组” 中的人访问任何敏感数据对象。例如,该组可能包含授权的应用程序的特定 ID。表 1 是我们将要创建的规则的摘要,以及在每个规则中使用的组。

表 1. 用于创建我们的示例策略规则的规则和组
规则描述规则中使用的组
观察未经授权的用户(对不在这些对象的授权用户组中的用户进行的任何活动启用 S-GATE。)授权用户(修改内置组)
阻止未经授权的用户(访问敏感数据)授权用户(修改内置组)
MongoDB 敏感对象(之前在此系列文章的第 2 部分创建的对象)

现在,我们将介绍在正确的环境下激活阻止所需的规则。

首先,如图 18 所示,指定 S-GATE 附加条件,在该条件中授权的用户将激活 S-GATE。请注意,该操作对性能有影响,因此您只能在有限的环境下激活 S-GATE Attach 操作。不建议对应用程序流量使用该操作。

图 18. 设置开始观察数据活动的条件
条件是 ”NOT authorized users“,操作为 ”S-GATE Attach“
条件是 ”NOT authorized users“,操作为 ”S-GATE Attach“

接下来,如果这些用户中的任何用户访问敏感数据,则会继续前进并终止该连接。

图 19. 设置终止用户连接的条件
向条件中添加了 “mongodb sensitive objects” 组,操作为 “S-GATE Terminate”
向条件中添加了 “mongodb sensitive objects” 组,操作为 “S-GATE Terminate”

请注意,在阻止某个会话时,系统会将这种情况写成一种策略违反情况,您还可以在 Incident Management 选项卡上看到这种情况。如果您的规则包含要警告的操作,那么还可以将这种情况写入 SYSLOG,以便能够将其转发到某个 SIEM 系统,让安全人员进行跟踪调查。还有一个在指定时间内隔离用户以便进行安全调查的选项。

结束语

此文章系列详细介绍了 InfoSphere Guardium 对 MongoDB 的支持,但此处介绍的功能也适用于各种数据库系统,这些数据库包括代表过去、现在和将来数据库技术的各式各样的数据处理系统。数据库和数据处理技术迅速发展,以便满足新的应用程序和用例的需求。MongoDB 是 “NoSQL” 技术的领先提供商之一,很多需要新技术来处理新数据处理问题的组织机构都打算结合使用 MongoDB 与传统的关系型数据库。因此,拥有一个可以跨关系型技术和 NoSQL 技术使用的数据安全和监视解决方案非常重要。

InfoSphere Guardium 的构建基础 是,可以跨各种数据库(包括其他 NoSQL 系统,比如 Cassandra 和 CouchDB、关系型、主框架数据(包括 DB2、IMS 和 VSAM),或者基于 Hadoop 的系统,比如 InfoSphere BigInsights、Cloudera、Greenplum Hadoop 和 Hortonworks Data Platform)采用它,并快速提供数据监视功能。

在此文章系列中,我们展示了 IBM 和 10gen 共同开发和验证 MongoDB 的 InfoSphere Guardium 功能的工作结果。总之,这些产品可以提供一个 NoSQL 选项,该选项提供了组织机构通常所需的安全和审计功能,使得公司遵从各种隐私和金融法规。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=972086
ArticleTitle=MongoDB 的 InfoSphere Guardium 数据安全和保护,第 3 部分: 报告、自动执行和阻止
publish-date=05222014