百科 | 什么是智能合约中的重入攻击?

时间:2024-09-21 编辑: 浏览:(806)

作者:Jagjit Singh,CoinTelegraph;编译:五铢,

一、智能合约中的潜在漏洞

尽管智能合约具有开创性,但它也并非不受恶意方可能利用的缺陷的影响。

输入验证不足是一个普遍的弱点,使攻击者能够通过提供意外的输入来影响合约的执行。 此外,业务逻辑的不当应用可能会在合同中产生意外行为或逻辑差距,从而导致漏洞。 此外,如果处理不当,不安全的外部调用(例如涉及与外部数据源或其他合约的接口的调用)可能会造成漏洞。

重入攻击是一个合约在完成其自身状态更改之前从外部调用另一个合约时发生的弱点。 这允许被调用合约重新进入调用合约,并可能再次执行其某些操作。 这可能会导致意外的行为,并允许攻击者改变合约的状态,从而耗尽资金或产生其他负面影响。

考虑到此类攻击的可能性,开发人员在使用外部合约或数据源时也应谨慎行事,确保正确处理外部调用,以避免意外行为和漏洞。 他们可以通过密切关注智能合约测试等安全程序来帮助保护智能合约免受不断变化的威胁。

二、什么是智能合约中的重入攻击?

在智能合约中,当合约在完成自己的状态更改之前从外部调用另一个合约或函数时,就会发生重入攻击。

这允许被调用合约重新进入调用合约,并可能再次执行其部分操作,这可能会导致不可预见且频繁的恶意行为。 例如,合约 A 调用合约 B 发送资金,然后修改自己的状态。

合约 B 的代码可能包含一个回调函数,允许其重新进入合约 A,并可能在合约 A 完成其状态更改之前重新执行传输函数。 这将使攻击者能够在完成初始交易之前多次从合约中获取资金。

2016 年臭名昭著的以太坊区块链上的去中心化自治组织 (DAO) 黑客攻击是另一个众所周知的例子。 攻击者利用智能合约代码中的重入缺陷,递归地从 DAO 中删除资金,最终导致价值数百万美元的以太坊 (ETH) 被盗。

此外,包括 Uniswap、Lendf.Me、BurgerSwap、SURGEBNB、Cream Finance 和 Siren Protocol 在内的多个去中心化金融 (DeFi) 协议由于可重入漏洞而蒙受了重大财务损失。 这些违规行为造成了 350 万美元至 2500 万美元的损失,凸显了 DeFi 领域可重入漏洞带来的持续威胁。

三、重入攻击如何工作

重入攻击利用智能合约函数的顺序执行和外部调用形成一个循环,攻击者可以在完成之前多次执行特定函数,这可能会导致恶意行为和未经批准的资金提取。

在受害者完成状态修改之前,攻击者的合约有效地“欺骗”受害者的合约回调攻击者的合约。 此操作可能会导致反复提款或其他疏忽行为。

上图演示了对智能合约的重入攻击。 攻击者的合约调用受害者的“withdraw()”函数,该函数在更新余额之前发送以太坊。 然后,攻击者的后备函数被触发,再次递归调用withdraw()以从受害者合约中耗尽资金。 这种攻击利用了受害者在发送资金之前未能更新余额的情况。

让我们使用一个简化的示例来分解重入攻击的工作原理:

具有“提现”功能的智能合约

假设有一个允许用户提取资金的数字钱包智能合约。 除了跟踪用户余额之外,该合约还具有提款功能,方便资金提取。 提款功能通常允许用户将他们的代币或以太坊从智能合约提取到他们的个人钱包。

用户交互和功能执行

用户自行请求从钱包中提款。 他们使用提款功能输入所需的提款金额。

提款函数会在调用时验证用户是否有足够的资金进行提款。 如果满足要求,它将所需的资金转移到用户选择的地址。

外部调用

这就是弱点显现出来的地方。 在提款反映在用户的余额中之前,合约会对另一个合约或账户进行外部调用。

递归调用

如果外部合约的代码包含可以再次调用原始合约的函数(例如另一个提款函数),则会创建一个递归循环。 这使得可以在完成之前再次调用withdraw方法。

可重入利用

然后,攻击者使用恶意合约来利用此循环。 攻击者合约在钱包合约调用外部合约期间,在余额更新之前,快速再次调用钱包的提现函数。

回退功能

在某些情况下,智能合约的回退功能(一种独特的功能,当合约收到没有任何数据或以太坊的调用时启动)可能会被攻击者使用。 重入攻击可以通过在资金仍在处理过程中重复调用回退函数来进行。

操纵和反复提款

攻击者的合约可以在同一笔交易中重复使用提款功能,因为钱包合约会延迟更新余额,直到收到外部调用后。 因此,这使得资金更容易在未经授权的情况下被取出,从而使攻击者能够窃取超出其合法权利的资金。 随后,它给钱包合约的用户造成了巨大的经济损失。

四、重入攻击的后果

重入攻击会对智能合约用户产生严重影响,因为它们有可能造成重大财务损失。

重入攻击最直接的后果之一是未经授权提取或操纵易受影响的智能合约中保存的现金。 攻击者利用该漏洞反复从合约中提取资金,耗尽合约余额,并可能给在受影响合约中投资或存储资产的用户造成重大财务损失。

