IBM InfoSphere Guardium的大数据安全性和审计

总览

大数据嗡嗡声一直集中在支持极端容量,速度和多样性的基础架构上,以及该基础架构支持的实时分析功能。 即使像Hadoop这样的大数据环境相对较新,事实也是如此,大数据环境中的数据安全问题对于预先解决至关重要。 在有数据的地方,有可能发生隐私泄露,未经授权的访问或特权用户的不当访问。

应在大数据环境和更传统的数据管理体系结构中强制执行合规性要求,并且没有借口削弱技术的安全性只是因为该技术是日新月异且在不断发展。 实际上,随着大数据环境吸收更多数据,组织将面临保存数据的存储库的重大风险和威胁。

如果您负责组织的数据安全,则可能需要回答以下问题:

  • 谁在运行特定的大数据请求? 他们正在运行哪些map-reduce作业? 他们是要下载所有敏感数据,还是为了了解您的客户而进行的常规营销查询?
  • 是否存在异常数量的文件权限异常,可能是由黑客通过算法尝试获取敏感数据而引起的?
  • 这些作业是否是访问数据的授权程序列表的一部分? 还是开发了一些您以前不知道的新应用程序?

您需要的是能够将大数据应用程序和分析集成到现有的数据安全基础结构中,而不是依赖于本地编写的脚本和监视器,因为这些脚本和监视器可能会很费力,容易出错并且容易被滥用。

本文探讨了如何扩展IBM InfoSphere Guardium V9(一种全面的数据活动监视和遵从性解决方案),以包括针对Hadoop生态系统的访问监视和报告。

尽管本文概述了InfoSphere Guardium,但并未介绍如何安装和配置InfoSphere Guardium Collector。 它将描述如何配置InfoSphere Guardium来监视受支持的Hadoop活动,并将其发送到InfoSphere Guardium Collector,以供安全分析师进行报告。 您将看到包含开箱即用报告的示例,以帮助您快速入门。

简而言之,InfoSphere Guardium

IBM InfoSphere Guardium解决方案通过轻量级软件探针连续监视数据库事务,如图1所示。

图1. InfoSphere Guardium数据活动监视

这些探针(在软件窃听中称为S-TAP)在操作系统内核级别监视所有数据库事务,包括特权用户的事务,而无需依赖数据库审核日志,从而确保职责分离。 S-TAP也不需要对数据库或其应用程序进行任何更改。

探针将事务转发到网络上的强化收集器 (设备),在此将它们与先前定义的策略进行比较以检测违规情况。 系统可以响应各种基于策略的操作,包括生成警报。

InfoSphere Guardium支持各种各样的部署,以支持非常大的且地理分布的基础架构。 由于本文勉强介绍了InfoSphere Guardium的功能,因此您可以查看“ 相关主题”部分,以获取有关InfoSphere Guardium功能的更多信息的链接。 请注意,并非所有功能都可用于所有数据源。

使用InfoSphere Guardium进行Hadoop监视的好处

通过提供有针对性的,可操作的信息,使用InfoSphere Guardium可以大大简化您的审计准备路径。 您可以想象,如果您当前的Hadoop审计准备计划是基于压缩日志数据并希望您不再需要它,那么仅从及时性的角度来看,您可能将无法满足许多审计要求。 取证分析无疑会很耗时,并且需要使用自产脚本,这些脚本会占用资源,而您宁愿花钱在Hadoop上创造业务优势。

借助InfoSphere Guardium,许多繁重的工作都将由您完成。 您定义安全策略,这些安全策略指定需要保留哪些数据以及如何对违反策略的行为做出React。 数据事件直接写入InfoSphere Guardium收集器,即使是特权用户也没有机会访问该数据并隐藏其轨迹。 开箱即用的报告可帮助您快速启动并运行Hadoop监视,并且可以轻松自定义这些报告以符合您的审核要求。

InfoSphere Guardium S-TAP最初旨在实现低开销的性能。 毕竟,S-TAP还用于监视产品数据库环境。 使用Hadoop,您将不太可能看到3%以上的开销,这对于大多数Hadoop工作负载而言将是不明显的。

最后,InfoSphere Guardium提供了从用户界面到存储的整个Hadoop堆栈的监视功能,如图2所示。

图2.整个Hadoop堆栈中数据活动监视的重要性

