区块链智能合约安全事故典型案例回顾分析

您所在的位置:网站首页 经典安全事故案例分析 区块链智能合约安全事故典型案例回顾分析

区块链智能合约安全事故典型案例回顾分析

2024-07-09 15:25| 来源: 网络整理| 查看: 265

2018年4月25日,SMT 爆出类似的整数溢出漏洞,黑客通过漏洞制造和抛售了天文数字规模的 Token,导致 SMT 价格崩盘。

整数溢出漏洞可能造成以下严重后果:

1. 使程序偏离设计意图

2. 实现 Token 无限量增发

3. 绕过权限控制或余额校验

4. 完成一些虚假操作

5. 被 Token 管理员利用,留下作恶空间

3

合约库安全问题

2017年11月06日,Parity 多重签名钱包漏洞导致了超过 513,701 个以太币被锁死,至今关于以太坊是否需要通过硬分叉方式升级 (EIP999) 争论还在继续。

4

复杂 DeFi 协议组合安全

2020年2月15日、2月18日,DeFi 项目 bZx 借贷协议遭遇两次攻击,先后损失 35 万美元和 64 万美元。两次攻击手法复杂且不完全相同,利用新型借贷产品“闪电贷”将攻击成本降至最低并扩大攻击收益,同时又与价格预言机、杠杆交易、借贷、价格操纵、抢先交易紧密关联,充分利用了多个 DeFi 产品间的可组合性来达到攻击目的。

2020年4月19日,去中性化借贷协议 Lendf.Me 遭遇黑客攻击,合约内价值 2500万美元的资产被洗劫一空,直接原因在于产品本身的可重入问题和特殊的 ERC-777 类型代币 imBTC 组合之后引入的新的安全风险。同时因为此问题被攻击的还有 Uniswap 去中心化交易所。

5

非标准接口

以最被广泛接受的智能合约 Token 标准 ERC20 为例,很多 Token 合约未参照 ERC20 标准实现,这给 dApp 开发带来很大的困扰。数以千计的已部署 Token 合约曾经参考了以太坊官网(现已修复)以及 OpenZeppelin(52120a8c42 [2017年3月21日] ~ 6331dd125d [2017年7月13日]) 给出的不规范模版代码,多个函数实现没有遵循 ERC20 规范,导致 Solidity 编译器升级至 0.4.22 后出现严重的兼容性问题,无法正常转账。

6

管理员权限过高或较中心化

2018 年 7 月 10 日,加密货币交易平台 Bancor 称遭到攻击,丢失了折算法币金额为 1250 万美金的以太坊,1000 万美金的 Bancor 代币和 100 万美金的 Pundix 代币。这次攻击黑客并非利用了 Bancor 平台合约的漏洞,而是通过盗取了其智能合约管理员账户的私钥。Bancor 主要合约包括 SmartToken 和 BancorConverter,分别为 ERC20 Token 合约以及与业务相关的 Token 转换交易合约。此次被盗事件与 BancorConverter 合约有关,攻击者极有可能获取了合约管理员账户的私钥,对转换代币合约 BancorConverter 拥有极高权限。owner 作为该合约的所有者和管理员,有唯一的权限通过 withdrawTokens 方法提走合约中的全部 ERC20 Token 至任意地址。事件发生后不少人质疑 Bancor 项目智能合约中 owner 管理员的超级权限,甚至称之为“后门”。

7

业务逻辑与区块链共识产生冲突

曾经红极一时的类 Fomo3D 游戏,就曾因「随机数预测」攻击和「阻塞交易」攻击丧失游戏公平性,沦为黑客淘金的重灾地。

类 Fomo3D 游戏的空投机制利用「随机数」来控制中奖概率,但是由于随机数的来源都是区块或者交易中特定的一些公开参数,如交易发起者地址、区块时间戳、区块难度等,因此在以太坊上可以很容易的预测所谓的「随机数」。

而「阻塞交易」攻击是黑客通过高额手续费吸引矿工优先打包,并利用合约自动判断游戏进行状态,以之作为是否采取攻击的依据。黑客最终能够以较低成本堵塞区块,每个区块中仅打包很少的交易(降低他人交易被打包的可能性),使得游戏快速结束,并提高自己获得最终大奖的概率。所有采用类似机制,即需要玩家抢在某个时间范围内完成某种竞争操作的智能合约,都会受此威胁。

类 Fomo3D 游戏中黑客利用了以太坊共识协议的特点,找到游戏机制的漏洞进而发起攻击。智能合约游戏或应用的业务设计是一项极其复杂的系统工程,除了代码本身,还涉及到平台外部环境,博弈论等方面问题,这也是容易被黑客攻击的环节。因此,在业务设计过程中应尤为慎重,必须充分考虑区块链的特性。

8

开发者应持续关注更多安全案例

除了上面提到的典型案例外,智能合约领域还有很多值得研究的漏洞案例,并且各类新型的攻击手法层出不穷。智能合约本身还很不完善,并且还处在爆发式地发展中,存在着各类未知风险。为了开发成熟、安全、可靠的智能合约,开发者应持续关注更多安全案例,从中学习经验教训。

从智能合约开发者方面来看,区块链项目的爆发吸引了大量开发者,而这些开发者往往只能从简单的参考和修改网上良莠不齐甚至有严重漏洞的示例代码开始进行学习开发。对于资深智能合约开发者而言,实现安全无漏洞的智能合约依旧是不小的挑战。事实上,开发者可以通过遵循最佳实践的方法,提高代码质量,降低安全风险。

本文有不妥当之处,敬请读者联系CSA GCR秘书处给与雅正!

联系邮箱:[email protected]

关于区块链安全工作组的更多介绍,

请在CSA大中华区官网上查看。

https://c-csa.cn/research/

CSA GCR发布| 《智能合约安全指南》

数字货币交易所安全事件频发,10大安全风险你了解多少? 返回搜狐,查看更多



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3