以太坊:以太坊代币「假充值」漏洞细节披露及修复方案

链闻ChainNews:

上周,慢雾披露的以太坊代币「假充值」漏洞,可谓一石激起千层浪,这次漏洞影响到相当数量的交易所和中心化钱包等,影响范围广泛。本文为你深入解析这次漏洞的前因后果。

来源|慢雾区作者|慢雾安全团队

披露时间线以太坊代币「假充值」漏洞影响面非常之广,影响对象至少包括:相关中心化交易所、中心化钱包、代币合约等。单代币合约,我们的不完全统计就有3619份存在「假充值」漏洞风险,其中不乏知名代币。相关项目方应尽快自查。**由于这不仅仅是一个漏洞那么简单,这已经是真实在发生的攻击!**出于影响,我们采取了负责任的披露过程,这次攻击事件的披露前后相关时间线大致如下:

2018/6/28慢雾区情报,USDT「假充值」漏洞攻击事件披露2018/7/1慢雾安全团队开始分析知名公链是否存在类似问题2018/7/7慢雾安全团队捕获并确认以太坊相关代币「假充值」漏洞攻击事件2018/7/8慢雾安全团队分析此次影响可能会大于USDT「假充值」漏洞攻击事件,并迅速通知相关客户及慢雾区伙伴2018/7/9慢雾区对外发出第一次预警2018/7/10慢雾安全团队把细节同步给至少10家区块链生态安全同行2018/7/11细节报告正式公开漏洞细节

以太坊2.0测试网参与率过低时巨鲸撤出或可导致故障:Jelurida联合创始人Lior Yaffe表示他发现了以太坊2.0测试网中一个弱点,以太坊2.0要求最低参与率66%,当参与率低时如果一个控制多个账户的巨鲸突然撤出,有可能将参与率降到66%以下引起网络问题。假如10%的ETH被质押而网络参与率为75%,降低9%的参与率只需控制0.9%流通中的ETH,大型鲸鱼和中等交易所就可实现,而币安、Coinbase、V神等机构和个人均持有超过以太坊0.16%的总量。开发人员Raul Jordan表示参与率估计在99%左右,攻击者如果想要攻击需要25000个验证节点33%的质押量,大约价值1亿美元,而且攻击会导致多方损失包括攻击者自己。(Decrypt)[2020/9/11]

以太坊代币交易回执中status字段是0x1(true)还是0x0(false),取决于交易事务执行过程中是否抛出了异常。当用户调用代币合约的transfer函数进行转账时,如果transfer函数正常运行未抛出异常,该交易的status即是0x1(true)。

以太坊链上500枚YFII转入Binance,价值超过229.5万美元:Whale Alert数据显示,北京时间9月5日16:17,以太坊链上500枚YFII(价值超过229.5万美元)从0x338f3e开头地址转入Binance(0x7aa5ef开头地址)。[2020/9/5]

如图代码,某些代币合约的transfer函数对转账发起人(msg.sender)的余额检查用的是if判断方式,当balances<_value时进入else逻辑部分并returnfalse,最终没有抛出异常,我们认为仅if/else这种温和的判断方式在transfer这类敏感函数场景中是一种不严谨的编码方式。而大多数代币合约的transfer函数会采用require/assert方式,如图:

当不满足条件时会直接抛出异常,中断合约后续指令的执行,或者也可以使用EIP20推荐的if/elserevert/throw函数组合机制来显现抛出异常,如图:

数据:以太坊的持币地址数量连续六个月保持增长:据Tokenview区块浏览器数据显示,截止六月底,比特币持币地址数达4352.48万个,较一月上升31.05%。以太坊持币地址数为4301.26万,较一月上升19.12%。

上半年比特币的持币地址数量在二月的增幅最高,单月增幅达13.83%,在五月则遭遇了负增长,下降了0.49%。而以太坊的持币地址数在上半年保持了连续六个月的增长势头,六月增幅达到5.06%。[2020/7/7]

我们很难要求所有程序员都能写出最佳安全实践的代码,这种不严谨的编码方式是一种安全缺陷,这种安全缺陷可能会导致特殊场景下的安全问题。攻击者可以利用存在该缺陷的代币合约向中心化交易所、钱包等服务平台发起充值操作,如果交易所仅判断如TxReceiptStatus是success就以为充币成功,就可能存在「假充值」漏洞。如图:

动态 | 以太坊发布君士坦丁堡硬分叉升级介绍 普通持有者无需任何操作:以太坊官方刚刚发文提醒硬分叉注意事项:分叉时间预计在1月16日左右(区块高度7080000),如果只是ETH的持有者,无需为更新做任何准备;分叉就像office软件升级一样,会出现一些兼容类的问题,节点则需要全部更新升级;君士坦丁堡只是以太坊网络更新的名称,并且这次更新是无争议的硬分叉更新,不会像BCH那样。具体升级内容如下:

EIP 145:由两位以太坊开发人员 Alex Beregszaszi 和 Pawel Bylica 撰写的技术升级,EIP 145 详细介绍了一种更为有效的以太网信息处理方法,称为按位移位。

