ANC:警惕隐蔽的 Rug Pull 合约存储引起的跑路盘

背景

从 DeFi 之夏到现在,我们在遭受各种漏洞、后门、跑路等层出不穷的手段洗礼后,总算学会了在 DEX 上参与新项目前,应先检查代币合约的权限、代币的持仓分布及合约的代码以保护自己的资产安全。但相对的,坏人们的作恶手段也更加高明与隐蔽。近期,慢雾安全团队收到来自 PancakeSwap 社区用户的求助,其参与项目时观察到,在项目代币没有任何增发记录的情况下,恶意用户使用未被记录的大量增发代币卷走了池子中的资金。慢雾安全团队跟进分析此事件并将结果分享如下:

攻击细节

恶意代币 IEGT 在 BSC 上的部署地址是 0x8D07f605926837Ea0F9E1e24DbA0Fb348cb3E97D。我们通过区块浏览器观察其 Holders,发现在 dead 与 pair 地址持有大量 IEGT 代币的情况下,合约记录的 totalSupply 仍为 5,000,000。

通过进一步查看这些代币的来源可以发现,这些代币在0x00002b9b0748d575CB21De3caE868Ed19a7B5B56 中只有转出记录而没有转入记录。

美国SEC发布投资者公告:警惕加密资产计息账户的风险:金色财经报道,美国SEC投资者教育宣传办公室和执法部门的零售战略工作组正在发布投资者公告,以教育投资者关于对加密资产存款支付利息的账户的风险。SEC称,加密资产,包括加密货币、稳定币、代币和其他数字资产,在过去几年里,散户投资者的兴趣逐渐加大。本投资者公告强调了最近一种与加密资产有关的金融产品可能涉及的风险,用于持有加密资产的计息账户。

1.与银行存款不同,这些产品听起来可能类似于银行或信用社的计息账户,但投资者需要注意的是,这些与加密货币资产有关的账户并不像银行或信用社的存款那样安全。

2.加密货币资产投资的风险,在计息账户中持有的加密资产可能被用于投资各种与加密资产相关的产品、计划或其他活动,包括将加密资产借给借款人的借贷项目。支付给你的利息是基于这些投资活动。 其中包括:加密资产市场的波动性和流动性不足;持有你的加密资产的公司可能会倒闭或破产的风险;不可预测性,包括特定加密资产的市场可能完全消失,或者加密资产可能不再在任何地方交易;联邦、州或外国政府可能限制加密资产的使用和交换的监管变化;如果发生欺诈、违约或错误,则无法整顿;和潜在的欺诈、技术故障、黑客或恶意软件。[2022/3/16 13:58:42]

尼日利亚SEC提醒公众警惕欺诈性加密货币项目运营商iBSmartify:尼日利亚证券交易委员会(SEC Nigeria)发布了一份关于欺诈性加密货币项目的警示性声明。在声明中,尼日利亚SEC呼吁公众警惕iBSmartify的活动,无论是iBSmartify还是他们提供的非法产品,都没有得到该委员会的注册或监管。(Nairametrics)[2020/6/27]

我们都知道,EIP20 标准 规定了代币转移时必须实现 Transfer 事件,包括在代币铸造时,从 0x0 地址进行转移也必须进行事件记录。区块浏览器依赖这些标准的事件记录进行数据统计。因此,当在区块浏览器中发现其代币总额与实际数量不匹配时,则表明代币在进行增发时并未进行事件记录,导致区块浏览器只统计了转账后相关地址的余额变化,而没有任何代币增发记录。据此,我们可以确定代币合约中必然存在增发代币的恶意代码。

此代币合约的代码是开源的,想来是项目方为了增加项目的可信度。接下来我们对其源码进行分析。一般来说,进行代币增发最简单的方式就是实现一个直接增加指定地址余额的方法。在当前合约中是通过定义一个 _balances 映射,对用户的代币余额进行记录。但经过检查,合约中并未实现对指定地址的 _balances 进行修改的代码。

互金协会声明:警惕机构冒用协会名义办金融科技、区块链等活动:据互金协会官网消息,中国互联网金融协会26日发布消息称,近日中国互联网金融协会发现并同时收到一些会员机构反映,社会上有些机构冒用“中国互联网金融协会”名义举办论坛研讨会等收费活动,还有机构在宣传中谎称中国互联网金融协会负责人出席论坛研讨会演讲,如“YHBH 2020中国金融科技国际峰会”“区块链领军人物·北京研讨会”等。中国互联网金融协会郑重声明:如需了解中国互联网金融协会举办的各类活动,请前往中国互联网金融协会网站、微信公众号及会员管理系统等官方渠道进行核实。如仅见其他渠道宣传中国互联网金融协会“主办”“承办”“协办”“授权”“指导”等各类活动信息,请与中国互联网金融协会官方核实查证。敬请注意甄别,谨防上当受。对冒用中国互联网金融协会名义等侵权行为,中国互联网金融协会将保留依法追究责任的权利。[2020/6/26]

既然没有发现直接增加余额的代码,那么项目方又是如何进行增发的呢?我们回顾下智能合约的基础知识,可以知道用户代币余额的变化本质上就是修改了合约在链上存储的数据状态。因此,只要修改特定地址的 _balances 在合约中对应存储的插槽数据,即可修改其代币余额。

哈尔滨市局:警惕以虚拟货币、 区块链为噱头的非法集资局:近年来,一些不法分子打着“金融创新”、“区块链”的旗号,通过“拆分资产”抵押、发行“虚拟货币”等方式吸收资金,侵害公众合法权益。近日,哈尔滨市局的经侦民警详细分析总结了此类非法集资的主要特征,希望能够帮助市民提高防范意识,远离非法集资。

