1 イベント概要
2024年7月18日、インドの仮想通貨取引所WazirXのマルチシグウォレットから2億3000万ドル以上が盗まれた。このマルチシグネチャ ウォレットは Safe{Wallet} スマート コントラクト ウォレットです。攻撃者は、マルチ署名署名者に契約のアップグレード トランザクションに署名するよう誘導し、アップグレードされた契約を通じてウォレット内の資産を直接転送し、最終的に 2 億 3,000 万米ドルを超えるすべての資産を転送しました。
2 攻撃プロセスの分析
注: 以下の分析は、WazirX および Liminal のイベント後レポート、オンチェーン データ、およびインターネット上の公開情報に基づいています。不完全な情報やエラーが含まれる可能性があり、偏った分析結論につながる可能性があります。分析結果は参考値であり、今後のメーカーの調査結果に左右されます。
元のリンク:
WazirX ブログ: https://wazirx.com/blog/wazirx-cyber-攻撃-key-insights-and-learnings/
法定監護ブログ: https://www.liminalcustody.com/blog/update-on-wazirx-incident/
2.1 マルチシグネチャウォレットの設定と攻撃プロセス
両当事者が開示した情報によると、WazirX は資金管理に Safe (以前は Gnosis Safe として知られていました) を使用しており、Liminal を通じて調整されています。 Safeウォレットは4/6署名方式を採用しており、5つの秘密鍵はWazirXメンバーがハードウェアウォレットを通じて管理し、1つの秘密鍵はLiminalがHSMを通じて管理します。
通常の手順では、WazirX は Liminal プラットフォームの Web ページを通じてトランザクション転送を開始し、転送アドレスは Liminal プラットフォームによって維持されるアドレス ホワイトリストによって制限されます。 WazirX の 5 人の署名者のうち 3 人がトランザクションが正しいことを確認した後、ハードウェア ウォレットを使用して署名しました。 Liminal プラットフォームは 3 つの署名を収集した後、HSM を使用して最後の署名を追加し、トランザクションをチェーンに置きます。オンチェーン攻撃トランザクションから判断すると、攻撃トランザクションには 3 つの法的署名が含まれており、4 番目の署名はトランザクション開始者 (つまり Liminal) であり、開示されたウォレット管理構造と一致しています。
Liminal と WazirX の両方からのレポートを組み合わせると、この悪意のあるマルチシグネチャ トランザクションを開始するプロセスは次のようになります。
攻撃者は、未知の手段 (ゼロデイ ネットワーク攻撃、ソーシャル エンジニアリング攻撃などを含みますが、これらに限定されません) を通じて WazirX 署名トランザクションを誘発します。
WazirX のメンバー 3 名は、ブックマークなどを通じて Liminal プラットフォームにログインし、Google 認証と MFA 認証を通過した後、署名されるトランザクションが 2 つの GALA と 1 つの USDT 送金トランザクションであることを確認し、ハードウェア ウォレットを使用して署名しました。しかし、被害者が実際に署名したのはトークン転送トランザクションではなく、マルチシグネチャウォレットのコントラクトアップグレードトランザクションでした。実際の取引内容と称する送金取引との間に不一致があるため、Liminal プラットフォームはそれぞれ 3 件の取引を拒否しました。
これまでのところ、攻撃者は契約アップグレード トランザクションの 3 人のメンバーの署名を収集し、3 つの正しい署名を使用して悪意のある契約アップグレード トランザクションを Liminal プラットフォームに再度送信しました。
Liminal プラットフォームは署名が正しいことを確認した後、4 番目の署名者としてトランザクションを開始し、トランザクションがチェーンにアップロードされた後、ウォレット コントラクトがアップグレードされ、制御が攻撃者に移されます。
WazirX によると、署名者はハードウェア ウォレットを使用して秘密鍵を保管します。攻撃者はまた、転送トランザクションを偽造して 3 人の署名者の署名を収集しました。したがって、3 人の WazirX 管理者は秘密鍵を漏洩していないと推測されます。同様に、Liminal では秘密鍵の漏洩はありません。そうでない場合、攻撃者は Liminal プラットフォームを通じて最後のトランザクションを開始する必要がありません。
一方、WazirX によると、署名者はブックマークを介して正しい Liminal プラットフォームにアクセスし、Google と MFA の検証を実行しました。 Liminal プラットフォームは 3 つの異常なトランザクションのログも記録しているため、WazirX が署名を収集するために偽の Liminal プラットフォームのフィッシング ページにログインした可能性も排除できます。さらに、WazirX が公開した機器の予備的なフォレンジック結果によれば、WazirX の署名者 3 人の機器は攻撃されていないと考えられています。
要約すると、考えられる攻撃方法の 1 つは、攻撃者が中間者攻撃、XSS 攻撃、またはその他のゼロデイ攻撃を通じて WazirX 被害者のブラウザ フロントエンド ページをハイジャックし、WazirX に表示される正規のトランザクション コンテンツを偽造することです。被害者。攻撃者は 3 人の WazirX 被害者の署名を収集した後、既存のセッションを通じて最終契約アップグレード攻撃トランザクションを Liminal プラットフォームに送信し、Liminal プラットフォームのリスク制御を通過した後、チェーンにアップロードすることに成功しました。
2.2 攻撃によって明らかになった問題
前述の分析によると、WazirX と Liminal の両方がインシデントにおける特定の問題を明らかにしました。
限界プラットフォームのリスク管理は厳密ではありません。
最終チェーンの攻撃トランザクションから、Liminal プラットフォームがコントラクト アップグレード トランザクションに署名し、それをチェーンにアップロードしたことがわかります。プラットフォームのホワイトリスト転送リスク管理戦略は、本来の役割を果たしていませんでした。
Liminalプラットフォームが公開したログから、同プラットフォームは3件の不審な取引を発見して拒否したが、直ちにユーザーに警告したり、ウォレット送金取引を凍結したりしなかったことが分かる。
WazirX はハードウェア ウォレットの署名内容を注意深くチェックしませんでした。
ハードウェアウォレットに表示される内容が、署名される実際の取引内容となります。マルチ署名トランザクションに署名する際、WazirX の署名者は、Liminal ページに表示されるトランザクションを信頼し、ハードウェア ウォレットに署名される内容が Liminal ページに表示されるトランザクションと一致するかどうかを注意深く確認せずに直接署名しました。これにより、署名が提供されました。攻撃者が要求した契約アップグレード トランザクションの。