你可能很难想象,Metamask中一个简单的签名就能掏空你的钱包。但这样的事却发生在了一名资深用户身上,今天他因一个漏洞损失了近50万USDC。如果不多加小心的话,你可能就是下一个他。所以,今天我想和大家讲讲这件事的来龙去脉,告诉大家以后如何注意此类问题。那是在一个安静的午后时分,Joe突然发现自己的钱包被转走了46.9万USDC。这次转账并不简单,肯定不是攻击者能做出的行为,因为他们根本不可能得到Joe钱包的权限。那就说明,转走他所有USDC的应该是某个恶意合约。
在讲述今天的故事之前,我需要先向大家解释一些术语。USDC是以太坊上的一个具有多种功能的合约,规定了我们可以如何使用USDC。在众多功能当中,我们需要特别关注下面两项功能:转账代转
恒指期货夜盘现涨0.69%,报23909点,较恒指最新收盘点位高水160点:恒指期货夜盘现涨0.69%,报23909点,较恒指最新收盘点位高水160点。(金十)[2020/4/6]
当你需要在钱包之间转移USDC,或其他ERC20s时,就需要用到转账功能。它可以将Token从调用者转移到其他地址。如果有人能以你的名义恶意使用该功能,那么他一定得先掌握了你钱包的全部权限才行。
美股持续走高,道指较3月23日收盘点位上涨20.48%:美股盘中持续走高,道指涨逾1200点,较3月23日收盘点位上涨20.48%;纳指、标普500指数分别较3月23日收盘点位上涨约12%、16%。[2020/3/27]
当你与合约产生互动时,它们会通过代转功能来转移你的Token,具体金额由你提前预设好的比例决定。因此,如果你允许一项合约转移无限量的USDC,那么理论上它就可以拿走你所有的USDC。现在让我们回到Joe的故事当中,转走他全部USDC的确实就是transferFrom功能。然而,只有当Joe批准合约使用他的USDC时,transferFrom才能发挥作用。但事实上,Joe坚信自己没有批准任何事项。
动态 | 2019年区块链十大事件盘点:1:中国拥抱区块链
2019年10月24日,中央局第十八次集体学习时强调,区块链技术的集成应用在新的技术革新和产业变革中起着重要作用。
2:央行数字货币试点
2014年中国央行开始研究法定数字货币(DCEP)。DCEP的完整字面意思就是数字货币电子支付。
3:Facebook发布Libra计划
2019年6月,Facebook发布Libra白皮书,Libra的使命是建立一套简单的、无国界的货币和为数十亿人服务的金融基础设施。
4:去中心化金融DeFi
去中心化金融(DeFi),解决传统金融行业中的痛点,被称作DeFi 是加密史上第二个突破。
5:IEO开始流行
IEO是ICO之后,币圈诞生的一种新筹集资金方式,项目方依托交易所进行资金筹集。
6:Bakkt 推出比特币期货
2019年9月23日, 号称币圈牛市的发动机的Bakkt上线。
7:嘉楠科技上市
美国东部时间11月21日嘉楠科技正式上市纳斯达克,IPO发行价最终锁定在每股9美元,总计募资9000万美元。
8:模式币走红币圈
模式币,使用类似模式的币种,通过拉人头、分红、合伙人等等推广营销模式,配合资金控盘,来吸引散户进场接盘。
9:以太坊伊斯坦布尔升级
以太坊网络在2019年12月8日, 9,069,000区块高度完成升级,代号:伊斯坦布尔(Istanbul)。
10:吴忌寒詹克团之争
吴忌寒夺权:10月29日全球最大的矿机生产商之一的比特大陆创始人吴忌寒以比特大陆集团董事会主席、北京比特大陆科技有限公司法定代表人、执行董事的身份,向全体员工发送邮件,宣布解除詹克团在比特大陆的一切职务,即刻生效。[2019/12/23]
分析 | 交易所资金进出量全面下降 市场将迎来变盘点:据合约帝交易所链上转账报告显示,截至北京时间7月24日18:00,今日BTC流入交易所15522个,较昨日下降29.2%,流出交易所21563个,较昨日下降13.39%。今日ETH流入交易所299081个,较昨日下降16.34%,流出交易所317349个,较昨日下降11.27%。合约帝入驻实盘分析师天启资本分析认为,持续多日的震荡行情依旧接近三角区间的末端,随着交易所资金进出量和成交量的全方位下滑,近日市场将要迎来变盘点。[2019/7/24]
可是,DeBank的交易记录清楚地显示,在漏洞发生前10分钟,该恶意合约可以无限使用账户中的USDC。那么问题就在于,如果不是Joe本人的话,究竟是谁给了该合约这一项批准呢?我只能说,Joe确实批准了这一操作,但却是在他不知情的情况下完成的。
Etherscan上的信息显示,Joe本人确实没有调用该功能,真正批准了这一额度的是其他地址,这才让恶意合约得以花光Joe全部的USDC。我们不禁疑问,别人怎么能代替我给予合约许可呢?
许可功能的引入原本是为了改善以太坊的用户体验,它只需一个签名就可以让用户在不提交交易的情况下修改批准金额。也就是说,只要有了你的签名,任何人都可以调用许可功能,并更新你对合约的批准额度。
当你使用1inchdApp时,你就可以体验到这一功能。如果你想在上面出售USDC,那你并不需要事先批准,只需要签上你的名字就够了。有了这个签名,1inch便获取了你全部USDC的使用权限。虽然1inch不会无缘无故花光你所有的USDC,但这却给了恶意合约机会。
Joe一定是不小心在一个恶意网站上签署了这样的信息。不幸的是,那一次他用的是热钱包,签名只是随手点击一下就完成了。如果他用的是硬件钱包的话,就需要在外部设备上签署信息,那么还会有一个思考的时间。有了Joe的签名,其他地址便可以提交一个带有许可功能的交易,这样恶意合约就获取了Joe钱包全部USDC的使用权限。然后,只要它调用transferFrom功能,就可以转走全部这些资金了。
所以说,一个看似小小的签名却可以引来巨大的灾难。在某些情况下,Metamask会在你准备签名是对你发出警告,告知你其中的危险性。签署一个信息可能是危险的。但一些技术层面上的批准签名却不会收到预警,但这些一旦滥用往往会造成巨额的损失。如何避免今后遇到类似的问题?1.不要在Metamask中签署一切内容;2.花点时间了解你所签署的内容;3.对传统的批准事项要格外小心。原地址
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。