APP下载

基于Hadoop的云计算数据主动销毁研究

2015-12-02周椿入吕瀚森何佳羲

成都信息工程大学学报 2015年3期
关键词:磁盘客户端节点

杨 榆, 雷 敏, 周椿入, 吕瀚森, 何佳羲

(1.北京邮电大学信息安全中心,北京100876;2.灾备技术国家工程实验室,北京100876)

0 引言

随着云计算飞速发展,云安全成为当前云计算研究的重点方向。用户将个人的隐私数据存放到云存储集群中,用户虽然能够在本地对远程云服务器上的数据进行增删改查的操作,但却不能像本地存储一样拥有对数据的完全控制权限。当用户删除云端数据后,并不能彻底删除用户数据,导致用户数据残留。如果用户的数据涉及用户隐私或机密,残留数据留在云端服务器的介质中,一旦用户的残留数据被恶意恢复利用,将损害用户利益甚至造成更加重大的危害[1]。

针对云存储服务器端用户数据删除后的数据残留问题,提出通过修改Hadoop源码中的Block删除行为,即在Block删除之前先进行数据覆写,达到销毁数据残留目的主动销毁机制(Active Data Deletion,ADD)。经过仿真验证,修改后的Hadoop系统可以有效地覆写Block文件,达到彻底销毁原始数据的目标。同时针对不同的安全需求采用不同复杂度的覆写算法,并测试不同复杂度的覆写算法的性能。

1 HDFS数据残留问题分析

Hadoop是目前使用最为广泛的云计算系统,大部分商用云计算系统都是基于Hadoop的二次开发。Hadoop分布式文件系统HDFS(Hadoop Distributed File System)作为Hadoop的核心模块,为系统所有业务提供分布式存储服务。设计目的是提供一个高容错,且能部署在廉价硬件上的分布式系统;同时,能支持高吞吐量,适合大规模数据集应用[2]。

Hadoop基于Linux系统搭建,一般由一个主节点和若干个从节点组成。HDFS主要由Name Node(名字节点)和DataNode(数据节点)组成,文件存储时,Name Node将其分成若干个数据块Block作为本地文件存储在不同的DataNode上。当文件删除时,DataNode删除操作调用Java的File类对象的f.delete方法删除。因此HDFS的文件删除机制和普通本地Linux操作系统下的文件删除机制相同,并不会在对数据执行删除操作之前对数据块文件进行任何覆写或内容销毁处理[3]。在Linux文件系统中,文件删除操作不会彻底销毁已删除数据,在新的内容写入磁盘之前,残留的数据内容还将继续存储在磁盘中。所以,HDFS中的数据并没有被实际销毁。在云系统的环境下,数据的所有权和控制权分离,用户不能完全掌控自己存储在云端的数据。只要利用数据恢复技术,恶意的用户或云服务提供商都可能恢复普通用户已经删除的数据,存在很大的安全隐患。

搭建一个仿真Hadoop平台,采用远程登录方式访问Hadoop云计算系统,上传图片和文本文件,随后对上传的图片和文本文件进行删除。利用二进制工具Hexedit可查看到相关block文件在磁盘中并未被彻底删除,并且可以恢复。通过仿真实验验证Hadoop分布式文件系统HDFS确实存在数据残留问题,而Hadoop系统对此并未采取任何防范措施。

2 主动销毁方案设计

要完成数据主动销毁的目标,结合数据覆写算法,可选的方案有两种。第一种方案是监控文件索引表,在文件删除后对相应磁盘位置进行数据覆写;第二种方案是在文件删除之前先进行覆写,销毁数据之后再进行删除。

对于第一种方案,通过对磁盘操作的研究和分析,在文件删除后覆写磁盘对应位置是可行的,但是要区分正常删除的文件和需要覆写删除的文件非常困难。在云计算系统中,除用户上传下载的文件以Block的形式存储之外,还有诸多系统文件和其他应该受到保护的文件,如果监控文件索引表,对所有删除文件都进行覆写销毁,此方法不可行。

对于第二种方案,在文件删除之前先进行覆写,只需要找到所有Block的存储位置即可,通过分析和修改Hadoop源码可以找到所有Block的存储位置;另一方面,因为只对Block文件进行覆写,并且由Hadoop自主完成而非节点主机上的其他程序完成覆写,这就避免方案一中可能出现的文件区分的问题。

