1引言
Apache Hadoop是当下大数据处理使用最为广泛的平台之一。最初设计Hadoop时,考虑的网络安全问题相对较少,其兴起也招致了各层面不同的批判。在此后计算机网络和信息技术不断完善的进程中,Hadoop的网络安全问题逐渐被重视起来。随着网络安全漏洞和大数据安全风险不断地进行推进演变,其安全模式也在不断完善,漏洞不断地得到填补。随着Hadoop安全性能的完善,其在市场中的应用得到大量的推广,包括Cloudera Sentry、英特尔的安全版Ha-doop、Zettaset安全数据仓库等[1]。
2HADOOP集在实际使用中的常见安全问题分析在数据中心项目中用Hadoop平台来构建业务数据的存储和处理时,可以从安全认证、用户权限、应用系统、网络传输及数据使用安全等五个方面分析可能存在的安全问题:(1)缺乏安全认证机制的问题:任何一个程序的开发人员都能轻易写出Hadoop服务的代码以冒充其他用户进行操作。恶意用户可以绕过访问控制从DataNode中读取任意数据块,或将垃圾数据写到DataNode中破坏目标分析数据的完整性[2]。
(2)用户权限控制可能存在的问题:数据中心平台在框架搭建时一般都会结合常见安全问题,但在底层上还有可能存在一些问题,如在数据中心可能存在的如下表象:1)Hive 查询的权限问题:Hive在创建表时被告知数据中的列和行分隔符即可以解析数据,用户可以进行查询等操作,查看底层存储在HDFS目录上的文件内容。目前在Hadoop用户权限下,只要知道Hadoop用户的人都可以进行查询;2)集用户权
限问题:如何通过配置文件权限,保障集文件不被恶意破坏;3)MR任务安全问题:如何仅授权开发人员可以访问、修改和停止MapReduce作业而限制其他任何人的操作呢?由于MapReduce是没有关于认证和授权的概念的,一些恶意用户为了使自己的任务优先级达到最高,降低其他Hadoop 任务的优先级,甚至直接删掉其他任务[3];4)Hive数仓数据的限制数据导出问题:在Hadoop用户权限下,Hive数据可以导出到用户指定目录。
(3)应用系统可能存在的问题:1)如何让发起的数据查询任务可以被追踪、定位、落实到具体人:在Hadoop用户权限下,Hive发起的Mapreduce任务可以监控到发起者的IP,但同时使用同一IP的会存在多个,如何将监控控制到人?2)如何强制所有类型的客户端(比如web控制台和进程)上的用户及应用进行验证?3)其它客户端的权限认证问题。
(4)网络传输安全问题:Hadoop平台在实际应用中,在网络层面主要可能存在的问题可以归结为以下两类:1)业务数据在数据传输、抽取过程中如何进行加密传输:数据在传输过程中没有加密措施,如被截获会造成数据外泄;在数据中心的ETL阶段,即数据从业务系统往Hadoop平台加载、处理以及数据交换阶段等都有可能发生数据外泄的可能。2)
浅谈基于Kerberos认证机制进行Hadoop
平台的安全加固
卢宇帆王勋*
(浙江警察学院,浙江杭州310051)
[摘要]在数据中心分布式架构部署中,Apache Hadoop早期版本因其设计过程中对安全设计的缺失,导致在实际应用中数据中心存在安全隐患问题。通过在常见安全问题分析基础上,本文针对性地提出安全管控模型,给出了一种基于Ker-beros认证机制进行数据中心加固的解决方案,提高整个数据中心的安全性。
[关键词]Hadoop;安全隐患;Kerberos认证
中图分类号:TP393.08文献标识码:A文章编号:1008-6609(2018)01-0047-03
——————————————
作者简介:卢宇帆(1995-),男,浙江台州人,本科,研究方向为网络安全。
*通讯作者:王勋(1988-),男,硕士,助教,研究方向为网络安全。
-
-
47
静态数据,如HDFS中数据如何加密:目前HDFS上的静态数据没有加密。数据中心将数据底层存储在HDFS上,并且以text类型存储,在未加密的情况下,只要拥有Hadoop用户权限即可以任意操作HDFS上存在的内容,如复制、查看等。有些组织对Hadoop集中的数据加密有很严密的要求,只能使用第三方工具实现HDFS硬盘层面的加密,或通过加强Hadoop版本(比如英特尔发布的版本)实现加密[4]。
(5)数据服务中的数据安全问题:数据中心平台在运行过程中为第三方系统提供了很多数据服务,最重要的是保证数据使用中的安全。狭义来说就是数据加密,但是可查询,保证数据安全,维护数据价值;广义来说是一种指导架构建设的思想,多方数据相互协作,但相互隔离。
3通过引入Kerberos身份认证进行安全加固
3.1Kerberos认证机制
Kerberos是一种网络认证协议,它的安全认证相当于机器级别,即在非安全网络通信环境下,实体使用Kerberos以安全的方式向另一个实体证明其身份。
Kerberos的核心是密钥分发中心(KDC),由两个相互独立的逻辑部件:认证服务器(Authentication Server)和票据授权服务器(Ticket Granting Service)。Kerberos持有一个记载每个Kerberos用户的密钥数据库,而且每个密钥只有对应的Kerberos用户和KDC知道。而对于两个实体间的通信,KDC 会为他们产生一个临时会话密钥,将其交互信息进行加密[5]。
当搭建Hadoop集时,管理员手动添加集中确定的机器节点到Kerberos数据库,分别产生每个节点与KDC的Keytab文件。通过分发至相应的节点上的Keytab文件,实现节点与KDC安全通信,然后获得通信的临时密钥,并最终实现目标节点的认证过程。在系统实际运行中,客户端提交了任务后,作业通常会运行很长时间,因此作业需要代表用户访问Hadoop资源,此时需要基于授权令牌(Delegation To-ken)、作业令牌(Job Token)、数据访问令牌(Block Acess To-ken)来实现[6]。
3.2Kerberos安全性分析
Kerberos采用的是传统的共享密钥方式,在网络环境不一定保证安全的环境下,实现Client和Server之间的通信。Ker-beros对通信双方的网络环境安全没有过高要求,提供的认证是双向的,保证Server和Client之间能够正确地相互使用。Kerberos也能达到SSO(Single Sign On)效应,即当Client通过了Kerbe
ros Server的认证后,便可以访问多个Real Server[7]。3.3Kerberos的使用配置
3.3.1在Hadoop集上配置Kerberos认证
要设置一个安全Hadoop集,需要在节点上设置Ker-beros认证。Kerberos认证需要每个节点都支持反向DNS查,可以根据主机名查标识名。当安装和配置Kerberos 后,设置Hadoop服务标识和用户标识,即将集的节点、用户保存在Kerberos数据库中。之后更新Hadoop配置,在所有节点开启Kerberos认证,启动Hadoop集。
3.3.2建立KDC
在独立节点上安装KDC;安装成功后,下一步需要确保正确的配置,主要配置三个文件(以MIT Kerberos版本5为例):f、f、kadm5.acl;首先配置f;krb5. conf高层的配置文件、配置KDC的位置、管理服务器、主机名与Kerberos领域名的映射等。大多数配置默认使用当前的领域和K应用。
建立KDC数据库,KDC数据库中存放每个用户的密码信息。这个数据库可以是一个文件,一般建议采用LDAP存储;KDC数据库生成后,需要在数据库配置管理员标识,通过kadm5.acl来配置;配置完成后启动Kerberos守护进程,向kerberos数据库添加标识。
3.3.3配置Hadoop使用Kerberos认证
配置完KDC,并向KDC添加完用户标识后,可以配置集里面的所有节点来使用Kerberos认证了。配置流程如图1所示。
图1Hadoop配置Kerberos流程图
(1)所有节点设置Kerberos客户端,在Hadoop节点安装Kerberos客户端安装包和库类即可。
(2)配置Hadoop服务标识,运行Hadoop守护进程需要三个用户,hdfs(HDFS进程相关)、mapred(mapreduce进程相关)、yarn(yarn进程相关)。需要在KDC中创建三者的对应标识,确保Kerberos认证Hadoop的守护进程。每个服务都会暴露Http服务,需要在KDC中创建Http服务标识。
(3)作为Hadoop集安装的一部分,HDFS相关的目录和HDFS进程独自使用的目录,包括Namenode目录、Datanode目录、日志目录等,需要HDFS作为用户组;Mapre-duce本地目录和日志目录设置权限Mapred作为用户组。
(4)为Hadoop服务创建Keytab文件,Keytab文件包含键值对,即Kerberos标识和基于Kerberos密码生成的加密密钥。用于当服务在后台运行在没有人机交互情况下进行认证。用户DHFS和Mapred在后台运行多个Hadoop进程,hadoop分布式集搭建
我
--
48
们需要为其创建Keytab文件,在这些Keytab文件中添加Http 标识,确保Hadoop的相关网页可以通过Kerberos认证。
(5)向Slave节点分发Keytab文件,集中每个节点需要创建专门的Keytab文件,创建后移动到节点的/etc/hadoop/ conf目录。确保只有Keytab文件所有者可以查看该文件。这些文件所有者要修改为HDFS或者Mapred或者Yarn,权限也要修改为400。服务标识是主机相对的,对于集中每个节点是唯一的。因此每个节点需要创建专门的Keytab文件,最好使用部署工具自动化该过程。
(6)设置Hadoop配置文件,使得Kerberos生效。在更新配置文件前,需要关闭集。需要重新设置配置文件:l、l等。
3.4配套的系统安全方案
(1)应用系统登录用户身份严格隔离。系统登录:设置管理员账号,普通员工账号。其中管理员账号具有系统所有权限,可创建用户、修改用户、删除用户等。对于离职员工,回收其操作权限,在备案后根据业务确认关闭相关用户,避免员工泄露系统报表数据。
(2)应用系统用户登录身份认证。对于应用系统级别的安全防护,主要是用户密码(包括密码长度及其复杂性等)的安全性和用户电脑的安全性,通过用户录入框组织键盘Hook程序等,利用代码程序即可消除。
(3)记住密码功能优化。在应用Cookie中,用户名、登录序列、登录Token是保存在本地的三样东西。用户名:明文存放。登录序列:一个随机的MD5值(通过散列数),只有当重新输入密码时才更新。登录token:一个随机的MD5值,只对一个登录Session有作用。登录Token用来进行盗用检测,进行单实例登录。如果用户的Cookie被盗,在前后登录中系统验证到“登录Token”不一致,这样的话,系统就认为用户可能被盗,于是,系统可以删除和修改登录序列和登录Token,这样就可以令所有的Cookie失效,并要求用户输入密码进行登录,警告用户系统安全。
(4)应用系统登录设置验证码。验证码由系统自动乱序生成,由用户来输入。设置不同的验证码可以有效防止恶意用户恶意破解密码系统,特别是使用程序进行暴力破解方式等,从而避免攻击和窃取网站用户数据的目的。
(5)应用系统增加菜单权限管理。对系统菜单权限控制到用户级别,用户看到的菜单根据岗位、职责不同分配不同的报表数据,实行用户之间的有效隔离,保证公司内部数据安全。
(6)应用增加系统数据权限管理。除对菜单进行控制外,增加对数据的权限控制,不同权限和职务的操作人员,可以看到不同的维度数据,实现同岗不同组的数据有效隔离,保证数据在组内安全。
4结语
Hadoop加入Kerberos认证后,集的节点需要先验证密钥然后进行部署,这样部署的节点只有通过认证后才能被使用,不容易被恶意用户入侵,大大减少集数据被更改、任务状态被改变、随意提交任务等安全问题发生的可能性,从而极大地提高了整个数据中心的安全性。
参考文献:
[1]陈豪.基于属性基加密的HDFS安全模型研究与应用[D].南京:南京邮电大学,2015.
[2]中国版大数据“哨兵”观数科技亮相BDTC2016[N].新闻资讯,2016.
[3]尧炜,马又良.浅析Hadoop1.0与2.0设计原理[J].邮电设计技术,2014(07):37-42.
[4]王玉龙,曾梦岐.面向Hadoop架构的大数据安全研究[J].信息安全与通信保密,2014(07):83-86.
[5]姚传茂.Kerberos认证系统的研究与改进[J].安徽建筑工业学院学报(自然科学版),2006,14(2):85-87.
[6]李延改,赵华伟.基于PKI的HDFS认证及安全传输机制研究[J].山东科学,2014,27(05):33-41.
[7]邱珊.Kerberos协议原理及其应用[J].软件导刊,2011,10(11):22-25.
Research on the Hadoop Platform Safety Reinforcement
Based on the Kerberos Authentication Mechanism
LU Yu-fan WANG Xun*
(Zhejiang Police College,Hangzhou310051,Zhejiang)
【Abstract】The first version of the Apache Hadoop has caused a security problem in the architecture of data distribution,which leads to the potential hazard in applications.Based on the analysis of security problems,a managing and monitoring model is estab-lished,which is a solution of strengthening the data security.The model is on the basis of Kerberos authentication mechanism. Through the project,the security of data center can be reinforced significantly.
【Keywords】Hadoop;potential safety hazard;Kerberos authentication mechanism
-
-
49
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论