跟進最近的Raydium Liquidity Pool 漏洞
UTC時間2022 年12 月16 日12:12(北京時間2022年12月16日20:12) ,惡意行為者通過獲取Pool Owner (Admin) 帳戶的訪問權限,開始利用Raydium Liquidity Pool V4的權限帳戶。
OtterSec 發布了攻擊的初步概述。
此更新還擴展了Raydium 官方帳戶在Twitter 上發布的初步事後分析。
這份詳細的事後分析試圖深入描述漏洞利用點實施方式、問題的緩解方式以及後續步驟。
背景
上面提到的Pool Owner 帳戶最初部署在具有專用內部服務器的虛擬機上。經過進一步審查,目前沒有證據表明Pool Owner 帳戶的私鑰曾在其最初部署的虛擬機之外進行本地傳遞、共享、傳輸或存儲。
正在進行內部安全審查,以確定帳戶洩露的性質和根本原因。初步懷疑攻擊者可能已經遠程訪問了部署該帳戶的虛擬機或內部服務器。確切的入侵媒介尚未確定,但可能木馬攻擊是一種可能性。
初步審查表明,Raydium 漏洞利用者賬戶曾參與了Solana 上的其他惡意活動。一個跡像是cloudzy.sol於11 月7 日發布的一條推文,該推文詳細說明了一個金額為198 SOL的錢包,通過層層分散交易,最終198 SOL 到達了最初Raydium 推文中提到的主要漏洞利用者錢包的同一個賬戶。
漏洞利用詳情
攻擊者破壞了Raydium 上的八個恆定產品流動性池,總計約440 萬美元被盜資金。集中的流動資金池和RAY staking 不受該漏洞的影響。 Raydium 上的任何其他資金池或基金均未受到該漏洞的影響。
下圖顯示了攻擊者在利用受影響池中轉移的資產。 'Base'代幣是指代幣對左側的代幣,'Quote'是指代幣對右側的代幣(通常是穩定幣或SOL)。
交易歷史和資金損失的完整列表可以在這裡找到: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 從資金池金庫提取資金(指定為費用),並反復進行。
漏洞利用的初步緩解
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 聯繫我們。