https://raydium.medium.com/detailed-post-mortem-and-next-steps-d6d6dd461c3e
2022 年 12 月 16 日、10:12 UTC 、悪意のあるアクターがエクスプロイトを開始しましたRaydium流動性プールV4 の権限アカウント にアクセスすることでプール所有者 (管理者) アカウント。
OtterSec が投稿した初期概要 攻撃の。
このアップデートは、最初の死後 Raydiumの公式アカウントからTwitterに投稿されました。
この詳細な事後分析では、エクスプロイトがどのように実行されたか、問題がどのように軽減されたか、および次のステップについての詳細な説明を提供しようとしています。
バックグラウンド:
上記のプール所有者アカウントは、専用の内部サーバーを備えた仮想マシンに最初に展開されました。追加のレビューの結果、現在、プール所有者アカウントの秘密キーが、最初にデプロイされた仮想マシンの外部で渡され、共有され、転送され、ローカルに保存されたという証拠はありません。
アカウント侵害の性質と根本原因を特定するために、内部のセキュリティ レビューが進行中です。最初の疑いは、攻撃者が仮想マシンまたはアカウントが展開された内部サーバーへのリモート アクセスを取得した可能性があるということです。正確な侵入ベクトルはまだ特定されていませんが、トロイの木馬による攻撃が 1 つの可能性として考えられます。
最初のレビューでは、Raydium エクスプロイト アカウントが Solana での他の悪質な活動に関与していることが示されています。これを示す 1 つの兆候は、つぶやき からcloudzy.sol 11 月 7 日に、最終的に 198 SOL に相当するウォレットのエクスプロイトが詳述されています。到着した の中に同じアカウント もともと資金を提供していた主要な Raydium エクスプロイト ウォレット で述べたように最初の死後 つぶやき。
エクスプロイトの詳細
攻撃者は、Raydium の 8 つの一定の製品流動性プールを侵害し、合計で約 440 万米ドルの資金を盗みました。集中流動性プールと RAY ステーキング プログラムは、エクスプロイトの影響を受けませんでした。 Raydium の他のプールや資金は、エクスプロイトの影響を受けませんでした。
以下の画像は、影響を受けるプールからエクスプロイト中に攻撃者によって転送された資産を示しています。 「ベース」トークンはトークン ペアの左側のトークンを指し、「クォート」はペアの右側のトークンを指します (通常はステーブルコインまたは SOL)。
取引履歴と失われた資金の完全なリストは、次の場所にあります。https://github.com/raydium-io/dec_16_exploit
エクスプロイトは 2 つの部分で発生しました。
- withdrawPNL 命令は、RAY 買い戻しのプロトコル手数料を徴収するために用意されており、need_take_pc と need_take_coin によって決定される事前定義された資産量に基づいています。これは、プールによって獲得された合計手数料の 12%、またはプールから獲得された 25 bps の 3bps に相当する必要があります。スワップ取引。攻撃者はこの関数を使用して、プールの保管庫から資金 (手数料として指定) を引き出しました。 withdrawPNL が開始されると、need_take_pc と need_take_coin の計算は自動的にゼロにリセットされます。
- 攻撃者は SetParams 命令を AmmParams::SyncNeedTake と組み合わせて使用して、取引量を発生させることなく、need_take_pc と need_take_coin の残高を膨らませました。繰り返し、withdrawPNL を介してプール ボールト。
エクスプロイトの初期緩和
2022 年 12 月 16 日 14:16 UTC に、Raydium はホット パッチまたはスタブを展開しました。これは、すべてのプログラムの既存の依存関係の制御可能な代替としても知られています。つまり、侵害されたアカウントの権限 (HggGrUeg4ReGvpPMLJMFKV69NTXL1r4wQ9Pk9Ljutwyv ) は取り消され、ハードウェア ウォレットに保持されている新しいアカウントに更新されました。
このパッチは、攻撃者の権限と、プールをさらに悪用する能力を無効にしました。
追加のセキュリティ対策
12 月 17 日 10:27 UTC : Raydium AMM V4 プログラムは、侵害された場合に資金に影響を与える可能性がある不要な管理パラメーターを削除するために、Squads マルチシグ経由でアップグレードされました。
次のパラメータが削除されました。
- AmmParams::最小サイズ
- AmmParams::SyncLp
- AmmParams::SetLpSupply
- AmmParams::SyncK
- AmmParams::SyncNeedTake
さらに、次のすべての管理パラメーターが削除されました。
- Raydium 安定プール
- レイジウム加速器
- レイジウムドロップゾーン
残りのすべての管理パラメーター (withdrawPNL 機能を含む) は、Squads に更新されました。マルチシグ 現在、12 月 17 日の 15:00 UTC 頃にプログラムのアップグレードに使用されています。
次のステップ
Raydium は、次の 2 つの面で同時に次のステップに近づいています。
- ユーザー LP 残高のプールに対するエクスプロイトの影響を正確に判断する
Raydium は、スナップショットを取得し、ハッキングが発生する前のすべての LP 残高と対応するポジション サイズのデータを照合し、エクスプロイトによって発生した元の残高の不一致を推定しています。今後の適切な解決策を決定するには、残高の正確な勘定が決定されるようにする必要があります。影響を受けるプールのすべてのアカウントと LP 残高の正確な情報を取得するには、しばらく時間がかかります。その間、しばらくお待ちください。
2.攻撃者のウォレットを追跡し、資金を返すためのオプションを探る
Raydium は、多数の Solana チーム、サード パーティの監査人、集中型取引所と連絡を取り合っており、攻撃者と関連するアカウントに関してサポートと潜在的なリードを提供してきました。現時点で決定的なものは何もありませんが、(上記の「背景」で説明したように) エクスプロイトに関与したウォレットを、以前の NFT 敷物プロジェクトと悪意のあるユーザー ウォレットの流出に結びつける証拠が明らかになりました。 Raydium は、関連するチームやセキュリティの専門家と引き続き連絡を取り合い、資金を回収する方法を模索していきます。
Raydium は、資金を返す代わりに 10% の報奨金を提供しています。 Raydium は、搾取された RAY 残高を追加の報奨金として提供します。
前進する
個々のユーザーの LP 残高と資金に対する全体的な影響を評価するには、まだやるべきことがあります。 Raydiumは、すべての関係者が問題の資金について不安を抱いていることを理解していますが、前進するためのすべてのオプションを評価する前に、データと情報を収集する時間が依然として必要です.追加の詳細は、利用可能になり次第お知らせします。