为什么这很重要? 即使Hadoop中的许多活动分解为MapReduce和HDFS,在该级别上,您也可能无法分辨出堆栈中较高级别的用户实际上是在试图做什么,或者甚至是该用户是谁。 它类似于显示一堆磁盘段I / O操作,而不是显示数据库的审计跟踪。 因此,通过提供不同级别的监视,您更有可能了解活动,并且能够审核直接通过堆栈较低点进入的活动。

Hadoop活动监控

可以监视的事件包括:

  • 会话和用户信息。
  • HDFS操作–命令(cat,tail,chmod,chown,expunge等)。
  • MapReduce作业-作业,操作,权限。
  • 诸如授权失败之类的异常。
  • Hive / HBase查询-更改,计数,创建,删除,获取,放置,列出等。

以下示例描述了如何在InfoSphere Guardium报告中显示一些简单的Hadoop命令。

HBase:以下是在HBase中创建的:

create 'test_hbase', 'test_col'

InfoSphere Guardium将显示流到HBase的实际命令,如图3所示。

图3. HBase报告

HDFS:以下是Hadoop中的简单-ls命令:

hadoop fs –ls

图4是InfoSphere Guardium报告中的输出。

图4. HDFS ls命令

您可以看到它被隐藏为两个不同的命令,以获取列表和关联的文件信息。

这种看似简单的活动监视的背后是强大而灵活的基础结构,用于策略配置和报告。 例如,在本文后面,您将学习如何创建一个策略,该策略将记录一个事件,以在未知用户访问敏感数据时向您发出警报。 您还可以创建审核报告,以帮助您检测何时新的或未知的应用程序正在访问Hadoop数据。

IBM InfoSphere BigInsights的快速入门活动监视

IBM InfoSphere BigInsights包含一项称为Guardium Proxy的集成功能,用于读取日志消息并将其发送到InfoSphere Guardium进行分析和报告。 使用代理,BigInsights将消息从Hadoop日志发送到InfoSphere Guardium收集器。

代理的优点包括:

  • 易于安装和运行。 无需安装S-TAP或配置端口。 您只需在NameNode上启用代理,即可开始使用。
  • 因为代理使用Apache日志数据作为消息发送到InfoSphere Guardium,所以从这些消息中过滤掉的噪音更少,例如状态和心跳信息。
  • Guardium对BigInsights的新版本的支持不存在延迟,以利用消息协议更改的优势。

限制:由于Hadoop并未将异常记录到其日志中,因此无法将异常发送到InfoSphere Guardium。 如果需要异常报告,则需要实施S-TAP。 此外,尽管您会看到来自Hive的基础MapReduce或HDFS消息,但不支持监视Hive查询。

如果您有兴趣开始使用InfoSphere BigInsights中的Guardium代理,请参阅附录A ,其中包含用于为Hadoop服务启用代理的配置说明。

先决条件

以下部分描述了InfoSphere Guardium和基于Hadoop的系统的需求。

InfoSphere Guardium安全性和合规性解决方案

IBM InfoSphere Guardium解决方案如下:

  • 硬件产品–在IBM提供的物理设备上交付的完全配置的软件解决方案。
  • 软件产品–作为软件映像提供的解决方案,您可以直接或作为虚拟设备部署在自己的硬件上。

要监视Hadoop环境,您必须具有至少具有补丁2且最好具有GPU补丁50的InfoSphere Guardium Appliance V9.0(硬件或软件)。该设备应配置为收集器。 您还将需要InfoSphere Guardium Standard Activity Monitor for Hadoop软件权利。 在尝试监视Hadoop之前,请确保您检查IBM支持站点以获取可能需要的其他补丁程序。

随着系统的发展,您还可以获得配置为Central Manager和Aggregator的设备,这些设备可通过一个基于Web的控制台对多个收集器进行集中管理,从而有效地从多个收集器创建联合系统。 您可以使用它来集中管理安全策略和设备设置,例如归档计划,补丁程序安装,用户管理等。 它还汇总来自多个收集器的原始数据和报告,以生成整体的企业级审核报告。

本文不介绍IBM InfoSphere Guardium设备的安装和配置,而是假定您至少有一个设备连接到网络上的Hadoop集群。

受支持的基于Hadoop的系统

请参阅IBM支持站点上的InfoSphere Guardium系统需求信息 ,以获取InfoSphere BigInsights,Cloudera,Greenplum HD和Hortonworks的受支持的Hadoop发行版的受支持发行版本的更新。

