华为桌面云解决方案概述_解决方案概述和数据安全建议

华为桌面云解决方案概述

注意:在2013年10月,本文已更新以反映推荐的新S-TAP配置。

本文的作者来自IBM和10gen,MongoDB公司,他们合作对MongoDB的InfoSphere Guardium进行了认证。 这是一次很棒的练习,因为我们了解了彼此的产品和用例。 我们真的很想写一些东西,以帮助那些熟悉关系数据库和InfoSphere Guardium的人们更多地了解为什么组织为某些类型的应用程序采用MongoDB。 从InfoSphere Guardium的角度来看,我们的基础结构已扩展到涵盖MongoDB中不同的消息协议,但是管理员和信息安全人员将遵循相同的过程来启用MongoDB进行审核,报告等。

我们还希望使MongoDB用户至少对InfoSphere Guardium中的功能有所了解,以帮助其组织达到审核和合规性目标,防止数据泄漏并帮助发现风险活动,例如使用服务器端JavaScript。

实现目标令人兴奋,但还需要比单篇文章覆盖的空间更多。 因此,为了广泛涵盖某些主题,并为其他主题提供分步说明,我们创建了一系列三篇文章:

  • 本文的第1部分,介绍了MongoDB和InfoSphere Guardium,简要介绍了MongoDB的安全最佳实践,并说明了联合解决方案的好处。 本文还描述了该体系结构,并逐步介绍了数据如何流到InfoSphere Guardium以及如何在InfoSphere Guardium设备中进行处理的步骤。
  • 第2部分讨论了为MongoDB配置InfoSphere Guardium监视代理程序的细节。 它还介绍了如何使用安全策略来完成一些常见用例,包括监视特权用户访问,警报和反复失败的登录。
  • 第3部分描述了InfoSphere Guardium的一些功能,这些功能使其成为企业的流行数据安全和合规性解决方案,包括阻止,查看和报告审核数据,以及创建审核流程以自动执行合规性工作流程。

引入MongoDB

来自端点设备的数据激增,不断增长的用户数量以及诸如云计算,社交业务和大数据之类的新计算模型对数据访问和分析产生了需求,这些需求可以处理这些数量惊人的数据。 快速增长的NoSQL数据库类的价值是能够处理这些趋势所需的更高的速度和数据量,同时还可以通过动态模式实现更大的敏捷性。 例如,动态模式可以使组织快速响应不断变化的法规。

特别是,MongoDB在为您带来这些好处的同时,还提供了通用操作数据存储所必需的丰富查询功能。 它通过文档模型提供更高的开发人员生产力和敏捷性; 它可以在适合于关系型数据库或典型NoSQL数据库的情况下使用,或者可以用于新的数据库。

图1展示了MongoDB体系结构的高级视图,并介绍了一些关键概念,这些概念对于理解您是否负责为MongoDB配置InfoSphere Guardium具有重要意义。 (此图表示分片的环境。MongoDB也可以独立运行。)MongoDB使用自动分片实现水平可伸缩性,并使用副本集实现高可用性。 客户端连接到MongoDB进程(在分片环境中的mongos),如果安全性已打开,则可以选择对其进行身份验证,并执行数据库中文档的插入,查询和更新。 mongos将查询路由到适当的分片(mongod)以完成特定命令。

图1. MongoDB架构提供了可扩展的环境
客户端连接到mongos(查询路由器),然后拆分为配置为副本集的碎片。

由于MongoDB使用文档数据模型,因此它是一种NoSQL数据库,称为文档数据库。 文档使用JSON(JavaScript对象表示法)以分层方式建模,因此它们仅包含名称-值对。 这些值可以是一个单独的类型化值,一个数组,也可以自己记录(以及它们的组合)以匹配您在应用程序中拥有的任何对象。 该模型可以提供快速查询,因为数据可以彼此相邻地存储在文档中,而不是散布在多个表中并且需要连接。 清单1显示了一个JSON文档的示例。

清单1.样本JSON文档
{
"_id" : 1,
"name" : { "first" : "John", "last" : "Backus" },
"contribs" : [ "Fortran", "ALGOL", "Backus-Naur Form", "FP" ],
"awards" : [
           {
             "award" : "W.W. McDowell Award",
             "year" : 1967,
             "by" : "IEEE Computer Society"
           },
           { "award" : "Draper Prize",
             "year" : 1993,
             "by" : "National Academy of Engineering"
           }
]
}

