Axion Network攻击事件始末

自家客户被盗了?一文还原Axion Network攻击事件始末


在11月2日上线后仅几个小时,Axion Network代币AXN的价格暴跌了100%。这次价格暴跌披露了其存在的漏洞,下文是CertiK安全审计团队针对此事件的完整分析。

2020年11月2日北京时间晚上七时左右➀,黑客利用Axion Staking合约的unstake函数设法铸造了约800亿个AXN代币。

黑客随后将AXN代币在Uniswap交易所中兑换以太币,重复此过程,直到Uniswap中ETH-AXN交易对的以太币所被耗尽,同时AXN代币价格降至0。

在攻击发生后的几分钟内,CertiK安全审计团队获知了该攻击事件,并即刻展开了调查。

CertiK安全审计团队认为该攻击极大可能是内部操作造成的,该内部操作通过在部署代码时,对项目依赖的OpenZeppelin依赖项注入恶意代码。

被恶意利用的智能合约函数不属于CertiK审核的范围内。

在将Axion项目代码和OpenZeppelin依赖代码结合并进行部署时,该恶意代码随着OpenZeppelin依赖代码被注入到部署的项目中。

攻击预谋

黑客在发动攻击时使用的是前一天从tornado.cash➁中获取的匿名资金➂,说明这是一次有预谋的攻击。

可能是以防攻击失败而节省一些资金,黑客账户在收到资金后,立即通过tornado.cash转出了2.1个以太币。

作为本次攻击的准备工作的最后一步,黑客从Uniswap交易所购买了大约70万个HEX2T代币➃。然而,这些资金最终没有参与到攻击中,而是为掩护攻击行为而放出的烟雾弹。

攻击准备

在北京时间下午四时➄,黑客先以数量为 0 和持续抵押时间为 1 天为参数调用stake函数,在Axion Network的抵押合同中创建“空”抵押。

这为黑客创建了一个Session条目,其会话ID为6,数量为0,股价为0。

此后,黑客预料到攻击将会成功,因此向Uniswap交易所预先授权了无限制的AXN。

随后,他们批准了Axion的NativeSwap合约,以获取即将转换为AXN代币的资金额。

黑客在大约北京时间下午五时➅调用了NativeSwap合约的deposit函数,然而黑客并未调用该合约的withdraw函数来获取其交换得到的AXN,这在NativeSwap合约的swapTokenBalanceOf函数清晰可见。

随后,他们在执行攻击前又调用了一次deposit函数,但是这次调用执行最终失败。

攻击执行

以上提到的交易仅仅是黑客为了掩护真正unstake攻击的烟雾弹。

由于黑客进行的交易未更改sessionDataOf映射,因此可以得出结论,这是一次多地址攻击

为了找到可能导致sessionDataOf映射受到影响的原因,CertiK安全审计团队在GitHub代码存储库中审查了项目方与CertiK共享的合约源代码。

经过仔细验证,团队无法在stake函数之外检测到对其或其成员的任何修改操作,这使得我们怀疑该项目智能合约是否被正确的部署。

攻击途径

在分析了已部署的Staking合约源代码之后,CertiK安全审计团队在Staking合约的已部署的源代码➆第665-671行发现了一处代码注入,该代码注入发生在被修改的OpenZeppelin库中的AccessControl智能合约 。

链接中的checkRole函数不属于OpenZeppelin v3.0.1的实现,而OpenZeppelin v3.0.1➇在项目的GitHub代码存储库中被列为依赖项。

在checkRole函数中,存在以下 assembly模块:

此函数允许特定地址通过底层调用根据其传入的参数对合约进行任意写入。带注释的assembly 模块如下所示:

此函数是在合约部署时添加的,因为OpenZeppelin的AccessControl的实现中并不存在此函数,这意味着参与部署代币的Axion Network成员从中作梗。

结论

此次攻击涉及到的代码,是在合约部署前被人为故意添加进去的。

此次事件与CertiK完成的审计毫无关联,对这次攻击所负责的人应是参与了Axion Network合约部署的相关人员。

在此CertiK也特别强调,为了保证审计报告的有效性,和对项目安全的保障,审计报告应包括已部署的智能合约地址。地址所指向的合约的代码应是和被审计过的源代码相同的。因此,请大家切勿因为看到项目“已审计”就不做任何背景调查而盲目跟进。

CertiK安全预言机,作为一个链上可实时交互进行安全检测的工具,可以有效确保并验证已部署的智能合约匹配已被审计的版本。

它可以从去中心化的安全运营商网络中检索一组安全评分,获得安全可靠的网络评估源代码,所有人都可以通过使用预言机来验证合约安全性。

在基于区块链的生态系统中,提高安全性就必须将传统审计与链上安全性分析相结合。CertiK安全预言机将有效减少链上交易与实时安全检测之间的距离,致力于运用去中心化的方法来解决安全难点。

参考链接:

➀https://etherscan.io/tx/0xc2a4a11312384fb34ebd70ea4ae991848049a2688a67bbb2ea1924073ed089b4

➁https://tornado.cash/

➂https://etherscan.io/tx/0x86f5bd9008f376c2ae1e6909a5c05e2db1609f595af42cbde09cd39025d9f563/advanced

➃https://etherscan.io/tx/0x6b34b75aa924a2f44d6fb2a23624bf5705074cbc748106c32c90fb32c0ab4d14

➄https://etherscan.io/tx/0x5e5e09cb5ccad29f1e661f82fa85ed172c3b66c4b4922385e1e2192dc770e878

➅https://etherscan.io/tx/0xf2f74137d3215b956e194825354c693450a82854118a77b9318d9fdefcfbf875

➆https://etherscan.io/address/0xcd5f8dcae34f889e3d9f93f0d281c2d920c46a3e

➇https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.0.1/contracts/access/AccessControl.so


24小时热点

热点专题

NFT艺术品到底是什么?

Beeple,“EVERYDAYS: THE FIRST 5 ...

2320904

Opera House

了解CHIA这篇就够了

这些清单旨在作为信息来源和研究的出发点,为你的研究提供常识性 ...

636559

Kusama 测试网

什么是 Infura?

11 月 11 日,因以太坊和 IPFS 的 API 服务供 ...

626973

IDG资本

OpenSea 为例子教大家如何购买 NFT

就如同流动性挖矿刚起步时候一样,大多数用户并不了解 NFT ...

609663

CryptoSpells

绿地集团数字化战略的NFT形象——8302款无聊猿!

30年前,绿地还是一家注册资本2000万元的小型绿化公司,历 ...

493829

Bybit

什么是私钥?

私钥是怎么来的,它跟你的密码学货币资产有何关联。

486042

芝麻开门交易所

2024年模因币牛巿SHIB是否能达到1美元?市场另外3个meme币也在热卖

SHIB是仅次于DOGE的第二大流行模因币,它能否达到1美元 ...

476086

Business2Community

数字人直播软件多少钱

数字人直播软件根据您使用的平台、功能范围不同,价格也不尽相同 ...

459247

MXC交易所

被朋友骗去弄数字货币

  有一次,一个朋友突然给我说他有一种可以赚钱的新方法,他说 ...

449990

DigiFinex

链圈百科:环境影响评价信用平台

环境影响评价信用平台是指一种使用信用技术来评估环境影响并对社 ...

417532

Tokhun