注意:对于IBM InfoSphere Big Insights,IBM InfoSphere Guardium也支持Cloudera上的覆盖安装。

配置数据活动监视

安装和配置所需的步骤如下:

  1. 规划 –确保您对Hadoop群集的网络体系结构有充分的了解,包括IP地址和相关的端口号。
  2. 在适当的Hadoop节点上安装S-TAP并配置检查引擎。
  3. 通过创建和查看活动报告来验证正在监视活动。
  4. 安装安全策略 。

计划

规划步骤对于成功将InfoSphere Guardium与Hadoop集成至关重要。 以下部分提供了该体系结构的高级概述,以使您了解所需的知识。

建议:对于初始部署,请考虑仅从支持特定业务需求的最简单配置开始,然后从那里进行扩展。 例如,仅从监视HDFS和MapReduce的要求开始,验证配置,然后根据需要扩展为包括Hive和HBase。

图5显示了InfoSphere Guardium提供的在集群中特别需要安装OS特定的S-TAP的位置,以实现完整的监视范围。

图5.监视Hadoop堆栈所需的STAP

IBM InfoSphere Guardium提供了一个集中式解决方案,可使用Guardium Installation Manager安装和更新多个S-TAP,从而使S-TAP管理更简单,更自动化。

注意:对于从节点,仅HBase Region Server才需要S-TAP来监视插入(HBase放置)。

在相关节点上安装特定于操作系统的S-TAP之后,可以通过定义所谓的S-TAP检查引擎来配置S-TAP监视的端口。 这些检查引擎还具有与之关联的特定监视协议。 S-TAP截取网络数据包,进行复制,并进行一些分析和分析,然后将信息发送到InfoSphere Guardium Collector,在此处对其进行进一步的分析,分析并将其存储在InfoSphere Guardium Collector本地数据库中。

在进行下一步之前,请查看以下内容:

  • 确保您正在运行受支持的基于Hadoop的系统。
  • 确保您知道将要从Hadoop集群接收收集的流量的InfoSphere Guardium Collector的IP地址。
  • 确保您知道需要S-TAP的服务器的IP地址。
  • 根据表1和表2中所示的信息,写下要监视的端口以及它们适用于哪些主机。 本文的端口设置基于Hadoop默认端口,这些端口通常在发行版中相同。 您的配置可能有所不同。
表1.要监视的Hadoop服务端口
服务 港口
HDFS名称节点 8020、50470
适用于Cloudera Hue(NameNode)的HDFS Thrift插件 10090
MapReduce作业跟踪器 8021、9290和50030
HBase主站 60000和60010
HBase地区 60020
HTTP端口(用于WebHDFS) 50070
HBase Thrift插件 9090
蜂巢服务器 10000
蜂蜡服务器 8002
Cloudera Manager代理 9001

安装S-TAP并配置检查引擎

S-TAP是特定于操作系统的,因此您需要为每个适当的节点安装Red Hat或SUSE Linux S-TAP。 该过程在InfoSphere Guardium S-TAP帮助书中有很好的记录,也可以使用InfoSphere Guardium Installation Manager或通过非交互式安装过程来完成,该过程使您可以使用同一命令在许多节点上进行安装。

接下来,您需要配置适用于受监视节点和服务的检查引擎。 检查引擎是您在其中指定用于监视的协议(Hadoop)以及定义要监视的端口的位置。 表1显示了默认使用的端口的摘录,InfoSphere Guardium可以监视这些端口。 您的端口可能不同。

表2显示了用于配置本文的Hadoop群集的信息,该信息基于默认的Hadoop端口。

表2.监视以配置Hadoop集群的Hadoop服务端口
检查引擎。 协议 端口范围。 KTAP DB Real端口
HDFS,作业跟踪器,蜂蜡服务器 哈多普 8000-8021 8021
MapReduce Master和Thrift插件 哈多普 9000-9291 929升
Hive的Hive服务器和HDFS Thrift插件 哈多普 10000-10090 10090
HDFS名称节点 哈多普 50010-50069 50069
HDFS名称节点 哈多普 50071-50470 50470
HBase主站 哈多普 60000-60010 60010
HBase地区 哈多普 60020-60020 60020升
WebHDFS HTTP 50070 50070

建议:您可以为每个服务器指定多个检查引擎。 您应该在协议相同的情况下执行此操作,并且要避免为每个检查引擎配置太大的端口范围。 最佳做法是不配置不需要的许多端口,因为这会给InfoSphere Guardium收集器组件带来额外的开销,这将需要分析不相关的流量。 但是,为简单起见,您可能需要在某些检查引擎上包括有意义的端口范围。

您可以从用户界面添加检查引擎: 管理控制台 > 本地分接头 > S-TAP控制 > 添加检查引擎

或者,您可以使用API​​ create_stap_inspection_engine。 有关可用于使用默认端口创建检查引擎的API命令示例,请参阅附录B。

图6显示了一些检查引擎定义后的一些示例。

图6. Hadoop某些检查引擎的样本

您可以在S-TAP帮助手册中阅读有关检查引擎配置字段的更多信息,该手册可以在线找到。 但是,以下是一些关键字段的摘要。

  • 协议 :被监视的数据源的类型(Hadoop)。 这些选项可作为下拉菜单使用。
  • 端口范围 :为此检查引擎监视的端口范围 。 如前所述,请尽可能限制此范围。 对于本文,适用的端口分为紧密对应的组,例如9000范围或50000范围。
  • K-TAP实际端口 :仅应将此参数设置为该检查引擎范围内的最后一个端口。 如果仅定义了一个端口,则将K-TAP实际端口设置为相同。
  • 客户端IP地址/掩码 :每个检查引擎监视一个或多个客户端和服务器IP地址之间的流量。 该字段用作定义和限制要监视的客户端的筛选器。 例如,您可能有一些不需要审核的受信任客户端,并且可以提前过滤掉这些客户端,这可以减少收集器上的总体负载。 IP地址是一个位置,掩码用作通配符,可让您定义IP地址范围。 掩码255.255.255.255(无零位)仅标识IP地址指定的单个地址。 在本文的情况下,客户端和掩码都使用0.0.0.0,因此将监视所有客户端。
  • 连接到IP :S-TAP用于连接到受监视数据源的IP地址。 对于Hadoop,您可以使用默认值127.0.0.1。
  • 进程名称 :对于Hadoop配置,不需要此名称。

验证活动是否受到监视

以管理员身份,导航到InfoSphere Guardium Web控制台的“ 系统视图”选项卡,并确保Hadoop集群的S-TAP处于活动状态并显示绿色,这表示S-TAP已连接到InfoSphere Guardium收集器。 图7显示了一台主机的外观。

图7. S-TAP状态监视器

在确认在所有适用的节点上正确配置了S-TAP之后,您应该已经捕获了系统上正在运行的所有工作。 您可以运行shell命令或示例wordcount作业来验证您是否正在查看数据。 在这两种情况下,您都将需要使用InfoSphere Guardium细化报告(可从用户的“ 查看”选项卡获得),或者创建自己的报告来查看活动。

InfoSphere Guardium随附的Hadoop报告中介绍了有关Hadoop报告的更多详细信息。 为了进行验证,本文将介绍如何使用在系统中分配了用户角色的安全管理员可以使用的向下钻取报告。

当您以用户身份登录并单击View选项卡时,您将看到一个与图8所示非常相似的图形。双击该图形可深入查看详细信息。

图8.深入细节

数据有很多路径。 图9显示了一个向下钻取的示例。

图9.细化样本

每当您单击报告中的一行时,都会有一个菜单选项供您选择要查看的下一个报告级别。

InfoSphere Guardium随附的Hadoop报告

InfoSphere Guardium包含几个针对Hadoop的现成报告,包括以下内容:

  • MapReduce活动。
  • 未经授权的MapReduce作业。
  • 色相/蜂蜡活动。
  • HDFS,HBase和Hive活动。
  • 异常报告。

如果您以用户身份登录,则可以通过单击“ 视图”选项卡找到预定义的报告。 在左侧导航窗格中,单击Hadoop ,然后在此处列出报告。

