如何使用区块链传播VIRUSES?

分布式系统在恶意软件部署中的应用研究

自2017年以来,我一直在区块链世界。我想到的一个问题(作为2017年的新手)是

像比特币一样的区块链是公开的,对吗?有数千个节点,向网络广播消息……对于任何黑客来说,这是一个非常有希望的情况。我们可以利用这些分布式系统来感染整个网络吗?

几个月后,在了解了这些系统如何工作之后,我终于开始得到答案了。

在本文中,我们将看到:

  • 为什么难以感染区块链本身?
  • 我们可以使用分布式系统来存储恶意软件吗?
  • 我们如何使用分布式系统(如IPFS和以太坊Swarm)传播恶意软件的实际示例。

让我们开始吧这将是一个有趣的旅程……

为什么难以感染区块链?

对于我们的例子,我们将针对比特币和以太坊。

与所有区块链一样,比特币/以太坊网络中的节点与其他节点通信并执行代码以验证和生成事务/块。

现在,为了使恶意软件传播并感染区块链,我们必须这样做

  • 第1步:在交易中发送恶意软件
  • 第2步:利用比特币客户端软件中的错误

这似乎很简单,但这两个步骤都有问题。

步骤1的问题:我们可以在事务中发送的数据量非常小。

在比特币的情况下,即使比特币块的最大尺寸也是1MB。因此,事务的大小甚至更小(~80字节)。

类似地,对于以太坊,您可以限制块的大/复(块gasLimit)。因此,以太坊也对交易规模有限制。

所有区块链都是如此。

步骤2的问题:当我们收到恶意负载时,我们几乎无能为力。

  • 交易通常以固定格式编写。许多区块链客户端不接受任何任意消息。
  • 执行环境(以太坊中的EVM)实际上是限制性的,只允许执行很少类型的指令。此外,即使以太坊支持智能合约并拥有图灵完整性,EVM限制(有限的OP代码和有限的blockgasLimit)使整体环境远离图灵完整性。

如果您想了解更多EVM的工作原理,可以查看一下

深入了解EVM:以太坊如何在后台工作

这适用于大多数区块ChainLink境。

此外,由于客户端代码是公开的,因此它由一个非常大的开发人员社区审查。这使得在客户端中找到可利用漏洞的可能性降低。这并不意味着这是不可能做到的,但与今天为黑客提供更多自由的互联网黑客相比,它很难找到漏洞。

我们可以使用分布式系统来存储恶意软件吗?

好吧,我们看到很难搞乱区块链,但我们并没有停在这里……

https://medium.com/media/b47ae11c3abc1c76b4b409916fa52609/href

感染这些系统很困难,但它们仍然是非常好的有效载荷传递机制。

我们看到,由于交易规模有限,很难在单个交易中打包恶意软件……那么,谁说只需要​​使用一笔交易?

输入K-ary恶意软件。

这些东西并不新鲜。因此,如果您熟悉恶意软件,那么您可能并不感到惊讶。

https://medium.com/media/b684f2eb27275ce3b27bcf3c274a4b1a/href

这些已经从2007年开始在这里,已经感染了很多系统。这个恶意软件是你可以在本文中找到它们的详细研究。我会尽量减少这篇文章的技术性。

这些恶意软件的工作方式是将有效负载分成k个部分,而不是将恶意负载保留为一个实体。每个部分看起来都像一个无辜的可执行文件,并没有产生任何妥协的指示(IOC)。

现在,有两种不同类型的k-ary:

  1. k部分按顺序工作。因此,没有必要同时提供所有部件和活动部件。
  2. k部分并行工作。因此,所有卡盘必须在同一时期内在系统中可用并且活动。

选择取决于您所针对的环境和系统。

为了使攻击更加隐秘,我们还可以对块进行加密。因此,通过这种方式,我们可以分别传递加密的有效负载和密钥(以解密有效负载)。

此外,在执行病毒有效载荷之前,我们可以使用有效载荷的散列来识别网络中是否存在所有部分。

你可能会问,k-ary如何从DLT(分布式分类系统)中受益?

使用DLT有一些优点

  • 关于DLT的数据在很大程度上是不可改变的。这意味着如果我们将我们的恶意软件添加到DLT,那么很难将其关闭,因为这些网络不受任何单一实体的控制。
  • 密码术的固有用途使恶意软件可以轻松验证其块的完整性。由于使用散列(内容寻址)而不是其位置(位置寻址)来引用所有数据,因此它为我们提供了一种更可信的方式来验证块是否已被篡改。

一些实际例子

免责声明:以下演示的技术仅用于教育目的。

要了解上述提议系统的工作原理,我们将在IPFS上进行演示。

首先,我们将使用Keylogger并针对防病毒软件进行检查。然后我们将使用IPFS和Swarm来存储这些有效负载,并查看防病毒软件是否检测到这些块。

我们先下载一个键盘记录器。你可以用这个。现在,请在此处查看防病毒软件。

您可以看到检测到恶意软件。

现在把恶意软件搞得一团糟。

IPFS

您可以从此处下载和设置IPFS。

安装后使用以下命令将恶意软件添加到IPFS。

ipfs添加

您将收到以下输出

您的恶意软件被分块并存储在IPFS上。我整个恶意软件文件的哈希值(如上图所示)

QmNuAxMT9pepjZ26yXEk4T8qXofJrHoe7SxpoHa5WJ3T5x

如果您想了解更多有关其工作原理的信息,可以查看一下。

深入了解IPFS(1/6):初级到高级指南

现在,您可以使用此命令列出块

ipfs ls QmNuAxMT9pepjZ26yXEk4T8qXofJrHoe7SxpoHa5WJ3T5x

这给了我以下输出

这些是分块文件的哈希值。现在我们可以使用每个文件

ipfs得到

当我通过引用它们的哈希来获取块时,我完全确定这些块没有被篡改。

现在,您可以针对防病毒软件检查各个块。你所有的块都会通过测试。

现在我们知道恶意软件的所有部分都可用,我们可以执行我们的键盘记录器。

注意:默认情况下,IPFS不是持久的。如果内容未固定,则垃圾收集器将删除内容。

以太坊Swarm(以太坊的存储层)提供持久存储。所以,它现在可能是一个更好的选择。 Swarm也以非常相似的方式工作。您可以添加恶意软件块并通过其哈希引用来获取它。

谢谢阅读 ;)

学到了什么?按住?说“谢谢”并帮助其他人找到这篇文章。

如果您喜欢内容,请按住拍手按钮它可以帮助我获得曝光率。

关于作者

Vaibhav Saini是麻省理工学院剑桥创新中心Towards区块链的联合创始人。

他是高级区块链开发人员,曾参与多个区块链平台,包括以太坊,Quorum,EOS,Nano,Hashgraph,IOTA等。

他是IIT德里的演讲者,作家和辍学者。

想了解更多?看看我以前的文章。

拍50次并在Twitter上关注我:@vasa_develop

https://medium.com/media/3c851dac986ab6dbb2d1aaa91205a8eb/href

如何使用区块链传播VIRUSES?最初发布于Hacker Noon on Medium,人们通过突出显示和回应这个故事来继续对话。

资讯来源:由0x资讯编译自BITCOININSIDER。版权归作者Anonymous所有,未经许可,不得转载
提示:投资有风险,入市需谨慎,本资讯不作为投资理财建议。请理性投资,切实提高风险防范意识;如有发现的违法犯罪线索,可积极向有关部门举报反映。
你可能还喜欢