跟进最近的 Raydium Liquidity Pool 漏洞

UTC时间 2022 年 12 月 16 日12:12(北京时间2022年12月16日20:12) ,恶意行为者通过获取Pool Owner (Admin) 帐户的访问权限,开始利用 Raydium Liquidity Pool V4的权限帐户。

OtterSec 发布了攻击的初步概述。

此更新还扩展了Raydium 官方帐户在 Twitter 上发布的初步事后分析。

这份详细的事后分析试图深入描述漏洞利用点实施方式、问题的缓解方式以及后续步骤。

Raydium官方复盘漏洞和后续工作

背景

上面提到的 Pool Owner 帐户最初部署在具有专用内部服务器的虚拟机上。经过进一步审查,目前没有证据表明 Pool Owner 帐户的私钥曾在其最初部署的虚拟机之外进行本地传递、共享、传输或存储。

正在进行内部安全审查,以确定帐户泄露的性质和根本原因。初步怀疑攻击者可能已经远程访问了部署该帐户的虚拟机或内部服务器。确切的入侵媒介尚未确定,但可能木马攻击是一种可能性。

初步审查表明,Raydium 漏洞利用者账户曾参与了 Solana 上的其他恶意活动。一个迹象是 cloudzy.sol于11 月 7 日发布的一条推文,该推文详细说明了一个金额为 198 SOL的钱包,通过层层分散交易,最终198 SOL 到达了最初 Raydium 推文中提到的主要漏洞利用者钱包的同一个账户。

漏洞利用详情

攻击者破坏了 Raydium 上的八个恒定产品流动性池,总计约 440 万美元被盗资金。集中的流动资金池和 RAY staking 不受该漏洞的影响。Raydium 上的任何其他资金池或基金均未受到该漏洞的影响。

下图显示了攻击者在利用受影响池中转移的资产。'Base'代币是指代币对左侧的代币,'Quote'是指代币对右侧的代币(通常是稳定币或SOL)。

Raydium官方复盘漏洞和后续工作

交易历史和资金损失的完整列表可以在这里找到:https ://github.com/raydium-io/dec_16_exploit

漏洞利用分为两个部分

1.withdrawPNL指令用于收取 RAY 回购的协议费用,它基于由 need_take_pc 和 need_take_coin 确定的预定义资产数量,这应该相当于流动池赚取的总费用的 12% 或从每次 swap 交易中赚取 25 bps 中的3bps。攻击者使用此功能从矿池金库中提取资金(指定为费用)。withdrawPNL 发起后,need_take_pc 和 need_take_coin 计算自动归零。

2.攻击者将SetParams指令与AmmParams::SyncNeedTake结合使用,在不需要发生交易量的情况下增大need_take_pc和need_take_coin的 余额,从而允许攻击者改变和增加预期费用,然后通过 withdrawPNL 从资金池金库提取资金(指定为费用),并反复进行。

Raydium官方复盘漏洞和后续工作

漏洞利用的初步缓解

UTC时间 2022 年 12 月 16 日 14:16(北京时间2022年12月 16日22:16),Raydium 部署了一个热补丁,也可称为所有程序现有依赖项的可控替换。换句话说,受感染帐户 ( HggGrUeg4ReGvpPMLJMFKV69NTXL1r4wQ9Pk9Ljutwyv ) 的权限已被撤销,并已更新为硬件钱包上的新帐户。

此补丁取消了攻击者进一步利用矿池的权限和能力。

采取的额外安全措施

UTC 时间 12 月 17 日 10:27(北京时间12月17日18:27):Raydium AMM V4 程序通过 Squads multisig 进行了升级,以删除不必要的管理参数,这些参数如果受到损害可能会对资金产生影响。

删除了以下参数:

·AmmParams::最小尺寸

·AmmParams::SyncLp

·AmmParams::SetLpSupply

·AmmParams::SyncK

·AmmParams::SyncNeedTake

此外,删除了所有管理参数:

·Raydium 稳定池

·Raydium Acceleraytor

·Raydium DropZone

所有剩余的管理参数,包括 withdrawPNL 功能,已于UTC时间12 月 17 日 15:00 左右(北京时间12月17日23:00)更新为当前用于程序升级的Squads 多重签名。

下一步

1.准确确定漏洞利用对用户 LP 余额池的影响

在黑客攻击发生之前,Raydium 正在为所有 LP 余额和相应的头寸大小提取快照和整理数据,并推断由漏洞利用导致的原始余额差异。确保对余额的准确核算是确定未来合适的解决方案的必要条件。获得受影响资金池中所有账户和LP余额的准确信息将需要一些时间,非常感谢大家这段时间的耐心等待。

2. 跟踪攻击者钱包并探索资金返还方案

Raydium 已经与多个 Solana 团队、第 3 方审计员和中心化交易所保持联系,他们为攻击者和相关账户提供了支持和潜在线索。虽然目前尚无定论,但已经出现了相关证据,将参与攻击的钱包(上文 "背景 "中提到的)与之前的NFT骗局项目和恶意抽走用户钱包的行为联系起来。Raydium 将继续与相关团队和安全专家沟通,探索追回资金的途径。

Raydium 提供 10% 的赏金以换取返还资金。Raydium 提供被利用的 RAY 余额作为额外奖励。

未来工作方向

当前,在评估对个人用户 LP 余额和资金的整体影响方面仍有很多工作要做。虽然 Raydium 理解所有各方都对有关资金感到焦虑,但在评估所有前进方向的选项之前,仍然需要时间来收集数据和信息。一旦有了更多的细节,我们将第一时间通报。

如果您有任何关于攻击者或此漏洞利用性质的相关信息,请通过 Raydium Discord:https://discord.gg/Raydium 联系我们。