如果您以管理员身份登录,则需要将报告添加到控制台。 以下步骤假定您已在控制台上定义了“ 我的新报告”选项卡,并且已以管理员身份登录。

  1. 导航到“ 工具” > “报表构建” > “报表生成器”
  2. 在报告标题部分,使用下拉菜单找到其中一个报告,例如Hadoop-Hue / Beeswax报告,然后单击搜索
  3. 在报告搜索结果窗口中,单击Add to My New Reports按钮,如图10所示。
    图10.将报告添加到名为“我的新报告”的窗格中
  4. 现在,您可以使用Hue在Beeswax中运行命令并查看报告。 例如,在本文中,输入了以下Hive命令,如图11所示。
    图11.在Beeswax中提交查询
  5. 转到“ 色相/蜂蜡”报告,您可能会看到“未找到数据” 。 这是因为您需要指定一些运行时参数来告诉系统要显示的内容。 为此,单击铅笔图标以自定义报告查询,如图12所示。
    图12.在Beeswax中提交查询
  6. 为查询和日期添加一个时间段(取决于您的工作量,可能要选择一个较小的值,可能是几小时或一天),并为SQL和Table_Name字段的LIKE字段添加百分号或其他搜索参数,如图13所示。
    图13.为Hue / Beeswax报告指定运行时参数
  7. 现在,您应该看到报告中出现了一些数据,如图14所示。
    图14.色相/蜂蜡报告
  8. 现在对MapReduce报告执行相同的步骤(如果您是管理员):
    1. 导航到“ 工具” > “报表构建” > “报表生成器”
    2. 搜索MapReduce报告。
    3. 添加到报告窗格。
    4. 编辑报告以添加运行时参数。
  9. 运行MapReduce作业。 本文使用了Cloudera中的示例单词计数程序。 运行wordcount的语法是: bin/hadoop jar hadoop-*-examples.jar wordcount in-dir out-dir
  10. 对于本文,运行了以下命令: hadoop jar hadoop-0.20.2-cdh3u4-examples.jar wordcount /user/svoruga /user/svoruga/wc100 。 您可以看到一个类似于图15所示的报告。
    图15. MapReduce报告

    (查看图15的大图。)

    如您所见,对于本文来说,查询参数是经过自定义的,以指定仅在报告中返回在消息( Full SQL )中出现svoruga和word%count的活动。

故障排除

InfoSphere Guardium Hue / Beeswax报告假定使用Thrift消息格式和MySQL数据库。 如果使用MySQL,但Hue / Beeswax报告仍不显示数据,则可能需要配置Beeswax以使用端口8002,如下所示,该端口是Thrift用于本文系统示例的端口。

  1. 导航到Hue .ini文件:
    • 对于CDH3: /etc/hue/hue-beeswax.ini
    • 对于CDH4 /etc/hue/hue/ini ,其中-hadoop hadoop *examples.jar “ *位于/user/lib/hadoop目录中。替换为正确的jar文件。
      in-dir是输入文件所在的HDFS目录。
      out-dir是将放置输出文件的HDFS目录。
  2. 取消注释以下行:
    beeswax_server_port=8002
  3. 使用以下命令停止并重新启动色相:
    • /etc/init.d/hue stop
    • /etc/init.d/hue start

安装安全策略

在InfoSphere Guardium中,安全策略包含一组有序的规则,这些规则集将应用于观察到的客户端和服务器之间的流量。 组合一个或多个规则以创建策略。 对于本文中的Hadoop安全策略,定义了访问规则 ,这些规则是有助于减少要记录到InfoSphere Guardium收集器的流量的规则。

建议:不要修改样本策略。 而是,创建一个克隆并将其用作修改的基础。

要访问Hadoop策略并创建克隆,请执行以下操作。

  1. 以管理员身份登录,然后导航到“ 工具” >“ 配置和控制” >“ 策略构建器”
  2. 在“ 策略查找器”中 ,选择“ Hadoop策略” ,然后单击“ 克隆”按钮。
  3. 输入策略的新名称,然后单击“ 保存”

要安装策略,请执行以下操作。

  1. 以管理员身份登录,然后转到管理控制台 > 配置 > 策略安装。
  2. 选择您创建的Hadoop策略克隆,然后选择适当的安装操作。 有关策略安装以及拥有多个策略的含义的更多信息,请参见联机帮助。

Hadoop策略的规则如图16所示。单击加号以查看更多详细信息。 您可以通过单击铅笔图标来编辑规则。

图16.样本Hadoop策略中的规则

