大数据嗡嗡声一直集中在支持极端容量,速度和多样性的基础架构上,以及该基础架构支持的实时分析功能。 即使像Hadoop这样的大数据环境相对较新,事实也是如此,大数据环境中的数据安全问题对于预先解决至关重要。 在有数据的地方,有可能发生隐私泄露,未经授权的访问或特权用户的不当访问。
应在大数据环境和更传统的数据管理体系结构中强制执行合规性要求,并且没有借口削弱技术的安全性只是因为该技术是日新月异且在不断发展。 实际上,随着大数据环境吸收更多数据,组织将面临保存数据的存储库的重大风险和威胁。
如果您负责组织的数据安全,则可能需要回答以下问题:
您需要的是能够将大数据应用程序和分析集成到现有的数据安全基础结构中,而不是依赖于本地编写的脚本和监视器,因为这些脚本和监视器可能会很费力,容易出错并且容易被滥用。
本文探讨了如何扩展IBM InfoSphere Guardium V9(一种全面的数据活动监视和遵从性解决方案),以包括针对Hadoop生态系统的访问监视和报告。
尽管本文概述了InfoSphere Guardium,但并未介绍如何安装和配置InfoSphere Guardium Collector。 它将描述如何配置InfoSphere Guardium来监视受支持的Hadoop活动,并将其发送到InfoSphere Guardium Collector,以供安全分析师进行报告。 您将看到包含开箱即用报告的示例,以帮助您快速入门。
IBM InfoSphere Guardium解决方案通过轻量级软件探针连续监视数据库事务,如图1所示。
这些探针(在软件窃听中称为S-TAP)在操作系统内核级别监视所有数据库事务,包括特权用户的事务,而无需依赖数据库审核日志,从而确保职责分离。 S-TAP也不需要对数据库或其应用程序进行任何更改。
探针将事务转发到网络上的强化收集器 (设备),在此将它们与先前定义的策略进行比较以检测违规情况。 系统可以响应各种基于策略的操作,包括生成警报。
InfoSphere Guardium支持各种各样的部署,以支持非常大的且地理分布的基础架构。 由于本文勉强介绍了InfoSphere Guardium的功能,因此您可以查看“ 相关主题”部分,以获取有关InfoSphere Guardium功能的更多信息的链接。 请注意,并非所有功能都可用于所有数据源。
通过提供有针对性的,可操作的信息,使用InfoSphere Guardium可以大大简化您的审计准备路径。 您可以想象,如果您当前的Hadoop审计准备计划是基于压缩日志数据并希望您不再需要它,那么仅从及时性的角度来看,您可能将无法满足许多审计要求。 取证分析无疑会很耗时,并且需要使用自产脚本,这些脚本会占用资源,而您宁愿花钱在Hadoop上创造业务优势。
借助InfoSphere Guardium,许多繁重的工作都将由您完成。 您定义安全策略,这些安全策略指定需要保留哪些数据以及如何对违反策略的行为做出React。 数据事件直接写入InfoSphere Guardium收集器,即使是特权用户也没有机会访问该数据并隐藏其轨迹。 开箱即用的报告可帮助您快速启动并运行Hadoop监视,并且可以轻松自定义这些报告以符合您的审核要求。
InfoSphere Guardium S-TAP最初旨在实现低开销的性能。 毕竟,S-TAP还用于监视产品数据库环境。 使用Hadoop,您将不太可能看到3%
以上的开销,这对于大多数Hadoop工作负载而言将是不明显的。
最后,InfoSphere Guardium提供了从用户界面到存储的整个Hadoop堆栈的监视功能,如图2所示。
为什么这很重要? 即使Hadoop中的许多活动分解为MapReduce和HDFS,在该级别上,您也可能无法分辨出堆栈中较高级别的用户实际上是在试图做什么,或者甚至是该用户是谁。 它类似于显示一堆磁盘段I / O操作,而不是显示数据库的审计跟踪。 因此,通过提供不同级别的监视,您更有可能了解活动,并且能够审核直接通过堆栈较低点进入的活动。
可以监视的事件包括:
以下示例描述了如何在InfoSphere Guardium报告中显示一些简单的Hadoop命令。
HBase:以下是在HBase中创建的:
create 'test_hbase', 'test_col'
。
InfoSphere Guardium将显示流到HBase的实际命令,如图3所示。
HDFS:以下是Hadoop中的简单-ls命令:
hadoop fs –ls
图4是InfoSphere Guardium报告中的输出。
您可以看到它被隐藏为两个不同的命令,以获取列表和关联的文件信息。
这种看似简单的活动监视的背后是强大而灵活的基础结构,用于策略配置和报告。 例如,在本文后面,您将学习如何创建一个策略,该策略将记录一个事件,以在未知用户访问敏感数据时向您发出警报。 您还可以创建审核报告,以帮助您检测何时新的或未知的应用程序正在访问Hadoop数据。
IBM InfoSphere BigInsights包含一项称为Guardium Proxy的集成功能,用于读取日志消息并将其发送到InfoSphere Guardium进行分析和报告。 使用代理,BigInsights将消息从Hadoop日志发送到InfoSphere Guardium收集器。
代理的优点包括:
限制:由于Hadoop并未将异常记录到其日志中,因此无法将异常发送到InfoSphere Guardium。 如果需要异常报告,则需要实施S-TAP。 此外,尽管您会看到来自Hive的基础MapReduce或HDFS消息,但不支持监视Hive查询。
如果您有兴趣开始使用InfoSphere BigInsights中的Guardium代理,请参阅附录A ,其中包含用于为Hadoop服务启用代理的配置说明。
以下部分描述了InfoSphere Guardium和基于Hadoop的系统的需求。
IBM InfoSphere Guardium解决方案如下:
要监视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集群。
请参阅IBM支持站点上的InfoSphere Guardium系统需求信息 ,以获取InfoSphere BigInsights,Cloudera,Greenplum HD和Hortonworks的受支持的Hadoop发行版的受支持发行版本的更新。
注意:对于IBM InfoSphere Big Insights,IBM InfoSphere Guardium也支持Cloudera上的覆盖安装。
安装和配置所需的步骤如下:
规划步骤对于成功将InfoSphere Guardium与Hadoop集成至关重要。 以下部分提供了该体系结构的高级概述,以使您了解所需的知识。
建议:对于初始部署,请考虑仅从支持特定业务需求的最简单配置开始,然后从那里进行扩展。 例如,仅从监视HDFS和MapReduce的要求开始,验证配置,然后根据需要扩展为包括Hive和HBase。
图5显示了InfoSphere Guardium提供的在集群中特别需要安装OS特定的S-TAP的位置,以实现完整的监视范围。
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本地数据库中。
在进行下一步之前,请查看以下内容:
服务 | 港口 |
---|---|
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是特定于操作系统的,因此您需要为每个适当的节点安装Red Hat或SUSE Linux S-TAP。 该过程在InfoSphere Guardium S-TAP帮助书中有很好的记录,也可以使用InfoSphere Guardium Installation Manager或通过非交互式安装过程来完成,该过程使您可以使用同一命令在许多节点上进行安装。
接下来,您需要配置适用于受监视节点和服务的检查引擎。 检查引擎是您在其中指定用于监视的协议(Hadoop)以及定义要监视的端口的位置。 表1显示了默认使用的端口的摘录,InfoSphere Guardium可以监视这些端口。 您的端口可能不同。
表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显示了一些检查引擎定义后的一些示例。
您可以在S-TAP帮助手册中阅读有关检查引擎配置字段的更多信息,该手册可以在线找到。 但是,以下是一些关键字段的摘要。
以管理员身份,导航到InfoSphere Guardium Web控制台的“ 系统视图”选项卡,并确保Hadoop集群的S-TAP处于活动状态并显示绿色,这表示S-TAP已连接到InfoSphere Guardium收集器。 图7显示了一台主机的外观。
在确认在所有适用的节点上正确配置了S-TAP之后,您应该已经捕获了系统上正在运行的所有工作。 您可以运行shell命令或示例wordcount作业来验证您是否正在查看数据。 在这两种情况下,您都将需要使用InfoSphere Guardium细化报告(可从用户的“ 查看”选项卡获得),或者创建自己的报告来查看活动。
InfoSphere Guardium随附的Hadoop报告中介绍了有关Hadoop报告的更多详细信息。 为了进行验证,本文将介绍如何使用在系统中分配了用户角色的安全管理员可以使用的向下钻取报告。
当您以用户身份登录并单击View选项卡时,您将看到一个与图8所示非常相似的图形。双击该图形可深入查看详细信息。
数据有很多路径。 图9显示了一个向下钻取的示例。
每当您单击报告中的一行时,都会有一个菜单选项供您选择要查看的下一个报告级别。
InfoSphere Guardium包含几个针对Hadoop的现成报告,包括以下内容:
如果您以用户身份登录,则可以通过单击“ 视图”选项卡找到预定义的报告。 在左侧导航窗格中,单击Hadoop ,然后在此处列出报告。
如果您以管理员身份登录,则需要将报告添加到控制台。 以下步骤假定您已在控制台上定义了“ 我的新报告”选项卡,并且已以管理员身份登录。
bin/hadoop jar hadoop-*-examples.jar wordcount in-dir out-dir
。 hadoop jar hadoop-0.20.2-cdh3u4-examples.jar wordcount /user/svoruga /user/svoruga/wc100
。 您可以看到一个类似于图15所示的报告。 (查看图15的大图。)
如您所见,对于本文来说,查询参数是经过自定义的,以指定仅在报告中返回在消息( Full SQL )中出现svoruga和word%count的活动。InfoSphere Guardium Hue / Beeswax报告假定使用Thrift消息格式和MySQL数据库。 如果使用MySQL,但Hue / Beeswax报告仍不显示数据,则可能需要配置Beeswax以使用端口8002,如下所示,该端口是Thrift用于本文系统示例的端口。
/etc/hue/hue-beeswax.ini
。 /etc/hue/hue/ini
,其中-hadoop hadoop *examples.jar
“ *位于/user/lib/hadoop
目录中。替换为正确的jar文件。 beeswax_server_port=8002
/etc/init.d/hue stop
/etc/init.d/hue start
在InfoSphere Guardium中,安全策略包含一组有序的规则,这些规则集将应用于观察到的客户端和服务器之间的流量。 组合一个或多个规则以创建策略。 对于本文中的Hadoop安全策略,定义了访问规则 ,这些规则是有助于减少要记录到InfoSphere Guardium收集器的流量的规则。
建议:不要修改样本策略。 而是,创建一个克隆并将其用作修改的基础。
要访问Hadoop策略并创建克隆,请执行以下操作。
要安装策略,请执行以下操作。
Hadoop策略的规则如图16所示。单击加号以查看更多详细信息。 您可以通过单击铅笔图标来编辑规则。
以下是策略中每个规则的摘要。
图17显示了规则定义。
以下是此政策中涉及的两个主要项目。
与上面的规则类似,但专门用于命令。
使用此规则,您可以从使用同一Guardium Collector的所有非Hadoop服务器中过滤活动。
重要提示:您必须修改Not Hadoop Servers组,以包括要过滤掉的任何服务器的所有IP。 如果没有这样的服务器,则输入一个虚拟IP,但不要输入0.0.0.0。 如果该组中没有任何内容,则您的报告将不起作用。
以下是您可以使用InfoSphere Guardium进行的一些关键操作,以帮助您满足Hadoop的审核和合规性要求。 本节介绍了回答本文开头提出的问题的方法。
您可以使用许多不同的规则来创建策略,以帮助您强制执行审核要求。
提示:如果将任何规则添加到Hadoop策略克隆中,请确保上一条规则已选择“ 继续到下一条规则” 。 否则,您的新规则可能永远不会得到评估。
图19显示了一个规则,其中两个组的定义如下。
该规则对已知用户具有否定性,这意味着,如果不属于该已知组的用户访问那些敏感文件,则将记录该信息,并且您可以在事件报告中看到这些事件,以进行进一步调查。 如果事实证明该访问是合法的,则可以将该用户添加到已知组中。
许多企业担心跟踪访问其数据的新应用程序,自动报告可以帮助您做到这一点。 InfoSphere Guardium提供了未经授权的MapReduce作业报告,您可以对其进行自定义,以帮助您确定何时有新的MapReduce作业进入系统。
您可以安排此报告定期运行,作为在后台运行的审核过程的一部分。 这使您可以在新作业进入系统时得到通知,以便可以对其进行适当的检查并适当地添加到授权的作业列表中。
设置此报告需要一些配置。 您需要创建和自定义一个名为Hadoop授权作业列表的组。 您将需要:
以下是有关如何配置组的详细步骤:
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.
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.
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.
Figure 29 is an example of an alert that was created for this article that specifies an exception of 101 for file permission exceptions.
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:
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.
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).
You can find details of the integration in the IBM InfoSphere BigInsights Information Center (see Related topics ).
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.
(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.
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.
#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.
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.
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.
翻译自: https://www.ibm.com/developerworks/data/library/techarticle/dm-1210bigdatasecurity/index.html