庄永章
(福建对外经济贸易职业技术学院,福建 福州 350016)
Hadoop是一种云计算框架,由Apache基金会开发。Hadoop主要的功能是实现云计算平台的自行管理与云计算应用程序的自行分发。Hadoop平台在工业界与学术界得到了非常广泛的应用,有着广阔的发展前景。但是,Hadoop在安全机制方面存在的问题影响了其进一步推广。
传统网络安全问题主要是欺骗、后门、入侵、拒绝服务、渗透、重放、病毒、木马、蠕虫、抵赖、窃听、伪装和修改等。在传统的通信网络中针对存在的这些安全问题都存在着相应的安全机制,主要包括以下六个方面:访问控制、电磁泄漏控制、完整性保障信息隐蔽、网络防御策略和身份认证。
比起传统安全环境云计算环境具有网络化与虚拟化的特点,云计算的安全问题更加突出,除了传统安全问题外,同时还出现较多新的安全问题。具体表现在:
(1)用户对于自身存储在云中的数据失去了绝对管理权;云计算提供商拥有的权限过大,用户数据完全暴露。
(2)传统的物理与逻辑安全域划分的数据保护方式在云计算环境中不能够发挥作用,导致不同用户与安全等级的数据全部都在相同的介质中经常存放,加大了安全防护体系的压力。
(3)云计算模型中主要是由服务器负责相关业务处理,如果服务端关键节点受到攻击,很可能会导致大范围服务瘫痪。
Hadoop被设计用来在大型集群上执行分布式应用。它实现了包括分布式文件系统 (Hadoop Distributed File System,HDFS)和MapReduce计算模型在内的基础架构。
HDFS所采用的构架模型为主/从模型,所采用的模式为中心控制模式。在一个集群中,“主”为NameN-ode,数量为一个;“从”为 DataNode,数量可扩展。NameNode中存放了HDFS文件系统的元数据,数据被组织成Block,在NameNode中的Block ID,与相应的DataNode之间主要保持着映射的关系。假如客户机在得到元数据记录之后就会与DataNode实现直接的通信。而DataN-ode实际上就是“从”服务器,主要的功能就是对客户机中发来的各种读写、删除、复制等请求进行响应。
MapReduce所采用的结构模型依旧为主/从模型,其中“主”为JobTracker,数量为一个;在“从”中包括若干个TaskTracker服务器。应用程序任务通过客户端中的JobClient类实现分解,分解完成之后,借助RPC机制将应用程序和对应参数提交给JobTracker并存入HDFS中。随后JobClient将应用程序在HDFS中的位置提交给JobTracker运行程序,从而实现Map-Reduce计算模型。
Hadoop设计初期没有考虑安全问题,默认集群内所有的节点都是值得信赖的,不会出现恶意攻击的现象,这样就让Hadoop在安全方面出现以下问题:
(1)缺乏对用户及服务器的安全认证机制,导致用户冒充、非法访问、恶意提交、随意修改等问题层出不穷。此外,在对DataNode、TaskTracker服务器进行认证的过程中同样缺乏认证机制,导致攻击者能够利用这些漏洞对NameNode和JobTracker中发布的数据、任务等进行截取。
(2)在用户得知Block ID对DataNode进行访问并读取Block数据块的过程中缺乏相应的安全授权机制,导致用户在该过程中可以不通过认证与授权,对数据进行随意的修改或者删除。
(3)在Master和Slave、Client之间,以及和服务器之间,传输数据的时候并不经过加密处理,导致传输的过程中容易被窃取,存在不安全的问题。
(1)HDFS中存在的安全机制
HDFS在进行身份验证的过程中采用的是Kerberos,该协议主要包括两个部分:第一部分,客户端将身份信息发送到密钥分配中心(KDC)中,KDC在接收到客户端的身份信息之后,会把ticket-granting ticket(TGT)通过密钥(Client与KDC在协议之前协定的密钥)进行加密,然后向客户端回复。第二部分,客户端Client通过TGT向KDC对其他的Service的Ticket发出请求命令,并且鉴别其他Service的身份。
Hadoop采用单点登录的策略来确保Kerberos的性能,通过一次的认证之后就能够对相互之间信任的多个服务器进行访问。在Kerberos的身份认证通过之后,通信安全主要是有令牌Token的分发来维持的。
分析可知,Kerberos身份认证机制是一种对称加密。但是,Hadoop平台并没有形成这样的认证功能,在进行身份认证的时候,平台需要借助于一些外围设备,例如KDC等。HDFS在对访问进行控制的过程中,所采用的是基于ACL的访问控制策略。HDFS对文件和目录的访问控制模型和Linux相似,分为读与写、执行功能。
(2)MapReduce中存在安全机制
MapReduce在追踪Job提交,以及Job运行状态的时候,所采用的主要是RPC。当合法的用户在对作业Job进行提交的过程中,RPC中所包含的JobTracker就会针对作业生产Delegation Token,而在整个作业Job进行处理的时间中,该Delegation Token都是有效的。在作业Job中的所有Task任务进行启动的过程中,都是通过用户的身份来完成的,从而避免用户之间出现不必要的干扰。Hadoop要确保其他用户在Map Task运行结束之后不能够对Map Task的中间结果进行获取。MapReduce在对访问控制的过程中主要是依靠ACL,管理员能够在文件进行配置的过程中对User和Group列表及其所对应的权限进行访问。
(1)KDC对系统性能存在影响。Hadoop中所采用的身份验证是以Kerberos为基础的,在Hadoop的所有认证中都需要使用KDC。假如在短时间内Kerberos服务器收到内集群较多数量的票据请求的时候,就会导致KDC的负载在短时间内激增,对系统的性能造成影响。
(2)访问控制策略比较简单。ACL本身就是一种简单策略,并不能够满足安全控制方面的更多需求。
(3)Hadoop中并没实现对数据进行存储保护的问题。而且在数据的存储方面并没有实现隔离,所有的数据都存储在同一个介质中。
(1)使用PKI身份认证机制
针对KDC在身份认证方面存在的局限性,通过PKI身份认证机制的使用能够加以解决。PKI的身份认证机制的认证过程包括:第一步,CA对申请者的身份进行核实,核实完成之后向合法节点颁发数字证书;第二步,验证方将数字证书进行发送,完成申请者身份的验证。
(2)采用数字信封技术实现传输加密
借助数字信封的技术,可以对传输内容加密,并且可以借助增加模块和相应的密码设备,让加密算法用硬件实现。
(3)采用密码算法实现存储加密
在云端数据中心对数据进行保护的过程中,可以通过采用密码算法实现数据的存储加密工作,实现对数据的保护。
随着大数据的兴起,云计算技术成为业界的研究热点。Hadoop计算框架让使用者摆脱复杂的环境配置专注于应用本身。本文主要对Hadoop的安全问题进行探讨,并提出了相应的改进办法。
[1]黎宏剑,刘恒,黄广文,卜立.基于Hadoop的海量电信数据云计算平台研究[J].电信科学,2012(8):80-85.
[2]蒋宁,李文,李鸿彬.基于Hadoop的云计算辅助教学平台研究[J].中国远程教育,2012(9):79-82.
[3]朱劭,崔宝江.基于SAML的Hadoop云计算平台安全认证方法研究[J].信息网络安全,2013(12):1-5.
[4]张学亮,陈金勇,陈勇.基于Hadoop云计算平台的海量文本处理研究[J].无线电通信技术,2014(1):54-57.
[5]陈敬森.基于虚拟化的云计算平台中安全机制研究[J].计算机光盘软件与应用,2014(2):168-169.