以下是策略中每个规则的摘要。

  • 访问规则:低关注度对象:允许

    图17显示了规则定义。

    图17. Hadoop的低兴趣对象规则

    以下是此政策中涉及的两个主要项目。

    • 对一组对象(例如用户首选项)的定义不太可能引起关注。 如果单击组构建器图标,则可以看到属于HadoopSkipObjects组的对象,如图18所示。
      图18. Hadoop的低兴趣对象规则

      您可以根据需要修改该组。
    • 允许操作意味着将不会为这些对象记录违反策略的情况,也不会考虑对它们进行进一步分析。
  • 访问规则:低利率命令:允许

    与上面的规则类似,但专门用于命令。

  • 访问规则:基于服务器IP的过滤器:日志完整详细信息

    使用此规则,您可以从使用同一Guardium Collector的所有非Hadoop服务器中过滤活动。

重要提示:您必须修改Not Hadoop Servers组,以包括要过滤掉的任何服务器的所有IP。 如果没有这样的服务器,则输入一个虚拟IP,但不要输入0.0.0.0。 如果该组中没有任何内容,则您的报告将不起作用。

你可以做的很酷的事情

以下是您可以使用InfoSphere Guardium进行的一些关键操作,以帮助您满足Hadoop的审核和合规性要求。 本节介绍了回答本文开头提出的问题的方法。

  • 以前没有获得访问敏感数据权限的授权吗?
  • 是否有新的应用程序/作业正在访问系统?
  • 是否存在异常数量的文件权限错误?

告诉我未经授权的用户何时访问敏感数据

您可以使用许多不同的规则来创建策略,以帮助您强制执行审核要求。

提示:如果将任何规则添加到Hadoop策略克隆中,请确保上一条规则已选择“ 继续到下一条规则” 。 否则,您的新规则可能永远不会得到评估。

图19显示了一个规则,其中两个组的定义如下。

  • 已知的Hadoop用户
  • 已知的敏感数据对象/文件
图19.用于访问敏感文件的示例策略规则

该规则对已知用户具有否定性,这意味着,如果不属于该已知组的用户访问那些敏感文件,则将记录该信息,并且您可以在事件报告中看到这些事件,以进行进一步调查。 如果事实证明该访问是合法的,则可以将该用户添加到已知组中。

告诉我新的MapReduce作业何时使用系统

许多企业担心跟踪访问其数据的新应用程序,自动报告可以帮助您做到这一点。 InfoSphere Guardium提供了未经授权的MapReduce作业报告,您可以对其进行自定义,以帮助您确定何时有新的MapReduce作业进入系统。

您可以安排此报告定期运行,作为在后台运行的审核过程的一部分。 这使您可以在新作业进入系统时得到通知,以便可以对其进行适当的检查并适当地添加到授权的作业列表中。

设置此报告需要一些配置。 您需要创建和自定义一个名为Hadoop授权作业列表的组。 您将需要:

  1. 用系统中已知和已批准作业的列表创建并填充该组。 ( 注意:对于9.0 GPU 50,系统随附了Hadoop授权作业列表。您只需填充它即可。)
  2. 将角色分配给该组,以便组织中的适当人员可以在构建报告中查看和使用该组。
  3. 自定义Hadoop未经授权的MapReduce作业报告,以将该组作为运行时参数包括在内。

以下是有关如何配置组的详细步骤:

  1. 在管理控制台中,转到“ 工具” >“ 配置和控制” >“ 组构建器” 。 或者,如果您以用户身份登录,请转至“ 监视/审计” >“ 构建报告” >“ 组构建器” ,然后单击“ 下一步”
  2. Create New Group字段中,将Public指定为Application Type,为其指定所需的名称(例如Hadoop Authorized Job List ),然后从Group Type Description的下拉列表中选择OBJECTS ,如图20所示。 添加按钮。
    图20.命名新组
  3. 在“管理成员”窗格中,在“ 创建和添加新成员”字段中输入MapReduce作业名称,然后单击“ 添加”将该成员添加到组中。 继续添加名称,如图21所示。添加MapReduce作业名称后,单击“上一步”按钮。
    图21.用授权作业填充组
  4. In the Group Builder, find your group in the Modify Existing Group list and then click the Roles button as shown in Figure 22.
    Figure 22. Associate roles with the group
  5. Select the roles you want to be able to use this group. We have simply selected All Roles , as shown in Figure 23. Click the Apply button.
    Figure 23. Indicate which roles can use this group

