PAR:项目方遇见「打桩机」?被攻击约40次损失170万美元-ODAILY

2022年3月13日,成都链安链必应-区块链安全态势感知平台舆情监测显示,Paraluni合约遭受攻击,损失约170万美元,成都链安技术团队对此事件进行了相关分析。

#1总述

我们以第一笔攻击交易0xd0b4a1d4964cec578516bd3a2fcb6d46cadefe1fea5a2f18eec4c0a496e696f9为例:

地址列表

攻击地址:

0x94bC1d555E63eEA23fE7FDbf937ef3f9aC5fcF8F

攻击合约:

0x4770b5cb9d51EcB7AD5B14f0d4F2cEe8e5563645

ParaProxy:

动态 | 项目方需多注意安全体系的持续性建设:据IMEOS报道,跟据慢雾的威胁情报分析,熊市的攻击可能会加剧,我们估计几个原因:1. 地下黑客一样会觉得牛市会来;2. 地下黑客的工作模式是产业化的,只要数字货币相关项目方在,攻击就没理由停止;3. 数字货币相关项目方可能会因为熊市而懈怠了安全体系建设。[2018/12/10]

0x633Fa755a83B015cCcDc451F82C57EA0Bd32b4B4

ParaImpl:

0xA386F30853A7EB7E6A25eC8389337a5C6973421D(MasterChef)

UGT:

0xbc5db89CE5AB8035A71c6Cd1cd0F0721aD28B508

动态 | Digix项目方宣布已将7万枚ETH换成法币 5.4万枚转入交易所钱包:项目方Digix于9月2日宣布:“将众筹地址DigixDAO持有的46.5135万枚ETH转至DigixDAOMultiSig(0x75打头)安全地址;取出价值2000万美元的ETH,使用北京时间9月4日12时Kraken和Gemini交易所的第一根小时线开盘价的均值作为结算价,将ETH换成美元。”昨日该项目方已完成46.5万枚ETH大额转移。不久,近7万枚ETH转至0x7b打头的地址,价值恰好约2000万美元。随后,该0x7b打头的地址将5.4万枚ETH转入了Gemini的钱包地址。[2018/9/5]

UBT

0xcA2ca459Ec6E4F58AD88AEb7285D2e41747b9134

《5家项目方炮轰火币》事件中 5个项目方有三个发布公告称未参与此事:今日,针对自媒体发布的文章《币圈大地震!5大项目方炮轰火币砸盘黑幕,0成本操纵币价!》,火币李林发朋友圈:“5个项目方居然有两个不知情,然后‘区块链自媒体’居然就敢直接写大字报。。。”,并附其中两大项目方MATRIX和GVE的微信公告截图:

MATRIX——关于近期“5个项目方”质疑火币交易数据真实性的报道,MATRIX在此特向大家声明:MATRIX从未与任何项目联合参与此活动。网传MATRIX在五个项目方之列为不实传言,望大家知悉。

GVE——对于近期网络上出现的《5家项目方炮轰火币》等内容,GVE基金会对此毫不知情,也并未曾参与其中的任何行动。Hadax是一个社区化运营交易平台,GVE基金会与之保持着良好的合作关系。对于冒用GVE项目团队名义对交易平台进行恶意诽谤等行为,GVE基金会表示强烈谴责,并保留追究法律责任的权力。

同时,金色财经收到消息,原链官方也发布公告称:原链对于社区传言的《五家》诋毁火币HADAX一事完全不知情,原链不会参与联合诽谤这样的行动,希望市场和社区不要被流言所迷惑。

此外,金色财经发现,该文章标题提到的“五家”项目,而文章内容中只提到了4家项目,目前文章中所提的项目已有3家项目对此事发表声明称未参与此次行动。关于该事件的详细进展,请关注金色财经的后续报道。[2018/6/10]

1.向CakeSwap(0x7EFaEf62)中通过闪电贷借贷224BSC-USD,224BUSD