EIP 1052:由核心开发人员 Nick Johnson 和 Bylica 撰写,EIP 1052 提供了一种优化以太坊上大规模代码执行的方法。

EIP 1283:基于由 Johnson 撰写的 EIP 1087,该提案主要通过为数据存储的变更引入更公平的定价方法,使智能合约开发商受益。

EIP 1014:由以太坊自己的创始人 Vitalik Buterin 创建,此升级的目的是更好地促进基于状态通道和“离线”事务的某种类型的扩展解决方案。

EIP 1234:由主要以太坊客户 Parity 的发布经理 Afri Schoedon 主持,这次升级是该批次中异议较大的提案,将块采矿奖励从 3 ETH 减少到 2 ETH,以及将难度炸弹延迟 12 个月。[2019/1/9]

参考示例TX:https://etherscan.io/tx/0x9fbeeba6c7c20f81938d124af79d27ea8e8566b5e937578ac25fb6c6804error

以太坊联合创始人Joseph Lubin:以太坊从未是证券,不需要监管:以太坊联合创始人Joseph Lubin本周二表示,当他和其他创始人创建以太坊时,他们就担心以太坊会被视为一种证券,因而导致无法出售给未注册投资者。所以我们花了大量的时间与美国和其他国家的律师进行讨论,最终非常欣慰地得出结论:以太坊不是一种证券,也从来都不是一种证券。此前,有报道称美国监管机构CFTC和SEC正在考虑是否将以太坊和其他加密货币作为证券进行监管。[2018/5/2]

修复方案

除了判断交易事务success之外,还应二次判断充值钱包地址的balance是否准确的增加。其实这个二次判断可以通过Event事件日志来进行,很多中心化交易所、钱包等服务平台会通过Event事件日志来获取转账额度,以此判断转账的准确性。但这里就需要特别注意合约作恶情况,因为Event是可以任意编写的,不是强制默认不可篡改的选项:

emitTransfer(from,to,value);//value等参数可以任意定义

作为平台方,在对接新上线的代币合约之前,应该做好严格的安全审计,这种安全审计必须强制代币合约方执行最佳安全实践。作为代币合约方,在编码上,应该严格执行最佳安全实践,并请第三方职业安全审计机构完成严谨完备的安全审计。

后记Q&A

Q:为什么我们采取这种披露方式?

A:本质是与攻击者赛跑,但是这个生态太大,我们的力量不可能覆盖全面,只能尽我们所能去覆盖,比如我们第一时间通知了我们的客户,然后是慢雾区伙伴的客户,再然后是关注这个生态的安全同行的客户,最终不得不披露出细节。

Q:为什么说披露的不仅仅是漏洞,而是攻击?

A:其实,以我们的风格,我们一般情况下是不会单纯去提漏洞,漏洞这东西,对我们来说太普通,拿漏洞来高调运作不是个好方式。而攻击不一样,攻击是已经发生的,我们必须与攻击者赛跑。披露是一门艺术,没什么是完美的,我们只能尽力做到最好,让这个生态有安全感。

Q:至少3619份存在「假充值」漏洞风险,这些代币该怎么办?

A:很纠结,一般来说,这些代币最好的方式是重发,然后新旧代币做好「映射」。因为这类代币如果不这样做,会像个「定时炸弹」,你不可能期望所有中心化交易所、中心化钱包等平台方都能做好安全对接,一旦没做好这个“假充值”漏洞的判断,那损失的可是这些平台方。而如果平台方损失严重,对整个市场来说必然也是一种损失。

Q:有哪些知名代币存在「假充值」漏洞?

A:我们不会做点名披露的事。

Q:有哪些交易所、钱包遭受过「假充值」漏洞的攻击?

A:恐怕没人会公开提,我们也不会点名。

Q:这些代币不重发是否可以?

A:也许可以,但不完美。不选择重发的代币要么很快是发布主网就做「映射」的,要么得做好通知所有对接该代币的平台方的持续性工作。

Q:为什么慢雾可捕获到这类攻击?

A:我们有健壮的威胁情报网络,捕获到异常时,我们默认直觉会认为这是一种攻击。

Q:除了USDT、以太坊代币存在「假充值」漏洞风险,还有其他什么链也存在?

A:暂时不做披露,但相信我们,「假充值」漏洞已经成为区块链生态里不可忽视的一种漏洞类型。这是慢雾安全团队在漏洞与攻击发现史上非常重要的一笔。

更多精彩内容,关注链闻ChainNews公众号,或者来微博**@链闻ChainNews**与我们互动!转载请注明版权和原文链接!

来源链接:mp.weixin.qq.com

本文来源于非小号媒体平台:

链闻研究院

现已在非小号资讯平台发布1篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/3626929.html

以太坊ETH漏洞风险安全

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

起底「黑暗幽灵」战队:做空币价,打劫过所有头部交易所,除了币安

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

中币BAN:预测PHV涨停,赢BTC!

尊敬的LBank用户: LBank现已开启“预测涨停”活动,若有准确预测到PHV连续涨停天数的用户,即可共同瓜分2BTC。报名方式:填写表单相应信息,即可报名成功.

[0:15ms0-0:776ms