Now you have finished with the task of creating the Hadoop Authorized Job List group, and you are ready to move to the next task, which is to associate it with the report.

  1. As described in the Hadoop reports included with InfoSphere Guardium section, if you are logged in as a user, you can find the predefined reports by clicking the View tab. From the left navigation pane, click Hadoop, and the reports are listed there.
  2. Click on Hadoop – Unauthorized MapReduce Jobs . It will likely show No data found. Click on the pencil icon to customize this report, as shown in Figure 24.
    Figure 24. Customize the report
  3. Select the group name from the list, as shown in Figure 25. Make sure the date parameters cover a time period when you know you will see at least a small set of results to validate that the report is working. Then click the Update button.
    Figure 25. Add the group to the report runtime parameters
  4. From the left navigation, click on the Hadoop – Unauthorized MapReduce Jobs report again. It should be populated with data from any reports that are not in your authorized job group. An extract of the report is shown in Figure 26, where you can see that a job named PiEstimator is shown because it was not on the authorized list of jobs.
    Figure 26. Report includes activity from jobs not in the authorized group

Tell me if there is an exceptional number of file permission errors

InfoSphere Guardium includes out-of-the-box exception reporting for Hadoop. For example, if you are logged in as a user, you can go to View > Hadoop > Hadoop - Exception Report to see the out-of-the-box report, similar to what is shown in Figure 27.

Figure 27. Sample Hadoop exception report

You can also create an alert based on the same query that is used for the report. With an alert, you can have an email sent whenever a threshold for a specific condition, such as file permission exceptions, goes above a certain limit.

You can also choose to log the alert as a policy violation, which will put this alert on the Incident Management tab of the InfoSphere Guardium web console.

Here are the high-level steps to create the exceptions query and to enable it in an alert.

  1. Navigate to the Alert Builder:
    • For an administrator, go to Tools > Config and Control > Alert Builder .
    • For a user, go to Protect > Correlation Alert > Alert Builder .
  2. From the Alert Finder, click New .
  3. In the Query Definition section of the Add Alert screen, select Hadoop – Exception Report from the pull-down menu, as shown in Figure 28, and fill out the rest of the alert requirements.
    Figure 28. Use exception report query to build your alert

Figure 29 is an example of an alert that was created for this article that specifies an exception of 101 for file permission exceptions.

Figure 29. Alert builder

Notice that the alerts are logged as a policy violation so that any alerts that are triggered also appear from the Incident Management tab. Also, notice at the bottom of the example, the administrator named David Roz will get at least one email when the alert is triggered.

结论

We hope you've enjoyed this tour through InfoSphere Guardium for securing Hadoop environments. If you are using or evaluating Hadoop and are considering a security strategy around its deployment, we think the information provided in this article can help you think about what you need and how InfoSphere Guardium can help. Existing Guardium users can easily extend their current data security and audit processes to include Hadoop.

致谢

The authors would like to extend their gratitude to the following people without whom this article would never have seen the light of day:

  • David Rozenblat, for many hours helping us build reports and policies, and for his management support.
  • Joe DiPietro, for giving us the example business problems to solve.
  • Ury Segal, for technical direction.

Appendix A: Configuring the Guardium proxy in IBM InfoSphere BigInsights

This appendix describes the steps to enable the Guardium Proxy in IBM InfoSphere BigInsights to send copies of relevant log messages to InfoSphere Guardium.

Figure 30 shows you the architecture of the solution.

Figure 30. Log messages are sent to the Guardium Proxy and then forwarded to the Guardium Collector

Enabling the integration between InfoSphere BigInsights and InfoSphere Guardium is much simpler as of BigInsights 2.0. You enable the Guardium Proxy at BigInsights installation time (BigInsights 2.0 and later). Logging events are sent over a socket connection. Port 16015 is used for this socket connection. The proxy then forwards those messages to the InfoSphere Guardium collector (default port 16016) which parses and stores those messages in the Guardium internal tables for reporting, alerting, and so on.

The screenshot below is an excerpt from the InfoSphere BigInsights 2.1 installation panel in which you specify the port addresses of the proxy, the Guardium collector, and the host names for the collector and the node on which you run the proxy (usually the name node).

Figure 31. Excerpt from BigInsights installation panel

You can find details of the integration in the IBM InfoSphere BigInsights Information Center (see Related topics ).

Validate the configuration

You can test the configuration by submitting a job, including a sample wordcount job, and seeing the results in the InfoSphere Guardium reports.

Through your BigInsights web console, submit a wordcount job. See the BigInsights information center in the Related topics section for more information about how to do this.