此外,重入攻击可能会削弱用户对智能合约和区块链技术安全性和完整性的信心。 重入漏洞可能会产生灾难性的影响,2016 年以太坊区块链上的 DAO 黑客事件等备受瞩目的事件就证明了这一点,该事件造成了巨大的经济损失并损害了社区的声誉。

除了短期财务后果之外,重入攻击还可能产生长期影响,例如监管和法律关注、投资者信任度下降以及对区块链平台和项目声誉的损害。 容易受到攻击的认知可能会导致用户在与智能合约交互或投资去中心化应用程序(DApp)时保持谨慎,从而阻碍区块链技术的采用和扩展。

五、如何减轻重入攻击

在智能合约创建和审计方面实施最佳实践对于减轻重入威胁是必要的。

这包括使用具有安全记录的知名代码库,这是实现这一目标的一种方法。 这些库经过了广泛的测试和同行评审,这降低了引入漏洞的机会。

开发人员还应该使用“检查-效果-交互”设计等安全检查,通过确保状态修改以原子方式发生,最大限度地减少重入攻击的机会。 如果可用的话,可以使用可重入安全的智能合约开发框架来添加针对此类漏洞的额外防线。

开发人员不太可能手动添加安全保护,因为这些框架通常包含专门设计用于避免重入攻击的内置方法和保护措施。 然而,由于区块链安全仍在发展,开发人员必须继续寻找新的威胁和弱点。

最新 更多 >
  • 1 Multicoin合伙人讨论数据所有权的实际意义和挑战

    Multicoin 合伙人 Kyle Samani 认为,数据的无限复制性意味着其不能被拥有,与天然稀缺的资产形成对比。他指出,所有权的排他性是资产的关键特征,而数据的所有权概念在实际应用中并不明确。Samani 进一步讨论了数据所有权的问题,包括大科技公司的数据使用和算法选择的限制。他提出,更实际的解决方案可能是通过立法允许第三方开发者访问和使用数据,而不是简单地追求数据所有权。

  • 2 最新行情晚报:BIGTIME价格达0.1014美元/枚,日内涨幅3.15%

    Big Time实时价格行情,BIGTIME今日最新价格达$0.1014,涨幅高达3.15%,交易量$718.25万通过k线图分析,目前处于横盘趋势。相比20:00较大幅上涨,比18:00有所回升,突破21:00的高点。价格和交易量同时下降,通常意味着市场活跃度降低,买卖双方都不活跃。市场可能处于观望状态,等待新的驱动因素。这种情况下,未来价格可能会继续低迷或横盘整理,直到有新的市场消息或事件打破

  • 3 Catizen现已支持日语和繁体中文语言设置

    TON 生态链游 Catizen 在 X 平台发文表示,Catizen 现支持日语和繁体中文的语言设置。

  • 4 最新行情晚报:ETH以太坊价格达3193.15美元/枚,日内跌幅-1.01%

    以太坊ethereum今日行情消息,ETH以太坊最新价格:$3193.15,24小时涨1.93%,交易量$90.59亿根据k线图,目前属于横盘趋势。相比17:00大幅下跌,比11:00有所回升,比16:00有所下降。卖压增加,价格下降。威廉指标表明当前属于没有超买和超卖。最近交易量有所增加,交易量比前几小时增加,价格下降,交易量上升:卖压增加。市场卖压增加致价格下跌,建议谨慎入场,待市场稳定后再做

  • 5 24小时行情晚报(7-1218:00)

    1)BTC现价:$56960.04,24小时涨跌 -2.21%,交易量$117.37亿2)ETH现价:$3058.06,24小时涨跌 -2.47%,交易量$67.39亿3)USDT现价:$1.00,24小时涨跌 0.02%,交易量$11.08亿

  • 6 Pixel、Apeiron、AxieInfinity分列Ronin生态DAP前三名

    据 Ronin 官方在 X 平台发文表示,该生态网络 DAU 排名前三的项目分别为@pixels_online、@ApeironNFT、@AxieInfinity,三者的每日活跃用户数量分别为 45.4 万、11.3 万、5.5 万。

  • 7 BTC重返57000USDT上方,24H跌幅1.27%

    OKX 行情显示,BTC 重返 57000 USDT 上方,现报 57146 USDT,24H 跌幅为 1.27%。

  • 8 Polymarket数据:特朗普大选获胜概率升至70%

    据预测市场平台 Polymarket 数据显示,特朗普在遭遇枪击事件后状态良好,其在该平台上赢得大选的获胜概率已上升至70%,续创历史新高,远高于拜登的16%获胜概率。

  • 9 THENA与ListaDAO加强BNBChain上的DeFi合作与创新

    THENA和ListaDAO是BNB Chain上的两个重要DeFi协议,共同推动了区块链的金融包容性和创新。THENA是一个去中心化交易所,提供现货和衍生品交易,致力于成为DeFi领域的全方位平台。ListaDAO则专注于流动性质押和稳定币解决方案,通过合并和创新,提高了资本效率和市场稳定性。两者的合作加深了BNB Chain的流动性和用户参与度,展现了DeFi生态系统的潜力。

  • 10 韩国Wemade计划出售子公司Lightscale股份

    韩国游戏公司Wemade计划出售其子公司Lightscale的股份,并辞去大股东职务。Lightscale是一家区块链项目开发商,去年推出了Chroma区块链主网。此次出售被视为Wemade缩减区块链业务的一部分。尽管股东变更,Lightscale仍计划在第三季度发行Coin Cro虚拟资产。Wemade官员表示,无法确认出售计划。