1. 网络化运作,跨境化局。这种非法集资主要依托互联网、聊天工具进行交易,利用网上支付工具收支资金,风险波及范围广、扩散速度快。

2. 空投“糖果”,连蒙带,难发现。不法分子利用热点概念进行炒作,编造名目繁多的“高大上”理论,有的还利用名人、大V“站台”宣传,以空投“糖果”进行诱惑,宣称“币值只涨不跌”、“投资周期短、收益高、风险低”,具有较强蛊惑性。

3.“动静”相结合,你手段多样。不法分子通过公开宣传,以“静态收益”(炒币升值获利)和“动态收益”(发展下线获利)为诱饵,吸引公众投入资金,并利诱投资人发展下线人员加入,不断扩充资金池。盘子越做盘大,上当的人也越来越多,汪少受者到后来,都成了犯罪分子的帮手。(哈尔滨新闻网)[2020/6/21]

我们先简单回顾下 EVM 中计算合约数据存储位置的基础知识,对于映射类型 _balances 来说,其会根据其键值 k 与其所占据位置 p 进行 keccak256 后得到偏移量,作为其存储的插槽位置,即 keccak256(k,p)。通过分析 IEGT 合约的数据存储位置,我们可以发现其 _balances 参数所在位置为 slot0,那么用户的余额存储位置即为 keccak256(address,0) 。

分析 | BCH警惕下降通道上轨压力:分析师K神表示,BCH消息刺激,放量突破19年6月顶点至近期的中期下降趋势线,一度涨至接近300美元附近再小幅回落到290美元上方,形态上前面9月25日大跌触及下边线支撑后,接下来到10月25日一个多月的时间,日线走出一个双底结构,10月25日跟随BTC强势反弹,直接突破上方240美元颈线位压制,近几天迎来了快速拉升,一直冲至通道上边阻力线附近,若再次强势突破并维持放量,将持续拉大反弹空间,均线上当前价格已站上90日均线,中短期均线多头排列,整体后续有进一步走强的趋势,持续拉升短线指标超买,价格已涨至前期筹码密集成交平台,一次性突破的可能性不大,预计近期将处于90日均线附近震荡整理,蓄势后再尝试上攻,支撑278美元,压力位300美元。[2019/10/29]

带入恶意地址进行计算,可以得到其余额存储位置为 0x9d1f25384689385576b577f0f3bf1fa04b6829457a3e65965ad8e59bd165a716。随后查找此插槽数据变化,可以发现其在合约部署时已被修改为一个巨大的值。

因此,我们可以确定在 IEGT 合约部署初始化时,项目方就隐蔽地增发了大量的代币,为 Rug 做好准备。接下来我们跟进其初始化函数,分析发现其在进行 _pathSet 操作时,通过内联汇编对合约存储进行了修改,并且未对代码进行格式化处理,以降低其可读性。

跟进计算发现 y 值为 2b9b0748d575cb21de3cae868ed19a7b5b56,通过两次 mstore 将内存 0~64 字节的位置填充为 00000000000000000000000000002b9b0748d575cb21de3cae868ed19a7b5b56,而恶意增加代币余额的地址为 0x00002b9b0748d575CB21De3caE868Ed19a7B5B56。可以发现恶意用户通过构造一连串的数据,计算使得正好可以得到其控制的目标地址。因此,我们也可以从编译后的字节码中发现此计算后未进行填充的“地址”。

紧接着通过 keccak256 对内存 0~64 字节的数据进行哈希后,正好得到恶意用户的余额存储插槽位置 0x9d1f25384689385576b577f0f3bf1fa04b6829457a3e65965ad8e59bd165a716,这也正是合约中将 _balances 置于 slot0 位置的原因,这极大方便了在内联汇编中计算余额实际的存储位置。然后使用 sstore 将合约中此存储位置的值修改为当前时间的 6 次方,此时即完成了对指定地址的余额修改。随后的内联汇编操作类似,在此不做赘述。

至此,我们知道了项目方是在合约初始化时,通过内联汇编的方式修改了指定地址余额,隐蔽地增发了大量未被其他用户获悉的代币,导致用户在参与项目时被 Rug。

追踪分析

通过 MistTrack 分析此次事件获利地址为 BSC 链上 0x000000481F40f88742399A627Cbc2Afb6Ec34FeD 与 0x00002b9b0748d575CB21De3caE868Ed19a7B5B56,共计获利 114 万 USDT,获利地址转移 USDT 的手续费来源为 Binance 交易所提款。

目前资金转移情况如下图:

此外,恶意合约创建者的手续费地址 0xb795ad917DAF9A1c98eE18E03E81FBBfb6D54355 同样存在大量痕迹。

总结

此次事件中,项目方开源合约代码以增加用户信任度,通过未格式化的代码降低代码可读性,并且使用内联汇编来编写直接修改用户余额存储插槽数据的代码,提高了代码分析门槛。其使用种种手段隐藏作恶痕迹,最后将池子席卷一空。可以发现,在用户的安全意识越来越强的情况下,作恶者的手段也越发隐蔽与高明。据 SlowMist Hacked 统计,截止目前,由于 Rug Pull 导致的损失金额接近 5 亿美元。因此,用户在参与新项目时应着重分析其合约中是否存在可疑的代码,尽量不参与合约未开源且未经过审计的项目。MistTrack 团队也将持续跟进并监控此事件。

参考链接:

 https://bscscan.com/address/0x8d07f605926837ea0f9e1e24dba0fb348cb3e97d

https://eips.ethereum.org/EIPS/eip-20

 https://misttrack.io/

https://hacked.slowmist.io/

慢雾科技

个人专栏

阅读更多

Foresight News

金色财经 Jason.

白话区块链

金色早8点

LD Capital

-R3PO

MarsBit

深潮TechFlow

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

金星链

[0:15ms0-0:886ms