经过方案比较后,采取方案二作为主动销毁方案的切入点,从用户客户端和云服务器端两方面分析与考虑,提出主动销毁的方案,下面对这两种方案进行分析。

2.1 用户客户端主动销毁

由于用户在客户端无法获取文件在HDFS上的具体存储情况,所以不能像处理本地文件一样操作HDFS中的文件,需要通过Hadoop提供的API进行文件读写处理。

对于文件的写入操作,Hadoop提供create和append方法,分别表示创建和追加文件:create创建一个新的文件,并根据大小分配Block;append在原文件的基础上从末尾追加数据,不可更改原文件中已有的数据。使用create创建与原文件同名的覆写文件覆盖。

在客户端,对用户来说覆写文件确实替换了原有的文件。但事实上,新添加的文件并没有覆盖原来的文件数据。整个过程在Hadoop中可以理解为:首先检测到要创建的新文件与原文件同名,则先对原文件正常删除,再创建新的同名文件,而原文件在磁盘中并未被替换。创建新文件之后,可以看到Block编号已经增加,利用Hexedit也可查看到原磁盘位置存储的数据并没有发生改变,由此可得知,利用Hadoop所提供的API在客户端无法达到修改文件的目的,不能完成数据的主动销毁。

2.2 服务器端主动销毁

通过实践证明无法在客户端完成文件主动销毁,则只有从服务器端入手,分析Hadoop源码得知任何文件的操作的最终对象都是Block,文件删除也不例外。当DataNode接收到删除文件的指令后,先检查文件名验证是否存在,接着从Name Node获取对应的Block信息,包括编号,存储位置等,最后调用Java的File类方法delete删除Block文件。设计思路就是在删除Block之前调用数据覆写算法将文件覆写,在破坏原有的数据后再执行删除操作,就可以完成数据的主动销毁,从而保护数据安全。

基于以上分析,提出的ADD数据主动销毁策略,具体流程如图1所示。

图1 ADD主动销毁流程

当需要删除数据时,Hadoop系统向删除任务函数传递Block参数,ADD主动销毁机制获取到Block相关信息后,打开即将删除的Block文件,调用数据覆写算法覆写后保存并关闭文件,然后返回到删除任务函数,正常执行完删除操作,从而可以破坏原有数据,从而防止用户存留在服务器上的数据被恶意恢复。

3 仿真测试

采用Hadoop对系统进行仿真,仿真的环境为Hadoop-2.6.0版本。仿真测试的过程为:

(1)通过远程登录访问Hadoop集群,上传文件到HDFS中存储。

(2)在DataNode节点使用二进制工具查看磁盘,寻找相应的Block文件信息并作记录。

(3)用户端远程删除上传的文件,再次在DataN-ode节点上使用二进制工具查看磁盘,寻址到记录的相同位置,对比前后的数据是否相同并尝试恢复。

(4)如果相同且能够恢复,则表示覆写失败,主动销毁并没有实现;如果不同则表示覆写成功,尝试恢复为新文件,能恢复但恢复后的文件不能有效辨认信息或根本无法恢复,则表示主动销毁数据成功。

3.1 仿真步骤

仿真步骤如下:

(1)修改Hadoop源代码,将作者编写的主动数据销毁算法集成到Hadoop代码中,利用修改并编译后的安装包重新搭建部署Hadoop集群。

(2)上传测试图片文件pngtest.png到HDFS,并检查和记录blk编号。

(3)在slave1节点使用Hexedit查看磁盘信息,寻找到 blk_1073741835,其存储位置起始于 sector:26792072,结束于26792140,如图2所示。

图2 blk对应磁盘位置信息

(4)执行删除指令,再次查看磁盘信息,除了删除的日志信息外,无法找到之前的文件内容信息,根据日志可以看出,覆写算法已经被调用,说明覆写成功,如图3所示。

图3 blk删除日志

(5)上传文本文件 txttest.txt,重复(1)~(4)步骤,再次验证覆写成功。

3.2 仿真结果与有效性分析

通过上述仿真步骤可以看出,优化后的Hadoop系统实现了对block文件的覆写和删除操作,并且检查磁盘数据并未发现残留,证明整个数据覆写删除机制的有效性,算法可以满足普通用户的隐私安全需要。

