挖掘分布式系统——Hadoop的漏洞

作者:媒体转发 时间:2018-02-09 01:08

字号
Hadoop及其安全模型概述 Hadoop简述

Hadoop是一款由Apache基金会推出的分布式系统框架,它通过著名的 MapReduce 算法进行分布式处理。这个框架被Adobe,Last fm,EBay,Yahoo等知名公司使用着。它极大地精简化程序员进行分布式计算时所需的操作,用户大概通过如下步骤在hadoop中实现分布式处理:

用户创建一个处理键值的map函数

产生了一套中间键/值

reduce函数合并中间值并把他们关联到对应的键

图片.png

虽说hadoop是免费且开源的,它还是分出了许多发行版,以下是三个最受欢迎的发行版:

图片.png

幸运的是,这三个版本都是基于Hadoop的,所以它们都大同小异。

这副图大致描述了Hadoop在大数据框架中的位置:

图片.png

显而易见,Hadoop在大数据环境中负责最底层的操作。图中的MapReduce负责数据处理。HDFS则是一种特殊的文件系统,其用来存储Hadoop里的数据。而在这两者之上的Yarn是Hadoop集群的资源管理器。

安全模型 身份验证

默认情况下,Hadoop集群不强制管理员添加身份验证。就算开了默认的身份验证(但是没有用Kerberos),它也只是简单地检查一下登陆的用户及其所在组是合法的。

图片.png

有些时候,由于管理员疏忽,验证可能只会在部分模块打开。下面的配置文件分别描述了不同情况:

全部都需认证:

<name>hadoop.security.authentication</name> <value>simple</value> <source>core-default.xml</source>

只在Web接口验证:

<name>hadoop.http.authentication.type</name> <value>simple</value> <source>core-default.xml</source>

可匿名登陆:

<name>hadoop.http.authentication.simple.anonymous.allowed</name> <value>simple</value> <source>core-default.xml</source>

只在Yarn上开启身份验证:

<name>yarn.timeline-service.http-authentication.simple.anonymous.allowed</name> <value>simple</value> <source>core-default.xml</source>

不仅如此,每个Hadoop组件都有自己的认证模块,这无疑大大提升了防御的复杂度。

就拿HDFS来说,它同时支持*nix式权限(user/group/other)和ACL(2.5后加入)
!

图片.png

数据保护

默认情况下(不开Kerberos),传输及存储的数据不会被加密保护。不过我们这里主要来谈一谈开启加密的状况,我们大致可以分成两种:

传输加密:
在NameNode会有三种保护:第一种仅确认身份正确,而第二种额外保证信息完整性,第三种会加密所有数据。在所有Web应用中,SSL/TLS是默认打开的。DataNode则会使用AES加密数据并用RC4/3DES交换密匙。

存储加密:
Hadoop用Encryption Zone来保护目录并且每一个文件都有独特的密匙。

如何Pwn掉Hadoop 探索攻击面

一般来讲,Hadoop集群有这三种布置方案:

完全暴露

图片.png

这种情况下,攻击面十分广阔。攻击者更有可能非法获取数据。

只有用户服务暴露

责任编辑:CQITer新闻报料:400-888-8888   本站原创,未经授权不得转载
继续阅读
热新闻
推荐
关于我们联系我们免责声明隐私政策 友情链接