工信部区块链技术与产业论坛何震:项目方应聘请专业的律师来解决合规问题:今日在3点钟无眠区块链群中,工信部区块链技术与产业论坛何震教授说:“涉及股权类的token,各国通常的做法应按照发行所属地的证券监管机构监管。项目方应聘请专业的律师来解决合规问题而不是凭经验”。[2018/2/19]

2.把第1步借到的代币向Para-LP(0x3fD4FbD7)中添加流动性,并将获得的222枚流动性代币的接收地址指定为UBT(0xcA2ca459)地址,这一步是为了后续的重入做准备。

图1初始准备

3.攻击合约(0x4770b5cb)调用ParaProxy合约的depositByAddLiquidity函数,添加流动性代币抵押挖矿,此处传入的pid为18,对应的Para-LP(BSC-USD/BUSD)0x3fD4FbD7a83062942b6589A2E9e2436dd8e134D4,但是token0,token1传入的地址为UGT、UBT的地址,数量为1e18。

图2重入攻击

4.此处原本正常的逻辑为:添加流动性,并将流动性代币存入pid为18的流动性抵押池,但是本函数在代码中并未检查添加的流动性token0、token1得到的流动性代币是否与pid对应的流动性代币地址一致,导致了攻击的发生。注意,并不是所有的流动性池抵押都有该风险,由于第2524行代码,pool的ticket需要为零地址才能够通过该检查。

但是攻击者通过控制执行逻辑,实际执行的逻辑为:第2505,2506行将攻击者指定的1枚UGT、1枚UBT代币转入ParaProxy合约。然后在第2535行代码用于添加流动性,并在第2537行检查添加的流动性代币数量。

此时,vars.oldBalance为初始流动性代币数量。攻击者为了通过第2537行的检查,在添加流动性的过程中,进行了重入攻击。由于在添加流动性时调用了攻击者构造的恶意代币的transferFrom函数,攻击者在transferFrom函数中才将流动性通过deposit函数存入ParaProxy合约。这也是第2步时攻击合约将流动性代币接收地址指定为UBT合约的原因所在。

在重入过程中,UBT合约存入了真正的LP代币222枚,并计入ParaProxy的账本中。在重入完成后,ParaProxy合约地址新增了222枚LP代币,ParaProxy合约将其视为攻击合约添加的LP,并计入账本中。至此,UBT合约和攻击合约都新增了222枚LP的存取记录。

图3ParaImpl合约相关代码

重入相关过程如下图所示:

图4攻击流程示意图

5.UBT合约和攻击合约分别调用withdraw函数,从ParaProxy合约提取221枚LP,并归集到攻击合约,由攻击合约将LP移除流动性并获取对应的BSC-USD以及BUSD。

6.归还闪电贷225枚BSC-USD,225枚BUSD,并将获利的221枚BSC-USD、225枚BUSD发送到攻击者地址。整个攻击交易执行完成。

#2总结建议

攻击者一共执行了约40次攻击,共获利约170万美元。截止发稿时,攻击者通过跨链协议将其转到以太坊网络中,并将其中的660枚ETH转入Tornado.Cash,另外5枚ETH转入了0xDd52CE617cAF1b7C8cEaCC111DE2f1c54E20C1b0地址。

本次攻击主要由合约代码中存在逻辑缺陷以及存在资金操作的关键函数未进行防重入导致。建议合约开发者在开发过程中进行完整的测试以及第三方审计,并养成使用Openzeppelin库的ReentrancyGuard合约来进行重入攻击的防范。

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

地球链

火必区块链:电信3.0——第二章-ODAILY

自现代电信诞生以来,该行业一直以闪电般的速度创新、发展和进步。然而,近年来,这种情况有所放缓。硬件和软件供应商为了保持在高层的地位而扼杀创新,导致全球覆盖面积增长率下降.

[0:15ms0-0:986ms