Back to Blog

ゼロゴキ攻撃の分析

Code Auditing
2021年8月9日
3 min read

2021年8月8日(北京時間、ブロック高12982491)、Zerogokiが攻撃を受け、約67万ドルの損失が発生しました。調査の結果、侵害されたプライスオラクルに関連していることが判明しました。攻撃者は正規の秘密鍵で署名されたプライスオラクルを提供し、その中にスワップされるトークン数を細工した値が含まれていました。しかし、攻撃者がなぜ有効な署名を構築できたのかは現時点では不明です。

コード分析

まず、攻撃を受けたコントラクト (0x80ecdb90)の分析を行いました。

swap関数はdecode_opを呼び出してオラクル内の情報を取得します。検証を行った後、コントラクトはns[0] x.tokenをバーンし、ns[1] y.tokenをミントし、スワップ手数料をGOVコントラクトに支払います。

decode_opの実装から、パラメータには3つの署名が存在することがわかります。これらの署名は、トークンスワップ(バーンとミント)を実行する前に確認(および認可)される必要があります。

まとめると、swap関数の最初のパラメータnsはスワップされるトークン数を定義します。2番目のパラメータには検証が必要な署名が含まれています。検証が通過すると、スワップされるトークン数は最初のパラメータ(ns)で定義された値になります。

攻撃分析

攻撃トランザクション 0x81e5f715 において、攻撃者は有効な署名を含むメッセージを構築し、細工されたnsパラメータ(大量のzUSDを含む)を渡しました。その結果、攻撃者は300 REIを使用して70万zUSDをスワップしました。

署名と照合された3つのアドレスは以下の通りです:

0x0d93A21b4A971dF713CfC057e43F5D230E76261C
0x3054e19707447800f0666ba274a249fc9a67aa4a
0x4448993f493b1d8d9ed51f22f1d30b9b4377dfd2

ただし、現時点ではこれらのアドレスの秘密鍵がなぜ漏洩したのかについての情報はありません。

まとめ

DeFiプロジェクトを安全に保つことは容易ではありません。コード監査に加えて、プロジェクトの状態を積極的に監視し、攻撃が発生する前にブロックすることをコミュニティが取り組むべきだと考えています。

BlockSecについて

BlockSecは、世界的に著名なセキュリティ専門家のグループによって2021年に設立された先駆的なブロックチェーンセキュリティ企業です。同社は、大規模普及を促進するために、新興のWeb3世界のセキュリティとユーザビリティの向上に取り組んでいます。そのために、BlockSecはスマートコントラクトおよびEVMチェーンのセキュリティ監査サービス、セキュリティ開発と脅威の積極的なブロックのためのPhalconプラットフォーム、資金追跡・調査のためのMetaSleuthプラットフォーム、そして暗号世界を効率的に活用するWeb3ビルダー向けのMetaSuites拡張機能を提供しています。

現在までに、MetaMask、Uniswap Foundation、Compound、Forta、PancakeSwapなど300社以上の著名なクライアントにサービスを提供しており、Matrix Partners、Vitalbridge Capital、Fenbushi Capitalなどの優れた投資家から2回の資金調達で数千万ドルを調達しています。

公式ウェブサイト: https://blocksec.com/

公式Twitterアカウント: https://twitter.com/BlockSecTeam

Sign up for the latest updates
安全な保管を超えて、第2部:ウォレットの暗号技術を安全に実装する
Security Insights

安全な保管を超えて、第2部:ウォレットの暗号技術を安全に実装する

攻撃者は、保護された秘密鍵のコピーを読み取らずに、その秘密鍵を復元できるのでしょうか。『Beyond Secure Storage』の第2部では、乱数の品質不足、エントロピーの損失、署名用ノンスの不備によって鍵の予測や復元が可能になった6件の事例を検証します。そこから鍵生成と署名に関する実装要件を導き出し、決済機関がコードレビューと導入済みシステムのテストを通じて、それらをどう評価できるかを説明します。

安全な保管を超えて、第1部:安全な決済・署名ワークフローの設計
Security Insights

安全な保管を超えて、第1部:安全な決済・署名ワークフローの設計

攻撃者が秘密鍵を盗まずに、認可されていない操作が有効な署名を得ることは、なぜ可能なのでしょうか。「安全な保管の先へ」第1回では、Bitget、Bybit、Binanceなどの事例を通じて、支払い要求、トランザクションの構築、署名、実行、決済の各段階における認可の不備を検討します。そのうえで、認可されていない操作を防ぎ、損失を抑えるための設計原則を導き出し、レビュー、監査、ペネトレーションテスト、演習によって、それらの防御策をどう検証できるかを説明します。

NEAR Intentsの悪用:返金処理の欠陥とセキュリティ上の教訓
Security Insights

NEAR Intentsの悪用:返金処理の欠陥とセキュリティ上の教訓

NEAR Intentsへの攻撃では、過大な払い戻しイベントを利用し、預け入れた資産が返還された後も内部残高を維持しました。本分析では、レシートの処理の流れと、合計3,865,021 USDTに上るBNB Chainでの7件の出金を再構成します。また、これらの資金流出とプロジェクトが報告した全額回収を区別し、NEARスマートコントラクトの開発と監査におけるセキュリティ上の考慮事項を示します。

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit
ゼロゴキ攻撃の分析