Log in to the InfoSphere Guardium web console as a user and select one of the Hadoop reports, such as BigInsights - MapReduce. Figure 26 shows you an excerpt from a MapReduce report for BigInsights when the proxy is used.

Figure 32. Partial MapReduce report for BigInsights

(View a larger version of Figure 26.)

You can see information about permissions in the Full SQL section of the report. You can also see that the report includes information about the name of the job, the user name who submitted the job, and even the jar file name of the job. This information is parsed out for you from the full message, and because it appears as a field in the report, you can do things such as create alerts on those fields. See this section of the article for more details on customizing reports.

Appendix B: Sample GuardAPI command to configure inspection engines

The GuardAPI provides access to InfoSphere Guardium functionality from the command line to enable you to automate repetitive tasks. To run these commands you must log in with one of the CLI (command line interface) accounts and have been granted the role of admin or CLI. For more information about the API, see the InfoSphere Guardium Appendices online help book.

Listing 1 shows the commands that were used to create the inspection engines via the API in this article.

Listing 1. Sample grdapi commands to configure inspection engines in our sample environment
#hdfs job tracker, hdfs name node beeswax server 
grdapi create_stap_inspection_engine client=0.0.0.0/0.0.0.0 protocol=HADOOP 
ktapDbPort=8021 portMax=8021 portMin=8000 stapHost=
                
#Mapreduce job tracker, cloudera agent and thrift plugin
grdapi create_stap_inspection_engine client=0.0.0.0/0.0.0.0 protocol=HADOOP 
ktapDbPort=9291 portMax=9291 portMin=9000 stapHost= 
                
#hive server, thrift plugin
grdapi create_stap_inspection_engine client=0.0.0.0/0.0.0.0 protocol=HADOOP 
ktapDbPort=10090 portMax=10090 portMin=10000 stapHost= 
                
#HDFS name node ports
grdapi create_stap_inspection_engine client=0.0.0.0/0.0.0.0 protocol=HADOOP 
ktapDbPort=50069 portMax=50069 portMin=50010 stapHost= 

#HDFS name node ports
grdapi create_stap_inspection_engine client=0.0.0.0/0.0.0.0 protocol=HADOOP 
ktapDbPort=50470 portMax=50470 portMin=50071 stapHost= 

#WebHDFS
grdapi create_stap_inspection_engine client=0.0.0.0/0.0.0.0 protocol=HTTP 
KtapDbPort=50070 portMax=50070 portMin=50070 stapHost=
                
#HBase region servers
grdapi create_stap_inspection_engine client=0.0.0.0/0.0.0.0 protocol=HADOOP 
KtapDbPort=60010 portMax=60010 portMin=60000 stapHost= 

You will need to ensure that your inspection engine maps appropriately to the Hadoop node that has the corresponding services installed on that node. In this case, it was a simple one-node configuration, so the inspection engines were grouped by like port number. Your configuration will likely be more complex than this.

Appendix C. Using Guardium command line interface (CLI) to filter Hadoop noise

InfoSphere Guardium has a rich command line interface. You can use the CLI to directly configure the Collector's analyzer component to filter out Hadoop noise rather than using the security policy by using the store gdm_analyzer_rule new command to specify a specific Hadoop application and pattern to exclude. The example in Listing 2 shows use of the command to filter out HBase getServerRegion messages.

Listing 2. CLI command to modify the collector's filtering
store gdm_analyzer_rule new
Please enter rule description (optional): HDP
Please enter rule type (required): 5
Please enter rule acdtion (optional. Default to 0):
Please enter active flag (optional. Default to 1):
Please enter DB protocol (required): 25
Please enter server IP (optional):
Please enter server IP mask (optional. Default to 255.255.255.255):
Please enter service name (optional):
Please enter pattern (optional): getServerRegion
Please enter format (optional): 1

The options of interest include the following.

  • Rule type: Specify 5 for Hadoop exclusion rule.
  • Rule action: Keep the defaults.
  • DB Protocol: Specify '25 for Hadoop.
  • Pattern: Enter the exact name and case of the message pattern you would like to exclude.
  • Format: Enter the code for the Hadoop service to exclude. Values are:
    0 - HDFS
    1 - HBase
    2 - Hadoop IPC
    3 - Job Tracker

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

你可能感兴趣的:(大数据,hadoop,数据库,java,分布式)