通过此文档结构,您可以像在应用程序中对对象进行建模的方式一样,将数据存储在MongoDB中,因此,它具有很大的上市时间和敏捷性优势(特别是结合了动态的,未预定义的架构)。

在后台,文档以二进制JSON格式(BSON)进行存储以提高效率,但是您无需处理JSON文档以外的任何内容。

表1比较了关系和MongoDB的概念。

表1.将关系概念映射到MongoDB
关系概念 相当于MongoDB 评论
数据库/架构 数据库 其他的容器
采集
文件
领域 字段是在文档级别定义的,而不是在集合中定义的。 换句话说,没有关系数据库那样的预定义架构。
指数 指数

Mongo的其余功能旨在使您能够使用此文档结构和您喜欢的编程语言,而无需花费大量时间来管理数据库。 高可用性,性能和自动分片(分区)的构建方式使应用程序不必太担心它们,因此应用程序开发团队可以专注于快速满足业务需求。

MongoDB的安全性建议

随着越来越多的企业希望MongoDB满足特定的应用程序需求,他们可能会面临满足组织中已建立的数据库也必须执行的安全性和合规性要求的需求。

MongoDB在其Wiki页面上概述了一套很好的安全性最佳实践。 (你可以找到链接相关信息 。)另外,为了解决一些基本的安全痛点的MongoDB在2.4版本中,提供以下安全增强功能:

  • 要求此方法能够集成到其标准安全系统中的企业的Kerberos身份验证(仅企业版)。
  • 基于角色的访问控制系统,可进行更精细的控制。
  • 客户端的增强SSL支持要求。 重要说明:要通过Guardium支持MongoDB SSL,必须配置Guardium应用程序级别监视(A-TAP)。 本文未对此进行介绍。 有关更多信息,请参见此技术说明。

现在来看一些有关网络配置,身份验证,角色使用和防止JavaScript注入攻击的最佳实践。

网络配置

为了降低MongoDB的安全风险,建议在可信任的环境中运行MongoDB及其所有组件,并使用适当的防火墙控件,MongoDB组件之间的紧密绑定以及特定的IP端口。 当您运行分片群集时,查询流量通常通过称为mongos的单独进程进行路由。

如图2所示,特权用户或其他用户有可能直接登录到分片中的mongod实例。 因此,我们的建议不仅是使用防火墙来尽可能多地锁定对分片的访问,而且还要对分片实施InfoSphere Guardium监视以捕获该活动。 正如您将在本系列文章的第2部分中了解到的那样,可以通过以下方式配置Guardium,以避免重复计算消息流量,同时仍然在分片和mongos服务器上捕获本地流量。

设置监视实际上有很多选项,但这是提高效率的合理选择,同时为管理员提供了必要的监视功能。

图2.一种推荐的配置
使用防火墙来防止客户端访问mongod分片,而是通过mongos进行路由。对于使用客户端或本地连接的特权用户,Guardium将监视该活动。

另外,使用非默认端口运行是一种安全性最佳实践。 为了便于理解,我们确实使用缺省端口配置(对于mongos为27017,对于分片服务器为27018),但是当使用非缺省端口时,InfoSphere Guardium可以正常工作。

认证方式

一个明显的建议是在启用身份验证的情况下运行MongoDB。 (缺省情况下,未启用身份验证。)从监视和审计的角度来看,身份验证也很关键,以使InfoSphere Guardium能够选择数据库用户名。 如果未启用身份验证,则将在报告的“数据库用户名”字段中看到字符串“ NO_AUTH”。 (在InfoSphere Guardium在会话中间开始监视并且不接听数据库用户的情况下,您也可能很少看到NO_AUTH。)

从MongoDB的角度来看,2.4之前的身份验证仅限于使用仅在Mongo中管理且未集成到企业用户管理系统中的用户名和密码进行的基本身份验证。 身份验证后,角色最少,只有只读或完全访问权限。 在2.4企业版中,添加了其他功能,包括对Kerberos的支持

角色和基于角色的访问

在2.4中,MongoDB支持许多新角色,其作用范围可以大致分为服务器级角色和数据库级角色。 在这两种情况下,都有一些角色专注于用户管理,集群管理和应用程序访问。

由于这些角色中的某些角色基本上等同于超级用户,因此确保仔细分配和监视这些角色非常重要。

请注意,使用InfoSphere Guardium,您可以监视和审计环境或任何逻辑数据库对system.users集合的更改,因此可以确保仅颁发适当的授权。 图3显示了一个示例报告,在该报告中,您可以看到数据库用户Indrani授予Kathy和Sundari读写角色,这转换为MongoDB中system.users集合上的插入。

