李 浩,张玉萍,周其耀,马 燕,杨燕勤
(上海师范大学 信息与机电工程学院,上海 200233)
基于HDFS的保障数据安全方法
李浩,张玉萍,周其耀,马燕,杨燕勤
(上海师范大学 信息与机电工程学院,上海 200233)
在云计算应用中,数据安全是用户最关心的问题.针对HDFS(hadoop distributed file system)中DataNode失效后存储数据不能被彻底保护,从而导致数据泄露的安全问题,设计了一种两级数据安全保障机制,在DataNode失效后,用数据覆盖算法破坏原数据,然后再删除数据,可以有效预防云中数据的恶意恢复、防止数据泄露,数据的安全性和可靠性得到了保障.
Hadoop;云计算;HDFS;安全;数据销毁
近年来,随着云计算技术的兴起,越来越多的企业开始对外提供云计算服务,如阿里巴巴将服务器等中间设备部署到云端供用户使用.还有一些企业在其内部搭建云计算平台满足业务需求,如百度云计算平台用于处理线下海量数据. Hadoop是Apache基金会提供的一个开源云计算平台[1],其核心设计是MapReduce[2]和HDFS(hadoop distributed file system),其中HDFS在整个框架中为海量数据提供了存储.
可信云是2014年云计算关键词[3]之一,可信云与云安全问题息息相关,云安全是云服务用户最关心的问题,其中云中的数据安全是用户关心的首要问题. 2008年,Gartner在其发布的《评估云计算安全风险》中列出了云计算的安全风险[4-5],其中数据恢复风险、数据隔离风险和数据位置风险是最重要的3种数据安全风险.安全问题也是一些中小企业禁止将其数据资料迁移到云端的重要因素之一. HDFS是当前广泛应用的云存储平台,存储在HDFS的数据是否能确保安全成为最重要的问题[6-7].
越来越多的数据将会迁移到云端,云存储将会成为主要的存储方式. 数据安全问题是云计算的首要问题. 从数据的完整性角度看,HDFS提供了用户认证、文件校验以及数据容灾多副本机制的方式,数据的完整性得到保证,但是数据的安全性,尤其是当HDFS发生DataNode失效后,失效的数据块存在巨大的安全风险.恶意用户可以任意使用失效DataNode上数据,而HDFS无法提供安全有效的数据安全保障机制.
对于用户而言,高风险状态下的数据在私有集群中无严重的安全威胁,因为用户拥有私有集群的绝对所有权,可以把数据物理隔绝起来,防止任何非法用户窃取这些数据.然而,当用户将数据和计算迁移到云中,尤其是公有云中后,用户就失去了对存储设备的所有权,恶意侵入用户就有可能恢复用户已经删除的数据进而窃取数据.这对用户的一些敏感、私密数据形成了重大的安全隐患.
虽然针对云中数据安全的研究很多,但是这些研究都是基于云存储集群正常状态下的研究,很少有针对失控状态下节点上存储的数据.在Apache基金会发布的Hadoop版本中,也没有针对失效DataNode上Block块存储数据安全机制的设计. 本文将数据覆盖算法应用到数据安全中,有效保障了失效DataNode状态下的数据安全,实现了性能安全需求.
2.1HDFS心跳机制分析
在HDFS的主/从架构[8]中,DataNode通过心跳机制与负责管理集群的NameNode保持通信,DataNode周期性(默认心跳间隔是3 s)地向NameNode发送心跳包信息,若NameNode在设置的时间阈值(心跳间隔)过后还没有检测到DataNode发来的心跳包信息,则NameNode认为该DataNode已经失效.DataNode与NameNode间的心跳机制如图1所示.
图1 HDFS心跳机制Fig.1 The heartbeat mechanism of HDFS
2.2两级数据安全保障机制设计
最常用的数据毁坏技术主要有两种,即硬销毁技术和软销毁技术[9-10].本文采用软销毁技术,即用程序(软件)对文件进行覆盖写的方式销毁数据.
HDFS为多副本设计机制,即文件中一个副本遭到破坏,文件中其他副本还是完好无损.只有当一个数据块的所有副本全部丢失,文件才会损坏.导致DataNode失效的因素有很多,比如内存溢出、机架内的网络突然变得拥挤不堪等. 由于集群内的每一台服务器都是廉价的物理主机,所以DataNode自身的原因也有可能导致DataNode失效. DataNode失效后,由于Block块还存储在已经失效的DataNode节点上,这时的Block块就面临着被盗取的安全威胁,数据很容易被非法侵入者盗取从而造成损失.
本文针对失效状态下DataNode上存储的数据残留问题,设计了一种数据安全保障机制,即基于HDFS的两级数据安全保障机制,该机制方案设计如图2所示.
图2 两级数据安全保障机制方案设计Fig.2 The design of two-level protect data security mechanism
方案执行流程如下:
(1) NameNode检测到心跳间隔超时,则判定该DataNode已经失效;
(2) 这时DataNode节点第一级数据保护方案启动,即修改本地数据块的访问权限;
(3) 若修改成功,则流程结束;若修改失败,则开启第二级保护方案,使用数据覆盖算法对数据块进行覆盖写;
(4) 失效DataNode节点删除已经被破坏的数据块;
(5) 结束.
图2所示流程与原有HDFS处理失效DataNode存储数据的区别是增加了b和c环节,在删除数据之前,基于HDFS的心跳机制,先修改要删除数据块的访问权限.若修改失败则对要删除的数据块进行预处理(用数据覆盖算法破坏数据),然后再正确删除数据.即使已经删除的数据被恢复,恢复后的数据已经被破坏掉,可以有效保证失效状态下DataNode存储数据的安全性.与当前HDFS数据一级删除机制相比,本文的设计完善了HDFS的安全机制,从而避免非法用户盗取失效DataNode上的存储数据.
3.1仿真实验平台及工具
本文的仿真实验主要是验证在HDFS环境中覆盖算法对数据块覆写的有效性和性能.
仿真实验中采用的Hadoop版本为Hadoop-1.2.1,用VMware Workstation虚拟三台虚拟机搭建完全分布式环境,操作系统为CentOS 6.3,每台虚拟机1 GB内存,20 GB硬盘.三台虚拟机的角色为:其中一台充当NameNode(同时充当SecondaryNameNode的角色),另外两台充当DataNode.
数据覆盖算法主要是由JDK中的FileReader、 BufferedReader、 FileWriter和BufferedWriter这几个类实现的.
Reader reader = new FileReader(as[0]);
BufferedReader bufferedReader=new BufferedReader(reader);
Writer writer = new FileWriter(as[0]);
BufferedWriter bufferedWriter=new BufferedWriter(writer);
3.2结果分析
第一步,NameNode检测到DataNode心跳间隔超时.
第二步,用Hadoop的bin命令hadoop fs -chmod 000 〈文件名〉修改数据块的访问权限,修改后通过web网页查看数据块数据,如图3所示.
图3 访问修改权限后的文件Fig.3 Access the file when permissions modified
由图3可知,修改权限后的文件显示不被批准访问,文件内容已经不能查看.
第三步,若未能成功修改文件权限,则调用覆盖算法对文件进行覆盖.文件覆写后的结果如图4所示.
图4 web页面查看被覆盖重写后的文件Fig.4 View the overwritten file through web page
由图4可知,文件被覆盖重写后,通过web界面已经无法读取内容,文件变成无用乱码.覆盖算法只是破坏了Block块的内容,并没有破坏NameNode中保存的元数据,Block块还可以通过JDK(Java development kit)中File类的方法delete( )正确删除.
通过分析仿真实验结果,证明了两级数据安全保障机制可以有效地破坏文件的内容,使DataNode失效后的数据变成不可用的垃圾数据.这种机制可以有效防止非法用户恶意侵入盗取及恢复失效DataNode上的文件数据.
本仿真实验是在虚拟机的环境下进行的,仿真实验中采用的数据块为1 MB的小文件,因为小文件已经能够验证两级数据保护机制及数据覆盖算法的有效性.在实际生产环境中,由于数据量会比较大,一个大文件会被物理分隔成很多个Block块,这些Block块会被上传到不同位置的DataNode节点存储起来,一个失效的DataNode上也会存储着若干个不同文件的Block块.如果同时开启多个线程并行对各个Block块进行破坏,效率会更高. 在实际生产环境中,如果HDFS的存储介质是闪存类介质如固态硬盘等,不但能成倍提高数据覆盖效率,而且毁坏后的文件恢复难度更大,云平台中数据的安全性会大大增强.
云计算是当下互联网界的研究的热点,HDFS是未来云存储的研究方向之一.Hadoop大数据计算平台的出现,使得用户可以自定义搭建Hadoop平台,并根据需求开发Hadoop应用程序.针对HDFS中DataNode失效后存储在DataNode上的数据块文件的安全问题,本文在对Hadoop云计算框架存储平台HDFS研究的基础上,设计了一种两级数据安全保障机制方案.仿真实验结果表明,在DataNode节点失效后,该机制能很好保障失效DataNode上数据的安全性.基于HDFS的云平台数据安全研究工作意义重大,设计出效率更优的数据覆盖算法面向商业应用,具有重要价值.
[1] 刘鹏. 云计算[M]. 北京:电子工业出版社,2010:60-70.
[2] 董西成. Hadoop技术内幕:深入解析MapReduce架构设计与实现原理[M]. 北京:机械工业出版社,2013:20-36.
[3] 2014云计算关键词盘点:BATH等入围[EB/OL].(2014-12-16) [2015-01-01].http://www.sootoo.com/content/538413.shtml.
[4] 中国电信网络安全实验室. 云计算安全:技术与应用[M]. 北京:电子工业出版社2012:12-20.
[5] DHRUBA B. HDFS architecture guide[EB/OL].(2012-04-03) [2015-01-01].http://hadoop.apache.org/common/docs/current/hdfs_design.pdf.
[6] 马媛. 基于Hadoop的云计算平台安全机制研究[J]. 信息安全与通信保密, 2012(6): 89-91.
[7] 柴黄琪,苏成. 基于HDFS的安全机制设计[J]. 计算机安全,2010(12):22-25.
[8] 蔡斌,陈湘萍. Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理[M]. 北京:机械工业出版社,2013: 217-219.
[9] 张冬. 大话存储Ⅱ[M]. 北京:清华大学出版社,2011:40-51.
[10] 程玉. 磁介质数据销毁技术的研究[D]. 成都:电子科技大学计算机科学与工程学院,2010:92.
A Method of Protecting Data Security Based on HDFS
LIHao,ZHANGYu-ping,ZHOUQi-yao,MAYan,YANGYan-qin
(College of Information, Mechanical and Electrical Engineering, Shanghai Normal University, Shanghai 200233, China)
With the application of cloud computing, data security is more attention by users. The open source cloud computing storage system, HDFS(hadoop distributed file system) can not completely protect data when DataNode failed, which may lead data leakage.In order to solve this problem, a dual-level data security and safegaurd mechanism is designed, so that the data in failed DataNode can be breached by the overwrite algorithm and then deleted reliably. This mechanism can effectively prevent malicious data recovery and data leakage with data overwrite algorithm. Security and reliability of the data in HDFS has been secured.
Hadoop; cloud computing; HDFS; security; data destruction
1671-0444(2015)04-0490-04
2015-01-15
国家自然科学基金资助项目(61373004);上海师范大学基金资助项目(SK201413)
李浩(1988—),男,河南周口人,硕士研究生,研究方向为云计算、网络安全.E-mail:lihaosky_2008@126.com
张玉萍(联系人),女,教授,E-mail:yp_zhang@shun.edu.cn
TP 311
A