区块链攻击向量:最安全技术的漏洞(下) - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

区块链攻击向量:最安全技术的漏洞(下)

walker 技术 2023-02-10 11:00:00
32428
收藏

导语:区块链并不像我们想象的那么安全。

区块链攻击向量:最安全技术的漏洞(上)

3. 智能合约攻击

Apriorit 拥有从事智能合约开发和区块链测试的团队。我们已经积累了丰富的基于以太坊、EOS、NEO平台的智能合约漏洞分析和规避经验。与智能合约相关的主要区块链安全问题涉及源代码、网络虚拟机、智能合约运行时环境以及区块链本身中的错误。让我们看看这些攻击向量中的每一个。

合约源代码漏洞

如果智能合约的源代码存在漏洞,就会对签署合约的各方构成风险。例如,2016 年以太坊合约中发现的错误使其所有者损失了8000 万美元。Solidity 中的一个常见漏洞提供了一种可能性,可以将控制权委托给其他智能合约中不受信任的功能,称为重入攻击。在此攻击期间,合约 A 从合约 B 调用具有未定义行为的函数。反过来,合约 B 可以调用合约 A 的函数并将其用于恶意目的。

虚拟机中的漏洞

以太坊虚拟机 (EVM) 是一种基于分布式堆栈的计算机,其中执行基于以太坊的区块链的所有智能合约。EVM 最常见的漏洞如下:

  • 不可变缺陷——区块链块本质上是不可变的,这意味着智能合约一旦创建,就无法更改。但是,如果智能合约在其代码中包含任何错误,它们也无法修复。网络犯罪分子有可能发现并利用代码漏洞来窃取 Ether 或创建新的分叉,就像DAO 攻击一样。

  • 加密货币在转移过程中丢失——如果以太币被转移到一个没有任何所有者或合同的孤立地址,这是可能的。

  • 访问控制中的错误 ——以太坊智能合约中存在一个遗漏修改器错误,允许黑客访问合约中的敏感功能。

  • 短地址攻击——这是可能的,因为 EVM 可以接受错误填充的参数。黑客可以通过向潜在受害者发送特制地址来利用此漏洞。例如,在 2017 年对Coindash ICO 的一次成功攻击中,对 Coindash 以太坊地址的修改使受害者将他们的以太币发送到黑客的地址。

此外,黑客可以通过应用其他典型的破坏区块链技术的方法来破坏智能合约,包括 DDoS、eclipse 和各种低级别攻击。

然而,Cardano 和 Zilliqa 等较年轻的区块链使用不同的虚拟机:IELE、KEVM 等。这些新的区块链声称在其协议中保证智能合约的安全性。

4.交易验证机制攻击

与金融机构不同,区块链只有在网络中的所有节点都达成一致后才能确认交易。在包含交易的区块被验证之前,该交易被归类为未验证。然而,验证需要一定的时间,这为网络攻击创造了一个完美的载体。

双花是一种利用交易验证机制的常见区块链攻击。区块链上的所有交易都需要用户验证才能被确认为有效,这需要时间。攻击者可以利用这种延迟来获得优势,并诱使系统在多个交易中使用相同的硬币或代币。

image.png

图 2. 双花攻击

以下是基于利用交易发起和确认之间的中间时间的最常见攻击类型。

芬尼袭击

当一笔交易被预挖到一个区块中,并且在该预挖区块被释放到网络之前创建了一个相同的交易,从而使第二个相同的交易无效时,Finney 攻击是可能的。

种族攻击

当攻击者创建两个相互冲突的交易时,就会执行竞态攻击。第一笔交易被发送给受害者,受害者无需等待交易确认即可接受付款(例如发送产品)。同时,将向攻击者返回相同数量的加密货币的冲突交易被广播到网络,最终使第一笔交易无效。

矢量76

Vector76 是之前两次攻击的组合。在这种情况下,恶意矿工创建两个节点,其中一个仅连接到交换节点,另一个连接到区块链网络中连接良好的对等点。之后,矿工创建两笔交易,一笔高价值和一笔低价值。然后,攻击者预挖并从交换服务中扣留一个包含高价值交易的区块。在区块公告之后,攻击者迅速将预挖区块直接发送到交易所服务。它与一些矿工一起将预挖区块视为主链并确认此交易。因此,这种攻击利用了这样一个事实,即网络的一部分看到攻击者已包含在块中的交易,而网络的另一部分看不到该交易。

交易所服务确认大额交易后,攻击者向主网发送小额交易,主网最终拒绝大额交易。结果,攻击者的账户被记入了高价值交易的金额。尽管这种类型的攻击成功的可能性很高,但它并不常见,因为它需要一个托管的电子钱包,该电子钱包在一次确认后接受付款,并需要一个节点来处理传入的交易。