图3.样本审计报告显示了被授予的角色(将文档插入到system.users中)
对象名称是sundari和system.users,动词是insert。

防止JavaScript注入攻击

由于MongoDB使用BSON(二进制JSON)而不是字符串,因此传统SQL注入类型攻击对MongoDB而言不是重要的问题。 但是,仍然需要注意一些情况,包括使用以下操作,这些操作使您可以在服务器上直接运行任意JavaScript表达式:

  • $ where
  • db.eval()
  • mapReduce

有多种方法可以降低风险(包括关闭所有服务器端脚本),但是首先您需要能够确定在何处使用这些操作。 使用InfoSphere Guardium,这些操作中JavaScript被记录并报告为对象。 这样做的意义在于,您可以将警报或策略违例设置为在访问警报或策略违例时发生。 这对于在测试环境中发现和识别这些风险用途以及在部署到生产环境之前进行必要的代码审查很有用。 图4中的示例报告(查看大图 )显示$eval被报告为JavaScript对象。 您还将看到完整的命令文本,因此可以在上下文中查看其用法。 如果您想随着时间的推移进行监视,则可以创建一个定期计划的报告,该报告将指示何时重新使用这些操作之一。

图4.某些操作(例如db.eval)JavaScript作为对象记录在InfoSphere Guardium中
显示了一个dbeval示例,该示例在报告中与JavaScript对象一起记录。

在MongoDB中使用InfoSphere Guardium的好处

对于任何对真正的数据库审计感兴趣的组织,以及可能对诸如支付卡行业(PCI)或Sarbanes-Oxley(SOX)要求之类的法规要求感兴趣的任何组织,InfoSphere Guardium都是对本机MongoDB功能的重要而有用的补充。 与其他数据库一样,MongoDB中的本机安全性和身份验证功能实际上不足以满足全球众多法规和合规性要求。 这些要求中的大多数都要求在日志记录和验证谁以及何时为数据库事务执行操作方面具有更强大的责任感。

InfoSphere Guardium已部署在世界各地的大型和小型组织中,以解决各种数据库的数据保护和合规性问题。 该解决方案是灵活,强大和有效的。 MongoDB用户可以期望看到的好处是:

  • 如您在图5所示的示例报告中所见(参见大图 ),InfoSphere Guardium记录了非常详细和细致的信息,其中包括客户机和服务器IP,源程序,数据库用户的详细信息(如果启用了授权) ,以及完整的命令消息(当消息流经电线时)。 在下面的示例中,Kerberos被用作身份验证机制。

    请注意,消息的一部分被解析并存储为动词(有时称为命令)和对象,这意味着这些实体是可用于指定策略规则的项目,如本系列的第2部分中将看到的。 例如,您可以指定在发出查找时触发的规则,或指定任何人触摸敏感数据对象组中的对象时触发的规则。

    图5.审计报告示例
    显示在mycollection上删除,查找和插入的示例报告。显示动词和宾语。
  • 您可以审核数据库异常情况,例如身份验证失败,这可以指示暴力攻击。 本系列的第2部分将展示如何配置它。
  • 您可以选择记录影响阅读活动的文档数量,可以用来警告异常高的下载量。 本系列的第2部分将显示一个示例。
  • 您可以阻止本地用户访问,以防止管理员读取敏感数据的内容。 在本系列的第3部分中,您将看到一个示例。
  • 可以为各种情况指定实时警报,您将在本系列的第2部分中学习如何配置警报。 组织有责任尽其所能避免尴尬或破坏数据泄露。 证明合规性可以助您一臂之力,但是当确实发生违规行为时,能够在几分钟或几小时内而不是几天或几周内Swift发现并做出React,可能意味着巨大的损失和轻微的不便。 实时警报和有关阈值违反的警报可帮助您在几秒钟或几分钟内,而不是几天,几周甚至更长的时间内检测到可疑行为。

    这些警报可以使用电子邮件发送,也可以通过SNMP发送到另一个监视系统。 与IBM QRadar和HP ArcSight消息类型的内置集成还可以用于将警报条件从syslog自动转发到那些系统。

  • 审核信息必须存储一段规定的时间,有时甚至是几年。 因此,InfoSphere Guardium在设计时考虑了这些需求,并提供了安全的归档功能。
  • 最后,证明合规性可能是耗时且繁重的,因为这些通常需要一定程度的定期检查和批准。 InfoSphere Guardium不仅使您可以创建满足审计要求所需的报告,而且还具有强大的工作流功能,该功能可以集成到您的业务流程中,并将所有签署和复审保存为审计跟踪的一部分。

