没有合适的资源?快使用搜索试试~ 我知道了~
BlockHDFS:区块链集成的Hadoop分布式文件系统,确保安全追溯
区块链:研究与应用2(2021)100032BlockHDFS:区块链集成的Hadoop分布式文件系统,用于安全的出处可追溯性赛·S·维拉吉·莫图库里加油,雷扎·M。Parizia,Qi Zhangb,Kim-Kwang Raymond Chooc,*a计算与软件工程学院,Kennesaw State University,Kennesaw,GA,30144,USAbIBM Thomas J. Research Center,Yorktown Heights,NY,10598,USAc德克萨斯大学圣安东尼奥分校信息系统与网络安全系,美国,78249A R T I C L E I N F O保留字:大数据Hadoop区块链Hyperledger FabricHadoop分布式文件系统(HDFS)可追溯性安全隐私A B S T R A C THadoop分布式文件系统(HDFS)是在Hadoop等框架的大数据分析中广泛使用的分布式文件系统之一HDFS允许使用低成本的商品硬件管理大量数据。然而,HDFS中的漏洞可以被用于恶意活动。这强调了确保强大的安全性以促进Hadoop中的文件共享以及具有可信机制来检查共享文件的真实性的重要性。 这是本文的重点,我们的目标是使用启用区块链的方法(以下称为BlockHDFS)来提高HDFS的安全性。具体来说,拟议的BlockHDFS使用企业级Hyperledger Fabric平台来利用文件的元数据,在HDFS中构建可信的数据安全性和可追溯性。1. 介绍Hadoop分布式文件系统(HDFS)[1,2]是处理大数据应用的组织中使用最广泛的文件系统之一,主要用于数据的批处理。它以其低延迟的高吞吐量数据可访问性HDFS有几个替代品,如Ceph [3],GPFS [4]和Hydra [5]。 与其他文件系统不同,HDFS由Apache软件基金会开发,其目标是以分布式方式存储大型数据集,以解决硬件故障并执行Map Reduce[6]操作进行数据分析。MapReduce是HDFS中预先构建的框架 用户可以使用MapReduce中的一个或多个文件来映射和减少(排序)文件中的数据,以获得所需的输出。然而,需要编写Java代码片段来执行MapReduce操作。MapReduce考虑输入目录中的文件,并且可以将所需的输出写入输出目录中 让HDFS如此受欢迎的原因可能是它的架构。HDFS类似于UNIX文件系统架构,但数据分布在几个硬盘上,可以在商用硬件上运行,使用和维护成本更低。 Apache Hadoop是一个运行在HDFS之上的开源框架。作为一个分布式文件系统,Apache Hadoop是有效的。权从一开始,Hadoop的动机就是构建一个具有故障安全特性的高吞吐量系统。上传文件到HDFS有两种方法,即:通过命令行和使用API。 如果需要远程连接,可以使用SSH访问这两种方式,并且命令行和API具有用于不同文件操作的多个命令。HDFS支持创建、追加、打开、删除、重命名、状态和列表功能。 一旦文件上传到HDFS,各种生态系统框架(例如,Spark [7],Hive [8],HBase [9])可以用来执行所需的数据分析。这些生态系统应用程序通常使用Hadoop主API来执行来自HDFS和去往HDFS的数据受当代应用领域中区块链技术独特的安全设计和防篡改特性的启发[10- 14],我们提出了一种名为BlockHDFS的新方法,该方法通过利用存储在防篡改块中的文件元数据将区块链功能纳入HDFS。在我们的工作中,我们使用Hyperledger Fabric [15] 从HDFS获 取 数 据 , 并 将 其 作 为 资 产 存 储 在Hyperledger中。Hyperledger Fabric是一个许可的区块链,具有支持智能合约的分布式账本[16]。 只有经过身份验证的用户才能看到Hyperledger中的数据,这与其他公共区块链(如以太坊、比特币或门罗币)不同。使用Hyperledger* 通讯作者。电子邮件地址:vmothuku@students.kennesaw.edu(V. Mothukuri),scheerla@students.kennesaw.edu(S.S. Cheerla),rparizi1@kennesaw.edu(R.M.Parizi),q. zhang@ibm.com(Q. Zhang),raymond. fulbrightmail.org(K.- K.R. Choo)。https://doi.org/10.1016/j.bcra.2021.100032接收日期:2021年5月27日;接收日期:2021年9月14日;接受日期:2021年10月6日2096-7209/©2021作者。出版社:Elsevier B.V.代表浙江大学出版社。 这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表区块链:研究与应用杂志主页:www.journals.elsevier.com/blockchain-research-and-applicationsV. Mothukuri等人区块链:研究与应用2(2021)1000322Fabric还需要更少的计算能力来运行,因为所有内容都驻留在适合组织和企业需求的专用业务网络上。因此,这消除了区块链挖掘的必要性将文件的元数据存储到区块链中几乎可以在每个文件系统上实现,因为每个文件系统都需要维护元数据。 HDFS使用CRC32或CRC32C,一种基于Castagnoli多项式算法的32位循环冗余校验来生成文件的哈希。但是,当通过Hadoop API访问相同的散列时,会产生MD5版本的散列,即MD5-of-MD5-of-CRC 32 C。 这个哈希值可以用来检查文件在存储到HDFS后是否有变化。据我们所知,我们的工作是研究界将区块链集成到HDFS中以提高数据安全性和可信可追溯性的首次尝试之一。总的来说,我们的结果表明对HDFS中文件的安全性和可追溯性产生了积极的影响,这使得所提出的方法很有前途和值得注意。本文其余部分的结构如下。第2节向读者介绍了所需的背景,并概述了相 关 的 方 法 。 在 第 3 节 中 , 介 绍 了 威 胁 模 型 第 4 节 介 绍 了 提 议 的BlockHDFS。第五部分讨论了实验研究和结果。最后,第6节给出了结论性意见。2. 背景和相关工作2.1. Hadoop分布式文件系统(HDFS)HDFS [2]是一种用于并行大数据处理的分布式文件系统,使用主从架构来调度任务并管理不同计算节点之间的数据传输在HDFS中,主节点称为NameNode,从节点称为DataNode。 多个NameNode可用于通过主动-被动关系维护高可用性。NameNodes负责执行块操作,它们存储与文件系统相关的元数据,例如文件的每个块的位置。HDFS已被分布式数据处理框架广泛使用,如Map Reduce [6],以执行有效的大数据分析工作。 MapReduce作业由Map任务和reduce任务组成,Map任务并行地对不同的数据块执行相同的map操作,reduce任务使用shuffing和reducing函数来生成所需的输出。 不同的MapReduce作业可以共享同一个机器集群,并由作业跟踪器协调。HDFS可以在具有良好计算能力的商用硬件上实现。HDFS以块的形式维护文件的副本这些块存在于不同的DataNode中,以便在DataNode崩溃的情况下恢复文件,这使得HDFS具有高度容错性。在HDFS上执行的读写操作由NameNodes和DataNode共同管理。此外,NameNodes维护所有操作的日志,并将它们存储在检查点的映像文件中。检查点是将所有日志合并到一个名为fsImage的文件中的时间。当NameNode在关闭后重新打开时,所有关于块的信息都从fsImage文件加载。2.2. Hyperledger FabricHyperledger Fabric [15]是一个开源和开放式管理的合作项目,旨在为企业推进跨行业区块链技术,LinuX基金会托管它。HyperledgerFabric是一个区块链框架实现,也是Hyperledger项目之一,旨在作为开发具有适合企业级解决方案的模块化架构的应用程序/解决方案的基础Hyperledger Fabric的主要组件简要描述如下。2.2.1. 分布式账本Fabric账本有两个部分:状态数据和交易数据。账本是所有状态转换的有序的、防篡改的记录状态转换是参与方提交的链码调用(“事务”)的结果。每笔交易都会产生一组在创建、更新或删除时提交到分类帐的资产键值对 每个事务都有一个唯一的ID,它的时间戳,并包含每个认可对等体的签名,并提交给订购服务。账本由一个区块链组成,用于存储块中不可变的序列记录,以及一个状态数据库来维护当前的Fabric状态。每个频道有一个分类帐 每个peer都为他们所属的每个通道维护一个账本副本。2.2.2. 节点“节点”的概念在像以太坊这样的公共区块链中,任何人都可以通过下载节点客户端软件作为节点参与节点成为区块链网络中的通信端点点对点协议用于在网络中的不同节点之间保持分布式账本同步在许可区块链中,例如Hyperledger Fabric,节点需要有效的证书才能与网络通信,其中参与者的身份与节点的身份不同2.2.3. 信道成员可以参与多个Hyperledger区块链网络。每个网络中的交易是隔离的,这是通过所谓的通道来实现的 通道是一种数据划分机制,用于控制仅对涉众可见的事务。网络上的非注册成员不允许访问该频道,也不会看到该频道上的交易。2.3. 相关工作文献中有几部作品[18HDFS的主要目的是加速大数据处理。因此,在早期阶段,HDFS中嵌入的安全功能很少。 后来,创建了HDFS身份验证协议[21]来改进HDFS身份验证。例如,HDFS开始支持ACL(访问控制列表)用于文件授权。它还支持系统安全性审计[22],但是,缺乏使这种审计易于阅读或统一的格式。一些运行在HDFS上的生态系统,如Apache NiFi [23],支持更高效的系统审计,但没有直接的方法来以标准格式获取审计日志HDFS中的主要安全功能是加密,HDFS与其客户端之间发送的大部分数据都是通过RPC(远程过程调用)完成的,RPC使用SASL(简单身份验证和安全层)RPC进行加密。HDFS中有两种类型的数据传输传输中的数据是指从客户端传输到HDFS的数据,如上所述,它可以使用RPC进行加密。然而,静态数据(指存储在HDFS中的数据)仍然处于高风险之中。很少有例如,Project Rhino [24]旨在帮助加密静态数据,但这种技术需要调整HDFS的组件,例如配置文件,添加新属性,并在系统范围内安装时更改端口。与Rhino [24]提出的方法正交,我们的解决方案旨在透明地提供不可变的日志集这种方法不需要对用户应用程序代码进行任何更改 虽然这种不可变的日志可以作为可信的信息源,帮助用户在HDFS中的数据受到损害时调查出了什么问题。3. 威胁模型许多黑客瞄准HDFS主要是因为它所持有的数据HDFS中的数据主要是包含大量信息的组织数据,如销售、员工和分析市场数据。图1显示了我们在HDFS中提出的威胁模型。图中的虚线代表信任边界。 虚线左侧是连接到HDFS的用户,虚线右侧是连接到HDFS的用户。V. Mothukuri等人区块链:研究与应用2(2021)1000323¼行,通过API组件。 此类API组件的示例可以是WebHDFS [25]或HttpFS[26],它们负责所有数据检索和修改。由于SASL RPC等方法,上传到HDFS的数据在到达HDFS之前很难被更改。具体来说,Hadoop使用开放端口将API投射到Internet或网络。每个开放的港口都有自己的目的。例如,开放端口23用于telnet服务。 黑客可以利用这些开放端口来执行漏洞扫描,最终使他们能够非法访问DataNode中的数据。然而,对于HDFS上的数据,黑客可以利用API并修改DataNode内的数据在大多数情况下,攻击者使用NMap [27]和Zen Map [28]等软件执行足迹,以获取目标网络的IP地址,然后执行端口扫描以查找该网络上机器的操作系统,运行服务或系统架构等信息。由于在后台运行进程的开放端口将始终侦听网络中其他进程的输入,因此黑客将找到这些进程并利用它们。例如,WebHDFS为NameNode使用默认端口50070,组织默认使用此端口。获得此类端口访问权限的恶意用户可以轻松修改DataNode内的数据,使用HDFS的用户名为了解决此类攻击,我们的解决方案利用区块链为HDFS创建了一组不可变的日志,当HDFS出现问题时,这些日志可以作为可信的信息来源进行有效的调查。 尽管我们的解决方案不能完全阻止黑客通过开放端口攻击HDFS数据,但它提供了一种永久和防篡改的方式记录数据修改的方法,这有助于指导调查人员识别黑客。4. 区块链HDFS在本节中,我们将介绍我们提出的名为BlockHDFS的解决方案,该解决方案通过将HDFS中的文件元数据存储在区块链中,以用户透明的方式4.1. BlockHDFS架构图 2提出了BlockHDFS的拟议架构,该架构由三个组件组成:包括NameNodes和DataNodes的HDFS集群,诸如Hyperledger Fabric的许可区块链网络,以及充当连接HDFS集群和区块链网络的桥梁的NodeJS客户端。BlockHDFS以用户透明的方式设计,因此它与传统HDFS共享许多功能和操作例如,用户通过使用API或命令行将文件加载到BlockHDFS,并且当数据处于静止状态时,文件传输使用DEK加密[29]进行保护。驻留在DataNode中的文件然后基于预设的复制因子复制到许多其他DataNode在我们的设计中,Hyperledger Fabric [30]用于存储文件元数据,其中包括但不限于哈希值,访问时间和文件到区块链中的修改时间,而HDFS仍然管理文件本身。此外,NodeJS客户端使用WebHDFS REST API定期从HDFS中提取文件元数据,然后将其存储在Fig. 1. 威胁模型的数据流程图。Hyperledger Fabric。 用户可以随时查询Hyperledger Fabric以了解给定文件发生了什么,因为所有相关信息都存储在区块链分类账上,这提供了不可变和可信的可追溯性。值得注意的是,HyperledgerFabric中的客户端仅用于存储文件数据,也称为元数据,包括访问时间,修改时间和散列值-注意,当前架构允许添加此处列出的元数据之外的多个元数据。 文件本身仍然由HDFS本身管理。文件元数据由WebHDFS REST API提供中间的客户端负责从REST API获取这三个值,并将它们存储在Hyperledger Fabric中。用户可以随时对Hyperledger Fabric进行查询,以读取给定文件发生的更改,因为所有信息都以安全交易的形式存储在区块链上,从而提高了安全性和可追溯性。在BlockHDFS中,区块链负责存储文件的元数据。 将HDFS文件元数据存储到区块链中所产生的开销来自两个方面。首先,WebHDFS REST API需要从HDFS读取文件的元数据,例如哈希值。从HDFS检索文件元数据可能会引入一些延迟。然而,正如实验所示,这种延迟并不显著。其次,它需要额外的操作来将元数据存储到区块链中。然而,由于元数据的大小通常很小,这样的开销既不会为HDFS操作带来高延迟,也不需要在区块链上存储大量数据。Hyperledger客户端组件用于在HyperledgerFabric网络之间进行通信,并实现与账本的交互当文件被添加到文件系统时,客户端将使用LIST A DIRECTORY 操作获取文件名,并使用WebHDFS API从HDFS中检索元数据,例如文件的哈希值、访问时间和修改时间 然后使用NodeJS客户端将JSON数据添加到Hyperledger。NodeJS客户端将在未能将元数据写入区块链时通知用户。接下来,我们将描述BlockHDFS的主要组件及其在实现我们的安全目标方面的功能。4.1.1. 用户在BlockHDFS中,用户被认为是管理员或组织的员工之一,他们已经被赋予了权限和访问HDFS的权限。 用户可以根据ACL规则添加、修改和删除HDFS中的数据。例如,使用WebHDFS API,用户可以向HDFS添加文件,如下所示:curl-i-X PUT“http://HOST>:/webhdfs/v1/?操作CREATE”要添加、修改或删除文件,用户将不会意识到Hyperledger Fabric的存在所有的文件操作都只使用Hadoop的API来用户不会直接与Hyperledger交互4.1.2. WebHDFS REST API此REST API可用于执行文件操作并查找有关HDFS中文件的如果在本地服务器上通过禁用身份验证或关闭安全模式来关闭安全性,则网络上的任何人都可以执行REST API操作而无需身份验证。如果安全性被打开,则身份验证由代理人负责[21]。如果NodeJS客户端托管在远程服务器而不是本地Hadoop服务器上,则需要使用SSH [31]进行身份验证才能访问Hadoop API4.1.3. 文件校验和HDFS使用CRC32哈希算法[32],而WebHDFS REST API产生的校验和是CRC32的MD5当用户将文件上传到HDFS时,她/他应该通过验证HDFS中的校验和是否与她/他本地机器上的校验和匹配来检查文件的真实性即使文件上传是通过加密保护的,V. Mothukuri等人区块链:研究与应用2(2021)1000324图二、 BlockHDFS架构模型。HDFS:Hadoop分布式文件系统。RPC[33],它通常是有益的,以验证文件是否正确上传没有任何错误。因此,这种验证包含在BlockHDFS中,它通过使用以下命令使用REST API获取文件的校验和:curl-i-X PUT“http://HOST>:/webhdfs/v1/?操作¼ GETFILE_KSUM”4.1.4. NodeJS客户端NodeJS客户端是一个应用程序,用于从HDFS获取文件相关的元数据,例如文件的校验和,访问时间和修改时间该应用程序还将从HDFS接收的数据发送到Hyperledger Fabric。实际上,这个应用程序可以用任何支持REST API操作的语言编写,而我们使用的是NodeJS。如果此NodeJS客户端在远程服务器上运行,则需要进行身份验证才能访问WebHDFSREST API服务器。4.1.5. Hyperledger Fabric区块链HyperledgerFabric是一种适用于企业应用程序的许可区块链,需要用户身份验证。在BlockHDFS中,只有HDFS的用户才能访问HyperledgerFabric,这降低了将区块链分类账暴露给未经授权的用户的风险。NodeJS客户端发送的HDFS文件元数据,如文件名、哈希值、访问时间、文件修改时间等,以资产的形式存储在区块链账本中。如果用户怀疑文件出了问题,分类账可以用作不可变和可信的日志来源,这提供了一种简单的方法来跟踪文件随时间发生的情况。4.2. BlockHDFS的实现HDFS和Hyperledger Fabric之间的客户端应用程序在NodeJS中实现。我们使用Hadoop WebHDFSREST API客户端库来支持NodeJS的异步函数,通过启用par-android处理来提高代码的性能和响应能力。 我们正在使用一个名为webhdfs-npm的客户端库,它支持各种文件系统函数。在这里的代码中,我们可以使用异步函数来更快地执行WebHDFSAPI函数,而无需等待其他函数。 当文件上传到HDFS时,NodeJS客户端通过执行LISTDIRECTORY操作,使用WebHDFS REST API检查新文件是否已 上 传 到 HDFS 。 如果 有一 个新 的文件 ,那么 NodeJS客户 端使用GETFILE_KSUM检索该文件的哈希值,并使用GETFILE_STATUS检索该文件的访问时间和修改时间 所有这些数据都是从JSON格式解析的。然后,NodeJS客户端将这些值作为资产写入Hyperledger Fabric。原型中使用了Hyperledger Fabric v1.1和Hadoop v3.1.2开发了一个脚本 来 自 动 执 行 启 动 和 运 行 BlockHDFS 所 需 的 所 有 任 务 。 作 为BlockHDFS如何工作的一个例子,三个不同大小的文件被上传到HDFS。这些文件的MD5哈希值由WebHDFS生成,并使用RESTAPI写入Hyperledger Fabric 。NodeJS 客 户 端 负 责 将 GET 调 用 发 送 到WebHDFS,并将PUT响应发送到Hyper- ledger Fabric。 图 3显示了WebHDFS中的JSON数据是什么样的,其中可以看到目录结构以及文件名和其他数据。 这样的数据可以通过向WebHDFS发送LISTDIRECTORY API调用来接收。图 4显示了HDFS中一个文件夹的JSON校验和数据。这部分数据也来自WebHDFS如前所述,文件的元数据在NodeJS客户端的帮助下作为资产发送到Hyperledger Fabric存储在区块链中的这种数据的示例如图所示。五、如果此文件发生更改,NodeJS客户端将添加新的资产以及日期和时间区块链上的这些资产可以被用户用作不可变和可信的日志,以跟踪文件的历史信息。在我们的设计中,NodeJS客户端使用LinuX中名为CRON JOBS[34]的功能定期检查文件更改。 图 5以JSON格式显示了区块链账本中的数据。资产Id字段包含文件的哈希值和修改时间,而value字段包含文件名(注意,哈希值的实际长度被修剪以使其适合图)。5. 评价本节介绍BlockHDFS在性能和安全功能方面的评估结果。5.1. 实验装置我们在一台运行在Oracle VirtualBo X上的UBUNTU操作系统的单机上进 行 了 实 验。 设 置 是 单节点类型,其中有一个NameNode和一个DataNode。使用的硬件规格为Intel i9- 9980 HKCPU@4.8Ghz,16GB RAM 和 350 GB SSD 。 在 实 验 期 间 运 行 的 服 务 HDFS withMapReduce)、Docker、Docker-Compose、NodeJS和HyperledgerFabric。Hadoop安装在独立版本中,而Hyperledger Fabric则使用Docker安装。 对于区块链设置,我们使用了Hyperledger Fabric。具体来说,我们首先创建了一个业务网络,将订购者和对等体设置为1作为实验设置。如果有更多的数据或需要更多的对等点,可以根据需求轻松添加这是一V. Mothukuri等人区块链:研究与应用2(2021)1000325图三. WebHDFS JSON数据。见图4。 WebHDFS校验和数据。私有网络,只有经过身份验证的用户才能管理区块链上的数据。 NodeJS客户端充当中介,从WebHDFS获取数据并将其发送到Fabric Ledger。 对于Hadoop,WebHDFS REST API是一个全局客户端,这意味着JSON数据是相同的,而不管NameNodes和DataNodes的数量如何。我们使用了不同类型的文件大小,从1 MB到100 GB不等,例如.t X t、.csv和.dat文件。5.2. 性能为了比较HDFS之间的性能差异(即,基线场景)和BlockHDFS,我们首先使用MapReduce运行Wordcount程序,输入数据为5.5 GB,而没有运行区块链相关的服务然后,我们在BlockHDFS中运行了相同的MapReduce程序,其中Docker,Hyperledger Fabric等其他服务与Hadoop一起运行。该评价的结果如图6所示。可以观察到,BlockHDFS在执行时间方面给Wordcount作业带来的性能开销很我们还测量了实验期间的内存利用率,结果显示在HDFS中运行Wordcount消耗5.46 GB,而在BlockHDFS中消耗6.16 GB,这是一个可以接受的安全权衡。我们测量了BlockHDFS在不同负载下NodeJS客户端的性能我们上传了6个文件到BlockHDFS,大小从1 MB到100 GB不等这里测量的执行时间包括NodeJS客户端从WebHDFS获取文件元数据并将其发送到Hyperledger Fabric客户端所花费的总时间。NodeJS客户端的性能与在BlockHDFS中运行和不运行Wordcount作业进行了比较,结果见图。第七章在上图中,无负载情况意味着没有MapReduce作业在BlockHDFS上运行,而有负载情况下有Word-count作业正在运行。 与没有加载的情况相比,WebHDFS在有加载的情况下需要更多的时间来生成哈希值,特别是对于较大的文件,即,100 GB文件这是因为在映射过程中,需要更多的磁盘使用来读取输入数据文件,同时,WebHDFS试图从BlockHDFS读取100 GB的文件,这给磁盘带来了很大的压力,从而增加了文件的读取时间。在BlockHDFS中,NodeJS客户端定期提取文件元数据图五. 在区块链中归档数据。图第六章 E XHDFS(Hadoop分布式文件系统)和BlockHDFS中Wordcount的计算时间。V. Mothukuri等人区块链:研究与应用2(2021)1000326见图7。在BlockHDFS(Hadoop分布式文件系统)中运行和不运行Wordcount的NodeJS客户端执行时间。从HDFS 我们有兴趣了解NodeJS客户端的运行频率如何影响同一集群中运行的作业的性能。因此,在这组实验中,我们分别测量了NodeJS客户端每1秒、3秒和5秒运行一次时Wordcount的执行时间图8给出了Wordcount程序在每个频率下的MapReduce执行时间的结果。 从图中可以看出,Map任务在1s频率下的执行时间高于其他两种情况。这是因为当NodeJS在1秒频率下运行时,WebHDFS尝试读取文件的频率比NodeJS在3秒频率和5秒频率下运行时更但是减少的任务时间随着执行频率的增加而逐渐增加。这是因为,如前所述,客户端仅在当前执行完全完成时才再次执行。因此,即使频率设置为1 s,这是试图读取更多的文件,它并没有占用更多的RAM,因为WebHDFS需要时间来读取文件,反之亦然。在实验中,我们发现将执行频率设置为1 s并没有产生更好的结果,因为NodeJS客户端会使用更多的磁盘NodeJS客户端的每次执行大约需要3秒,见图8。在不同的NodeJS客户端执行频率下,BlockHDFS(Hadoop分布式文件系统)中Wordcount的平均时间。NodeJS客户端在1秒后是不可行的。因此,在执行之间使用超过5秒的执行频率是合理的。5.3. 安全影响BlockHDFS的创建是为了通过将相关元数据记录到区块链中来使HDFS更加安全。通过API复制HDFS是一种正常的做法,但它可以通过许多方式被黑客攻击,例如逆向工程[35],中间人攻击[36],用户欺骗[37]和会话重放[38]。一个具体的攻击是DemonBot,它可以访问HDFS中的远程代码EX代理(RCE) 让我们假设黑客已经获得了访问HDFS集群的权限,并修改了其中的文件。 为了调查HDFS中的文件发生了什么,目前,管理员只能从最近的活动或文件的最后一次更改中获取文件元数据,例如访问时间和修改时间,而不是可信的完整日志。如果文件在一段时间内发生快速变化,这将不足以或不可行进行监测。此外,这样的元数据也位于HDFS中,可能已经受到损害,因此使其完全不可靠。为了克服这些问题,我们的解决方案提供了一种透明,可靠和低成本的方法来捕获HDFS文件的历史信息并将其记录在区块链中由于区块链上的数据是不可变的,这些更改以不可否认的方式永久记录,从而提供了一个出色的监管链HDFS管理员可以通过NodeJS客户端检查这些更改对指定文件夹内文件的任何更改都可以记录到区块链中。通过这种方式,BlockHDFS提供了一种方便和可信的方式来记录文件更改,当管理员想要检查文件真实性时,这使得调查工作更容易如果我们考虑Hadoop文件系统的攻击场景,提出的方法BlockHDFS中,攻击者的入侵细节被详细记录在区块链分类账上。 这是一种回溯,可以在攻击和未经授权的更改之前恢复文件系统。此外,由于账本无法更改,攻击者无法进行任何更改来掩盖攻击的痕迹。BlockHDFS的管理员可以访问日志跟踪,回滚更改,并根据攻击的影响设计恢复策略。5.4. 当前限制虽然BlockHDFS具有通用且高度可扩展的架构,但其当前的实现具有一些限制。首先,可以在HDFS中创建文件夹和子文件夹来存储文件。LISTDIRECTORY在HDFS的深度仅为1,这意味着WebHDFS客户端仅读取文件夹顶层内的文件因此,子文件夹中的所有文件都将被忽略。这是因为没有递归的方法来列出文件夹的子文件夹中的文件名。如果没有文件名,BlockHDFS的当前实现就无法将请求传递给REST API来计算哈希和其他所需的参数。其次,当前的NodeJs客户端负责从WebHDFS获取数据并将其发送到Hyperledger fabricledger,它被设置为定期执行一段时间。然后,当文件值的数据(如修改时间、哈希和访问时间)发生变化时,超级账本会创建一个新的资产。在现场生产版本中,NodeJs客户端应该实时工作,而不是通过直接集成到Hadoop中来定期执行,这是我们未来工作的一部分。6. 结论和今后的工作将区块链与分布式文件系统(如HDFS)集成可以潜在地提高安全性和可追溯性。 在本文的上下文中,Hadoop的原始设计更适合文件处理,而不是安全设计。因此,在本文中,我们提出了一种新的方法来引入区块链(更具体地说,超级账本),以增强HDFS生态系统的安全性。在当前V. Mothukuri等人区块链:研究与应用2(2021)1000327在 实 现 中 , 我 们 只 向 区 块 链 添 加 了 最 少 的 元 数 据 , 但 是 使 用BlockHDFS,人们可以轻松地添加更多适合其应用需求的功能。 对于未来的工作,BlockHDFS可以扩展为与文件系统实时工作,并在具有多个节点的安全分类账中跟踪HDFS的NameNode和DataNodes之间的所有数据。竞合利益作者声明,他们没有已知的竞争性经济利益或个人关系,可能会影响本文报告的工作。引用[1] Apache hadoop,URL,http://hadoop.apache.org,2006年。[2] K. Shvachko,H. Kuang,S.拉迪亚河Chansler,Hadoop分布式文件系统,2010年IEEE第26届大容量存储系统和技术研讨会(MSST); 2010年5月3日至7日;美国内华达州Incline Village,美国新泽西州Piscataway,IEEE,2010年,pp. 1比10[3] S.A. Weil,S.A.Brandt,E.L.米勒,D.D.E.隆角,澳-地Maltzahn,Ceph:a scalable,high-performance distributedfile system,in:Proceedings of the 7th SymposiumonOperating Systems Design and Implementation,OSDI'06; 6 - 8 Nov 2006;Seattle,WA,USA,USENIX Association,Berkeley,CA,USA,2006,pp. 307- 320[4] F.施穆克河Haskin,Gpfs:a shared-diskfile system for large computing clusters,in:Proceedings of the 1st USENIX Conference on File and Storage Technologies,FAST '02; 28 - 30 Jan 2002; Monterey,CA,USA,USENIX Association,Berkeley,CA,USA,2002.[5] C.温古雷亚努湾Atkin,A. Aranya等人,HydraFS:用于hydrastor内容可寻址存储系统的高吞吐量文件系统,见:第八届USENIX文件和存储技术会议论文集,FAST'10;2010年2月23日至26日;美国加利福尼亚州圣何塞,USENIX协会,美国加利福尼亚州伯克利,2010年,第100页。 225- 239[6] J. Dean,S. Ghemawat,Mapreduce:简化大型集群上的数据处理,Commun。ACM 51(1)(2008)107- 113。[7] M.扎哈里亚Xin,P. Wendell,T.达斯,M。Armbrust,A.戴夫,X。Meng,J. 罗森S. Venkataraman,M.J. Franklin等人,Apache Spark:一个用于大数据处理的统一引擎,Commun。ACM 59(11)(2016)56- 65。[8] Apache hive(2013).网址https://hive.apache.org/。[9] M.N. Vora,Hadoop-hbase for large-scale data,in:Proceedings of 2011InternationalConference on Computer Science and Network Technology; 24- 26Dec 2011; Harbin,China,IEEE,Piscataway,NJ,USA,2011,pp.601- 605[10] T. Alladi,V. Chamola,R.M. Parizi,K.R. Choo,区块链在工业领域的4.0和工业物联网:综述,IEEE Access 7(2019)176935doi.org/10.1109/ACCESS.2019.2956748[11] E. Nyaletey,R.M.帕里兹角Zhang,K.- K.R. Choo,Blockipfs-支持区块链的星际文件系统,用于取证和可信数据可追溯性,在:2019年IEEE区块链国际会议(IEEEBlockchain-2019); 2019年7月14日至17日;美国佐治亚州亚特兰大,IEEE,新泽西州皮斯卡塔韦,美国,2019年,00012。[12] A. Yazdinejad,R.M.帕里齐A. Dehghantanha,K.- K.R. Choo,P4-to-blockchain:用于软件定义网络的安全区块链数据包解析器,Comput。安全性88(2020),101629,https://doi.org/10.1016/j.cose.2019.101629。[13] A. Yazdinejad,R.M.帕里齐A. Dehghantanha,K.R. Choo,基于SDN的5G网络中具有有效隐私保护的区块链认证切换,IEEE Trans.Netw。Sci. Eng. 8(2)(2019)1120https://doi.org/-1132,www.example.com10.1109/TNSE.2019.2937481。[14] A. Yazdinejad,R.M.帕里齐A.德汉坦哈Karimipour,G. 斯利瓦斯塔瓦,M. Aledhari,使无人机在物联网中具有分散的基于区块链
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- GO婚礼设计创业计划:技术驱动的婚庆服务
- 微信行业发展现状及未来发展趋势分析
- 信息技术在教育中的融合与应用策略
- 微信小程序设计规范:友好、清晰的用户体验指南
- 联鼎医疗:三级甲等医院全面容灾备份方案设计
- 构建数据指标体系:电商、社区、金融APP案例分析
- 信息技术:六年级学生制作多媒体配乐古诗教程
- 六年级学生PowerPoint音乐动画实战:制作配乐古诗演示
- 信息技术教学设计:特点与策略
- Word中制作课程表:信息技术教学设计
- Word教学:制作课程表,掌握表格基础知识
- 信息技术教研活动年度总结与成果
- 香格里拉旅游网设计解读:机遇与挑战并存
- 助理电子商务师模拟试题:设计与技术详解
- 计算机网络技术专业教学资源库建设与深圳IT产业结合
- 微信小程序开发:网络与媒体API详解
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功