图4为测试文本文件在未删除之前,覆写前后的文件内容比较。

图4 文件覆写前后对比

仿真实验仅对数据进行一次覆写,对安全级别要求更高的数据,可以采用多次覆写的方法以达到更高安全级别要求。目前比较常用的全零覆写、DOD5220.22-M、DOD5220.22-M7等算法等都是应用广泛和成熟的算法。这些成熟的数据覆写算法经过检验,可以保证数据销毁的效果。

3.3 性能分析

为测试本算法的性能。覆写相同大小的文本文件采取全零覆写、随机一次性覆写、DOD5220.22-M和DOD5220.22-M7等4种覆写算法进行性能测试。实验环境CPU型号为Intel Core i3-4150@3.50 GHz双核,硬盘为希捷ST1000DM003 1ER162 1TB/7200转/分硬盘,文本文件大小为71586816 Byte约为70 MB。具体性能测试的信息如图5所示。

图5 覆写算法性能分析

由图5可以看出,全零覆写所需时间最短,DOD5220.22-M7所需时间越长,即随着覆写算法的复杂度增加,覆写时间相应增加。另一方面,数据量越大,各算法所需的时间差距也就越大。

在实际应用环境中,不同数据块Block分布在不同DataNode上,在对一个文件进行覆写销毁时,不同DataNode对所相关的Block并行覆写效率更高。例如一个10 GB大文件,除去备份大约有160个Block分布在不同的DataNode上,假设集群中有10个DataNode节点,那么每个节点平均有16个Block。采用全零覆写算法覆写销毁这个10 GB的文件,按照10个节点并行覆写,那么覆写的时间消耗为23到24秒。上述时间是在实验环境下的估算,在真实的大集群环境中速度显然会更快,而且采用其他如多线程等并行技术,还可以进一步提高覆写操作的性能。

4 结束语

云存储的特点是存储即服务,但普通用户无法接触和完全控制存储在云端的个人数据,一旦用户存储在云端的数据删除后被恶意恢复利用,将侵犯用户的隐私。针对云存储系统的数据残留问题,改进原云计算系统的删除行为,提出一种数据主动销毁的策略——ADD机制,即对云端数据块采取“先覆写后删除”策略彻底删除,并基于Hadoop的分布式文件系统HDFS按照此机制修改了源代码,搭建全分布式集群测试了策略的确是有效且可行的;在此之后,对比了不同数据覆写算法的性能,分析出在实际应用中,文中提出的ADD机制也是有效且可行的。

[1] 潘富斌.基于Hadoop的安全云存储系统研究与实现[D].成都:电子科技大学,2013.

[2] Garry Turkington.张治起,译.Hadoop基础教程(Hadoop beginner's guide)[M].北京:人民邮电出版社,2014.

[3] 邓谦.基于Hadoop的云计算安全机制研究[D].南京:南京邮电大学,2013.

[4] 李宁,王东亮等.Hadoop云计算一体机实践指南[M].北京:机械工业出版社,2013.

[5] 马媛.基于Hadoop的云计算平台安全机制研究[J].信息安全与通信保密,2012,(6).

[6] 张逢吉吉,陈进,陈海波,等.云计算中的数据隐私性保护与自我销毁[J].计算机研究与发展,2011.48(7):1155-1167.

[7] 成静静.基于Hadoop的分布式云计算/云存储方案的研究与设计[J].数据通信,2012,(5):14-16.

[8] Wang L,Von laszewski g,Younge a,etal.Cloud computing:a perspective study[J].New Generation Computing,2010,28(2):137-146.

[9] LV Chengtong,LI Qing,LEI Zhou,et al.PaaS:a revolution for information technology platforms[C].ICENT 2010-2010 International Conference on Educational and Network Technology,2010:346-349.

[10] LEE B S,YAN Shixing,MA Ding,et al.Aggregating IaaS service[C].Proceedings-2011 Annual SRII Global Conference,SRII 2011,2011:335-338.

猜你喜欢

磁盘客户端节点
CM节点控制在船舶上的应用
叶腊石聚合成型及其旋转磁盘的制作方法
基于AutoCAD的门窗节点图快速构建
它的好 它的坏 详解动态磁盘
概念格的一种并行构造算法
解决Windows磁盘签名冲突
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路