解决方案的架构

通过其非侵入式架构(请参见图6),InfoSphere Guardium可以提供对数据活动的完全可见性,而无需在MongoDB集群上进行任何配置更改。

图6.高层架构
mongo客户端连接到mongos,mongos连接到分片。每个服务器(mongos和分片)上均已安装了stap。临时将流量转发给收集器。从收集器中,您可以生成实时警报或报告。

对于那些熟悉InfoSphere Guardium的人,您可以在MongoDB服务器上安装S-TAP(轻量级软件代理)。 S-TAP是位于操作系统中的轻量级代理。 当Mongo服务器收到来自客户端的数据请求时,S-TAP将复制网络数据包,并将其发送到经过加固的,防篡改的硬件或软件设备,该设备称为收集器,用于在InfoSphere Guardium存储库中进行解析,分析和登录。 。

InfoSphere Guardium系统的真正智能在于收集器。 在这里,消息被分解为各个组成部分,并登录到收集器上的内部存储库中,并采取任何必要的措施,例如生成实时警报,记录活动或阻止特定的本地用户。 通过将大部分活动(分析和日志记录)卸载到强化的收集器上,可以将对Mongo应用程序的性能影响降到最低(在许多情况下不超过2-4%),并且您可以有效地实行职责分离。

基于InfoSphere Guardium角色的Web控制台无需MongoDB管理员就可以对警报,报告定义,合规性工作流程和设置(例如归档计划)进行集中管理,从而实现了审计员所需职责的分离和简化合规性活动。

从客户端到Guardium收集器的消息流的高级示例

对于那些刚接触InfoSphere Guardium的人来说,对数据如何流经系统的基本了解可以帮助您有效地理解和使用系统的其他部分,例如策略配置,报告和警报。

图7. MongoDB命令如何流到InfoSphere Guardium收集器
请参见分步文字说明。示例命令是Joe发出的test.creditcard.insert语句。

在描述流程时请参考图7:

  1. (未在图中显示。)当用户或应用程序登录到MongoDB时,新的会话开始。 InfoSphere Guardium始终记录会话的开始和结束,如果策略要求,则记录该会话中发生的活动。 (在本系列的第2部分中,您将学习如何配置安全策略以忽略受信任连接的开始和结束之间的所有操作。)
  2. 用户或应用程序输入MongoDB命令。

    注意: MongoDB客户端可能会对实际输入的内容(语法糖等)进行一些转换。 InfoSphere Guardium仅收集实际在网络上流动的内容。 在此示例中,用户Joe输入以下命令:

    清单2.本示例中显示的MongoDB命令
    test.CreditCard.insert({
        "Name" : "Sundari",
         "profile" : [
            {"CCN" : "11999002"},
            {"log" : ["new", "customer"]}
        ],
        });
  3. BSON消息流到Mongo服务器(如果是本地,则为分片或mongod的mongos),并在网络数据包中包含其他信息,例如数据库用户的名称,客户端IP,服务器IP和时间戳。
  4. 位于mongo服务器上的S-TAP拦截并复制消息。 消息通过TCP / IP流到收集器,该收集器正在端口16016上侦听。
  5. 在收集器中,分析引擎(有时称为“嗅探器”)识别出这是MongoDB消息,并相应地对其进行了解析。 在我们的示例语句中,信息被记录到以下实体中。
    • 客户/服务器实体 :Joe被记录为数据库用户
    • 命令实体 :INSERT
    • 对象实体 :信用卡
    • 字段实体 :名称
    • 字段实体 :profile.CCN
    • 字段实体 :profile.log
    这是对收集器上实际发生的事情的极大简化,但是它提供了基本的了解。

摘要和下一步

在我们的三部分文章系列的第一部分中,我们介绍了联合解决方案的基本基础,包括概述MongoDB和InfoSphere Guardium,以及InfoSphere Guardium如何与MongoDB一起工作以在数据保护和保护方面提供重要价值。合规性。 此外,InfoSphere Guardium提供了强大而灵活的基础架构,用于自动化审核和合规性任务,从而尽可能减轻了IT人员的负担。

在第2部分中,我们将解决为MongoDB配置S-TAP的细节,并逐步讲解如何使用安全策略来完成一些常见用例,包括监视管理员访问,警报和反复失败的登录。


翻译自: https://www.ibm.com/developerworks/data/library/techarticle/dm-1306mongodb/index.html

华为桌面云解决方案概述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值