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

链闻讯:

区块链安全公司慢雾科技发布预警,称部分交易所及中心化钱包遭受以太坊代币「假充值」漏洞攻击之后,7月10日表示已通知了大部分交易所和中心化钱包确认漏洞细节。该公司称,此漏洞影响面很大,将在7月11日公布详细漏洞分析报告,以下为漏洞分析详细内容:

漏洞分析报告来自慢雾区公众号

披露时间线

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

2018/6/28慢雾区情报,USDT「假充值」漏洞攻击事件披露

慢雾:警惕Web3钱包WalletConnect钓鱼风险:金色财经报道,慢雾安全团队发现 Web3 钱包上关于 WalletConnect 使用不当可能存在被钓鱼的安全风险问题。这个问题存在于使用移动端钱包 App 内置的 DApp Browser + WalletConnect 的场景下。

慢雾发现,部分 Web3 钱包在提供 WalletConnect 支持的时候,没有对 WalletConnect 的交易弹窗要在哪个区域弹出进行限制,因此会在钱包的任意界面弹出签名请求。[2023/4/17 14:08:53]

2018/7/1慢雾安全团队开始分析知名公链是否存在类似问题

2018/7/7慢雾安全团队捕获并确认以太坊相关代币「假充值」漏洞攻击事件

2018/7/8慢雾安全团队分析此次影响可能会大于USDT「假充值」漏洞攻击事件,并迅速通知相关客户及慢雾区伙伴

慢雾:Moonbirds的Nesting Contract相关漏洞在特定场景下才能产生危害:据慢雾区情报反馈,Moonbirds 发布安全公告,Nesting Contract 存在安全问题。当用户在 OpenSea 或者 LooksRare等NFT交易市场进行挂单售卖时。卖家不能仅通过执行 nesting(筑巢) 来禁止NFT售卖,而是要在交易市场中下架相关的 NFT 售卖订单。否则在某个特定场景下买家将会绕过 Moonbirds 在nesting(筑巢)时不能交易的限制。慢雾安全团队经过研究发现该漏洞需要在特定场景才能产生危害属于低风险。建议 Moonbirds 用户自行排查已 nesting(筑巢)的 NFT 是否还在 NTF 市场中上架,如果已上架要及时进行下架。更多的漏洞细节请等待 Moonbirds 官方的披露。[2022/5/30 3:50:23]

2018/7/9慢雾区对外发出第一次预警

慢雾xToken被黑事件分析:两个合约分别遭受“假币”攻击和预言机操控攻击:据慢雾区消息,以太坊 DeFi 项目 xToken 遭受攻击,损失近 2500 万美元,慢雾安全团队第一时间介入分析,结合官方事后发布的事故分析,我们将以通俗易懂的简讯形式分享给大家。

本次被黑的两个模块分别是 xToken 中的 xBNTa 合约和 xSNXa 合约。两个合约分别遭受了“假币”攻击和预言机操控攻击。

一)xBNTa 合约攻击分析

1. xBNTa 合约存在一个 mint 函数,允许用户使用 ETH 兑换 BNT,使用的是 Bancor Netowrk 进行兑换,并根据 Bancor Network 返回的兑换数量进行铸币。

2. 在 mint 函数中存在一个 path 变量,用于在 Bancor Network 中进行 ETH 到 BNT 的兑换,但是 path 这个值是用户传入并可以操控的

3. 攻击者传入一个伪造的 path,使 xBNTa 合约使用攻击者传入的 path 来进行代币兑换,达到使用其他交易对来进行铸币的目的。绕过了合约本身必须使用 ETH/BNT 交易对进行兑换的限制,进而达到任意铸币的目的。

二)xSNXa 合约攻击分析

1. xSNXa 合约存在一个 mint 函数,允许用户使用 ETH 兑换 xSNX,使用的是 Kyber Network 的聚合器进行兑换。

2. 攻击者可以通过闪电贷 Uniswap 中 ETH/SNX 交易对的价格进行操控,扰乱 SNX/ETH 交易对的报价,进而扰乱 Kyber Network 的报价。从而影响 xSNXa 合约的价格获取

3. 攻击者使用操控后的价格进行铸币,从而达到攻击目的。

总结:本次 xToken 项目被攻击充分展现了 DeFi 世界的复杂性,其中针对 xSNXa 的攻击更是闪电贷操控价格的惯用手法。慢雾安全团队建议 DeFi 项目开发团队在进行 DeFi 项目开发的时候要做好参数校验,同时在获取价格的地方需要防止预言机操控攻击,可使用 Uniswap 和 ChainLink 的预言机进行价格获取,并经过专业的安全团队进行审计, 保护财产安全。详情见官网。[2021/5/13 21:57:48]

2018/7/10慢雾安全团队把细节同步给至少10家区块链生态安全同行

动态 | 慢雾预警:Electrum钓鱼更新事件预警:据慢雾区消息,此前对Electrum钱包进行攻击的黑客利用Electrum的软件异常构造恶意的软件更新提示,诱导用户更新下载恶意软件使用,慢雾团队提醒用户,如果您使用的Electrum 提示更新请注意仔细核对信息,认准官方网站和软件版本并作签名校验。真实的官方网站和下载链接如下:

github.com/spesmilo/electrum(GitHub的仓库托管代码)、https://electrum.org/(该项目的网站)

假冒的是:github.com/electrum-wallet/electrum/releases

如果您看到以上虚假地址,请忽略它并更改服务器。

此外,慢雾区提醒项目方,可接入 DApp 防火墙免疫此类攻击,阻断攻击者进一步扩大攻击范围。[2018/12/28]

2018/7/11细节报告正式公开

漏洞细节

现场 | 慢雾安全负责人:好的公链需要满足安全稳定运行最基本的要求:金色财经11月9日现场报道,今日,由imondo和链人联合主办的“DAPP开发者大会”在北京举行。慢雾安全负责人海贼王做了以“DApp安全现状深度分析”为主题的演讲。他表示,现在的公链如以太坊、EOS,都有自己的优势,应保持开放的心态去看待公链。好的公链应该满足一些基本要求,即公链需稳定运行,官方钱包要安全可靠,区块链浏览器要安全可用。[2018/11/9]

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

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

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

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

参考示例TX:

https://etherscan.io/tx/0x9fbeeba6c7c20f81938d124af79d27ea8e8566b5e937578ac25fb6c68049f92e

修复方案

除了判断交易事务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:提供每日不可或缺的区块链新闻。

原文作者:慢雾链闻编辑:Ajina版权声明:文章为作者独立观点,不代表链闻ChainNews立场。

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

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

链闻速递

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

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

入驻指南:

/apply_guide/

本文网址:

/news/3626928.html

以太坊ETH漏洞风险安全

免责声明:

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

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

上一篇:

众多项目启动「道德黑客」赏金计划,EOS上半年赏金超10万美元

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

银河链

TRX知道创宇 CEO 赵伟:以极客之名论未来安全之道

8月27-28日,由腾讯主办的第四届互联网安全领袖峰会在北京召开。本届CSS峰会以“安全强驱动数字新生态”为主题,在8月27日全天举行的主论坛上,众多泛安全领域国际范围内具有先进研究成果的行业嘉宾和技术专家汇聚于此,探讨行业前沿,共同.

[0:62ms0-1:698ms