8

黑客能调用,你和我也可以?Starstream被盗1500万美元事件分析

 2 years ago
source link: https://www.btc798.com/articles/89943.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

黑客能调用,你和我也可以?Starstream被盗1500万美元事件分析

BTCWan1天前2397

CertiK安全技术团队监测到收益聚合平台Starstream因其合约中的一个执行函数漏洞被恶意利用,致使约1500万美元的资产受到损失。

黑客随后将盗取的STARS代币存入Agora DeFi的借贷合约,并向其借入了包括Metis、WETH和m.USDC在内的多种资产。

Starstream是基于MetisLayer-2 rollup的一个可提供及产生聚合收益的产品。该协议由不同的开发者维护,由STARS进行维护并治理。

北京时间4月8日凌晨02:47,一位用户担心Starstream的风险,于是在推特上发布了相关截图。随后,凌晨03:11,有人在Starstream Discord社群宣布资金库已被耗尽,并建议用户们尽快将自己的资产于Agora中提出。

1649475336354654.jpg

凌晨04:36,另一位发言者于Starstream Discord社群的General Starstream Discord聊天区中表示"Execute Function "函数存在漏洞风险。

1649475336354518.jpg

攻击者调用合约并调用了Distributor treasury合约中的外部函数`execute()`。由于该函数为外部函数,可以被任何人调用,因此攻击者顺利将STARS代币从Starstream转移到自己账户。

合约漏洞分析

此次漏洞发生的根本原因是:Distributory treasury合约中的execute函数没有任何的权限控制,因此可以被任何人调用。这个execute函数其实是一个底层调用,通过这个底层调用,攻击者能够以Distributory treasury合约身份调用Starstream treasury合约的特权函数。

在这次攻击中,攻击者通过execute函数以Distributory treasury的身份取走了在Starstream treasury中的所有STARS代币。

1649475336349967.jpg

据CertiK SkyTrace显示,4月8日凌晨5点,黑客已顺利将所盗资金转移至Tornado Cash。

1649475355488258.jpg

漏洞交易:

https://andromeda-explorer.metis.io/tx/0xb1795ca2e77954007af14d89814c83b2d4f05d1834948f304fd9d731db875435/token-transfers

攻击者地址:

https://andromeda-explorer.metis.io/address/0xFFD90C77eaBa8c9F24580a2E0088C0C940ac9C48/transactions

攻击地址合约:https://andromeda-explorer.metis.io/address/0x75381c1F12733FFf9976525db747ef525646677d/contracts

Distributor Treasury合约:https://andromeda-explorer.metis.io/address/0x6f99b960450662d67bA7DCf78ac959dBF9050725/contracts

Starstream Treasury合约:

https://andromeda-explorer.metis.io/address/0x1075daD8CFd8bCbCfc7bEB234e23D507990C90e9/contracts

Starstream(STARS) 代币合约https://andromeda-explorer.metis.io/address/0xb26F58f0b301a077cFA779c0B0f8281C7f936Ac0/contracts

此次事件可通过安全审计发现相关风险。通过审计,可以查出这个函数是所有人都可以调用的,并且是一个底层调用。在此,CertiK的安全专家建议:

在开发过程中,应该注意函数的Visibility。如果函数中有特殊的调用或逻辑,需要确认函数是否需要相应的权限控制。

前段时间有大量的项目因public burn() 函数而被黑,其根本原因和这次攻击一样,都是由于缺乏必要的权限控制所导致。

作为区块链安全领域的领军者,CertiK致力于提高加密货币及DeFi的安全和透明等级。迄今为止,CertiK已获得了3200家企业客户的认可,保护了超过3110亿美元的数字资产免受损失。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK