工控智汇

工控智汇

Radiant Capital 事后分析

admin 66 113

活动摘要

2024年10月16日,RadiantCapital遭遇安全漏洞,损失约5000万美元。此次攻击影响了三名Radiant开发人员,他们都是DAO的长期可靠贡献者。这些开发人员使用硬件钱包,且分布在各地,因此降低了发生协同物理攻击的可能性。

攻击者能够通过复杂的恶意软件注入攻击至少这三家核心参与者的设备。这些被攻击的设备随后被用来签署恶意交易。

虽然已经确认有三台设备被入侵,但很可能还有更多设备被入侵——入侵方式尚不清楚,正在调查中。这些设备被入侵的方式是,Safe{Wallet}(原名GnosisSafe)的前端显示合法交易数据,而恶意交易则在后台签名和执行。此次入侵发生在常规多重签名排放调整过程中,该过程定期进行,以适应市场条件和利用率。

DAO贡献者在整个过程中严格遵守行业标准操作程序(SOP)。每笔交易都在Terly上进行模拟以确保准确性,并在每个签名阶段由多名开发人员单独审核。Terly和Safe中的前端检查均未显示这些审核过程中出现任何异常。

为了强调这一点的重要性,在对常规交易的GnosisSafeUI和Terly模拟阶段进行手动审查时,这种入侵完全无法被发现。这已得到包括SEAL911和Hypernative在内的外部安全团队的证实。

除了由于失败而重新提交SafeApp交易外,所有三笔多重签名交易的前端验证均未显示任何妥协迹象。需要强调的是,由于失败而重新提交Safe交易是一种常见且可预料到的情况。在Safe前端提交的交易可能会由于gas价格波动、nonce不匹配、网络拥塞、gas限制不足、智能合约执行错误、代币不足、待处理交易、前端同步问题、超时或多重签名设置中的权限/签名错误而失败。因此,这种行为并没有立即引起怀疑。恶意行为者利用了这种常态,利用该流程在多次尝试中收集多个受损签名,同时模仿常规交易失败的情况。

攻击者随后从Arbitrum和BSC的核心市场中窃取了约5000万美元。此外,他们还利用开放批准从用户账户中提取资金。强烈建议Radiant平台的所有用户撤销所有链(Arbitrum、BSC、以太坊和Base)上的任何批准。

DAO一直与美国执法部门和ZeroShadow密切合作,与这两个组织保持着良好的关系。他们充分了解此次入侵事件,并正在积极努力冻结所有被盗资产。DAO被这次攻击深深打击,并将继续全天候待命,协助相关机构识别攻击者并尽快追回被盗资金。

攻击媒介和方法

攻击者的目标是从硬件钱包获得三个多重签名批准,以授权transferOwnership操作。他们成功入侵了多名开发人员的设备—至少有三台,但具体数字仍不确定。目前尚不清楚这些设备是如何被入侵的。此次攻击利用了一种复杂的方法,即使用Safe{Wallet}进行交易验证的开发人员在前端看到看似合法的交易。

当他们批准交易时,受感染的设备会拦截批准,并将恶意交易转发到硬件钱包进行签名。之后,Safe钱包界面将显示一条错误消息,提示用户再次尝试签名。此过程为攻击者提供了三个有效但恶意的签名。

尽管经过了多层验证,包括通过Terly和其他审计工具审查交易,但已签名的交易在界面上看起来仍然正常。Ledger硬件钱包上显示的盲签签名也似乎有效,这为攻击者的方法增加了另一层混淆。这些策略使攻击者能够在不被察觉的情况下执行转账。

安全隐患预防建议:

评估漏洞的团队认为,这是DeFi领域有史以来最复杂的黑客攻击之一,许多协议都面临风险。为了减轻将来类似的攻击,应考虑以下策略:

多层签名验证:实施治理层,如果一个或多个签名者遇到问题或异常,则流程将暂停以进行进一步验证,然后再继续。即使只有一个签名者遇到错误,也应触发审核。错误可以很简单,例如本应接受的交易没有通过,然后提示进行新的签名

独立验证设备:使用不受损害的独立设备在签名前验证交易数据。此设备应生成可读的签名验证码,该验证码与硬件钱包中显示的数据相匹配。

增强Ledger/Trezor安全性:避免对关键交易使用盲签。如果无法避免,请确保涉及硬件钱包的任何合约交互都需要单独的可见验证层,例如在硬件钱包本身上以可读格式显示交易数据。

错误触发审计:集成一种机制,在进行额外的签名尝试之前,重复发生的交易错误或故障会自动触发对交易的全面审计。

手动检查交易负载:在提示签名时从钱包提供商处获取原始交易数据(例如Metamask、Rabby)并将其插入。确认您正在调用的函数和ToAddress都与预期行为匹配。如果设备被入侵,就像上面的情况一样,它要么根本无法解码,要么调用与您认为正在调用的函数不同的函数,要么导致所有者地址与您预期的地址不同。强烈建议使用Gnosis对硬件钱包上的每个消息哈希进行双重确认:

事件后总结

此次攻击影响了三名Radiant开发人员,他们都是DAO的长期可靠贡献者。攻击者使用恶意软件在设备级别操纵交易数据,绕过Terly中的手动检查和模拟,从而返回正常结果。受感染的设备允许攻击者通过签名者认为合法的欺诈交易收集多个中毒签名。

虽然硬件钱包通常是安全的,但使用盲签名(尤其是在DeFi环境中)会带来重大风险。攻击者利用了这一点,在GnosisSafe中呈现看似正常的交易,除了常规交易失败(常见情况,使检测变得困难)外,没有可见的异常。

作为即时预防措施,每个保险箱成员都使用新的、未受攻击的设备创建了新的冷钱包地址,确保没有残留漏洞。DAO通过将签名者数量减少到7人,显著加强了Admin和DAO多重签名的安全性(其他保险箱将在适当时候效仿),新的签名门槛为7人中的4人,确保近60%的签名者必须批准交易才能执行。

除此之外,贡献者现在将使用Etherscan上的输入数据解码器对每笔交易的交易数据进行双重确认,从而在交易签署之前提供额外的准确性。

预计DAO将能够在几天内恢复Base和Eth市场的暂停。

DAO还将为RIZ市场创建新的保险箱,并将RizRegistry合约的所有权转移到这些安全保险箱,以确保与核心市场的分离。

通过新实施的时间锁合约,所有合约升级和所有权转移也将至少延迟72小时。这一延迟将为社区和开发人员提供足够的时间来审查和验证变更,然后再生效。然而,这也会延迟对关键漏洞的响应,而且鉴于三名签名者的设备均已遭入侵,目前尚不清楚时间锁是否能阻止此次攻击。

我们的关键合约中将权限角色分开,以确保没有一个角色拥有“超级”权力。通过将职责分配给多个角色,DAO大大降低了任何个人或团体获得过度控制的风险。

最后,为了恢复Arbitrum和BSC上的核心市场,DAO将重新部署整个AaveV2借贷套件,它由以下合约组成:

借贷池地址提供商

借贷池地址提供商注册中心

借贷池

借贷池配置器

借贷池抵押品管理器

贷款利率预测

AaveOracle

AaveProtocolDataProvider

在整个过程中,DAO一直与美国执法部门和ZeroShadow密切合作,与这两个组织保持着良好的关系。他们充分了解此次入侵事件,并积极努力尽可能冻结所有资产。DAO被这次袭击深深打击,并将继续全天候待命,协助相关机构识别攻击者并尽快追回被盗资金。

详细事件时间表2024–10–02

01:12:37UTC

Arbitrum:通过tx部署了一个恶意合约:。几天后,该合约将被用于恶意目的。
合约:。

08:22:46(世界标准时间)

BSC:类似的恶意合约已通过tx部署在币安智能链上:。
合约:

相同或类似的恶意合约在Base网和以太坊主网上均被部署,但最终均未能成功执行:

基地:

以太坊:

2024–10–16

15:46UTC:开发人员“C1”提出了一项ARBNonce为230的交易,以更新供应和借入上限。在此过程中,交易签名至少失败了三次,最初归因于RPC问题。

为了排除故障,C1使用上第一个可用选项替换了ArbitrumRPC,最终成功签署了交易。然后,按照SOP,在Telegram上的“RADIANT—Multisig”组的#admin频道中宣布了此交易。以下消息已发布到Telegram组:

这是C1构建的原始Nonce230交易:

然而,ARBNonce230随后于UTC时间17:09被覆盖(见下文),并被调用transferOwnership函数的恶意交易所取代:

需要注意的一个奇怪之处是——截至发布时,当查看已取消的ARBNonce230的URL链接时,UI中的时间戳似乎是查看者的当前时间。因此,尽管这在时间顺序上并不准确,但UI时间戳为“不到一分钟前”。

17:04UTC:开发人员C2提议通过ETHNonce127、Arbitrum和BSCChain对以太坊主网进行更改,以更新RDNT代币分配率。然而,Nonce127被替换以转移所有权并执行恶意代码。C2指出,他的Rabby钱包在此期间遇到了问题。

17:09:18UTC:上述恶意交易替换了ARBNonce230,将LingPoolAddressesProvider的所有权转让给新所有者。交易:。

17:09:35UTC:主网触发自动暂停。
交易:。17:09:40UTC:BSC链上触发了自动暂停。
交易:。17:11:00UTC:BSCChainLingPoolAddressesProvider所有权已转移至0x57ba8957ed2ff2e7AE38F4935451E81Ce1eEFbf5,绕过暂停并升级实施。
交易:。Hypernative警报系统标记了可疑活动。开发人员C2在Telegram上联系了该团队。

17:12–17:43UTC:团队迅速了解情况并发起第一次作战室呼叫。

17:43:41PMUTC:已执行交易以暂停Base上的LingPool。
交易:。

考虑到“中间人”攻击的潜在威胁,安全团队确定,任何后续删除受感染钱包的行动都必须在适当的风险评估后进行。

21:36UTC:执行交易以删除主网上受损的钱包:

21:40UTC:执行交易以删除Base上受损的钱包:

22:10UTC:执行交易以删除BSC上受损的钱包:

笔记

一些开发人员报告了在Safe{Wallet}应用程序中签署交易的问题。开发人员C3提到:
“在过去几周中,我不得不在Rabby中签署两次交易。C2也注意到了RPC问题。黑客入侵后,我的Rabby钱包停止运行并消失了,与C2的经历类似。”

C1还报告说在最初失败后必须重新签署交易。

Radiant协议中的常规更新需要来自管理员多重签名的交易,该多重签名拥有系统中最重要的权限。

钱包被盗

0x20340c2a71055FD2887D9A71054100FF7F425BE5(通过Rabby管理的Ledger硬件钱包)

0x83434627e72d977af18F8D2F26203895050eF9Ce(通过Rabby管理的Ledger硬件钱包)

0xbB67c265e7197A7c3Cd458F8F7C1d79a2fb04d57(通过Frame管理的Trezor硬件钱包)

管理员多重签名钱包和签名阈值(漏洞利用时)

以太坊:0x0235a22a38Dd09291800e097bD2ebE6e3b4d5F04(3/9)

BSC链:0xE4714D6BD9a6c0F6194C1aa8602850b0a1cE1416(3/11)

基数:0xBBf7eDF92926b775A434f9DF15860f4CD268B0A0(3/9)

仲裁:0x111CEEee040739fD91D29C34C33E6B3E112F2177(3/11)

已知攻击者的钱包

0x0629b1048298AE9deff0F4100A31967Fb3f98962(主要攻击者)

0x57ba8957ed2ff2e7ae38f4935451e81ce1eefbf5(主攻击合约)

0x911215CF312a64C128817Af3c24B9fDF66B7Ac95(测试地址)

0x97a05becc2e7891d07f382457cd5d57fd242e4e8(洗钱地址)

0x9c5939AAC4f65A0eA233E657507C7b54acDE2841(洗钱地址)

0x8B75E47976C3C500D07001F620887(Arb+Eth上的资金合并)

0xcF47c058CC4818CE90f9315B478EB2f2d588Cc78(BSC上合并的资金)

0xa0e768a68ba1bfffb9f4366dfc8d9195ee7217d1(GMX交互/交换)

0xc24927Bd40Bab67CcfB2ca0A90d6cbB8Edb21302(Arbitrum上的批准排水器)

0x579145D6d1F​26a460d9BDD3040C37517dac379ac(BSC上的批准消耗器)

0xC4173a794122644870C8fd07c226acF992507897(BSC+ARB上的批准消耗器)

0x3D4C56cdB97355807157F5C7d4F54957f0E9af44(10月17日创建合约)

0x3c09Ae8571db07a3347c1D577BB9a54F96bFfa24(10月17日创建合约)

0xbc20e84d80a684dAEa4468be6F199a233A3d2363(测试合约)

0x5eb63694A18B618C4EbDd9CA3333fa7f9b8B9cB4(与测试合约相关)

0xD899F3d8ff2A723642d5C55eD1998713C530b7b3(与测试合约相关)