替代历史攻击

另一种历史攻击——也称为区块链重组攻击——即使在多次确认的情况下也可能发生,但需要黑客提供大量的计算能力。在这种情况下,恶意用户向收件人发送交易,同时使用返回相同代币的另一笔交易挖掘替代分叉。例如,即使接收方在 n 次确认后认为交易有效并发送产品,如果攻击者释放更长的链并取回硬币,接收方也可能会损失金钱。

最新的一次区块链重组攻击发生在 2020 年 8 月的Ethereum Classic上,当时一名矿工使用旧软件并在挖矿时暂时无法访问互联网。当两个版本的区块链竞争网络中节点的有效性并导致插入大约 3000 个区块时,重组就发生了。

51% 或多数攻击

当黑客控制了 51% 的网络哈希率并创建一个最终优先于现有分叉的替代分叉时,多数攻击是可能的。这种攻击最初是唯一已知的区块链漏洞,在不久的过去似乎不切实际。然而,至少有五种加密货币——Verge 、 ZenCash、Monacoin、Bitcoin Gold 和 Litecoin Cash——已经遭受了 51% 的攻击。在每一种情况下,网络罪犯都收集了足够的哈希算力来破坏网络并赚取数百万美元。

最近在 2020 年 8 月发生的对以太坊经典 (ETC) 的 51% 攻击导致价值约 560 万美元的 ETC 加密货币被双花。显然,黑客非常了解 ETC 协议,并在四天内设法挖掘了 4,280 个区块,直到平台发现攻击。事件发生仅五天后,ETC 就遭遇了第二次 51% 攻击,其中一名矿工进行了 4000 个区块的网络重组。

image.png

图 3. 多数攻击

不幸的是,所有小型加密货币仍面临多数攻击的风险。由于这些加密货币吸引的矿工较少,攻击者只需租用计算能力即可获得网络的大部分份额。Crypto51的开发人员试图提醒人们注意破解较小加密货币的潜在风险。他们的网站显示了对各种区块链进行 51% 攻击的预期成本。

防止双花攻击的可能措施包括在监听期间监控收到的交易、转发双花尝试、插入其他节点以观察交易以及拒绝直接传入连接。

此外,还有一项称为闪电网络的创新技术,旨在解决交易验证机制中的漏洞利用问题。该网络允许用户通过双向支付渠道网络即时验证交易,而无需委托资金保管。但是,它仍然容易受到 DDoS 攻击,其中一次已经发生在 2018 年 3 月。

5、矿池攻击

对于像比特币这样的主要加密货币,个体矿工已经不可能赚取利润,因此矿工通过创建矿池来统一他们的算力。这使他们能够开采更多的区块,并且每个人都能获得一份奖励。目前,最大的比特币矿池是 BTC.com、AntPool 和 ViaBTC。根据Blockchain.com 的数据,它们加起来占比特币网络总哈希率的 52% 以上。

矿池是一个不错的目标。恶意矿工试图通过利用区块链共识机制中常见的 Web 应用程序漏洞来控制内部和外部的矿池。

以下是对矿池最常见的攻击。

自私挖矿

自私挖矿是指恶意矿工试图通过在一段时间内不向网络广播挖出的区块然后一次释放几个区块,使其他矿工失去他们的区块来增加他们的奖励份额。防止此类攻击的可能措施是将矿工随机分配到矿池的各个分支,优先选择时间戳较新的区块,并在最大可接受时间内生成区块。这种类型的攻击也称为块扣留。

image.png

图 4. 自私挖矿攻击

由于2014 年对Eligius矿池的自私挖矿攻击,矿工损失了 300 BTC。自私挖矿有很高的成功机会,并且可能发生在所有加密货币上。针对自私挖矿的可能预防措施包括只注册受信任的矿工,并对现有的比特币协议进行更改以隐藏部分工作量证明和完整工作量证明之间的差异。

预扣后分叉

预扣后分叉 (FAW) 是自私挖矿的一种变体,事实证明它对攻击者更有利可图。在 FAW 攻击期间,恶意矿工隐藏一个获胜的区块,然后丢弃它或稍后释放它以创建一个分叉,具体取决于情况。由 Ujin Kwon 领导的一组研究人员明确描述了这种攻击的概念。

结论

尽管区块链的受欢迎程度仍在上升,但越来越多的针对区块链的网络攻击可能对其声誉产生负面影响。了解最常见的区块链漏洞和攻击类型对于关注区块链安全并想知道首先要保护什么的每个人来说都是必须的。


本文翻译自:https://www.apriorit.com/dev-blog/578-blockchain-attack-vectors如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务