分散型金融(DeFi)は今週もハッキングを免れない。攻撃者は、比較的よく知られているリエントランシー攻撃により、グリムファイナンスプロトコルから3,000万ドルを盗むことに成功しました。
グリムファイナンス、3000万円盗まれる
分散型金融(DeFi)プロトコルであるグリムファイナンス(GRIM)が、自身のTwitterアカウントでこのニュースを確認しました。今週の土曜日には、攻撃を受けて3,000万ドルのデジタル資産が失われました。この欠陥は金庫に直接影響し、現在すべてのユーザーの資金が危険にさらされています。
このプロトコルは、Solidity言語で構築され、Ethereum(ETH)と互換性のあるFantom Operaブロックチェーンに実装されています。グリムファイナンスは「複合的なリターンの最適化」を謳っており、トークンを一時的に金庫に閉じ込めることで、トークンにリターンをもたらすことを約束しています。
Hello Grim Community,
本日、約6時間前に外部の攻撃者によって当社のプラットフォームが悪用されたことを、心よりお知らせいたします。攻撃者のアドレスが特定され、3,000万円以上の盗みがここで行われています https://t.co/qA3iBTSepb
– Grim Finance (@financegrim) 2021年12月19日
技術資料の中で、Grimは「ユーザーが手間をかけずに、より多くの報酬を得られるようにする」ことを目的としていると述べています。どうやらそうではないようです。
この攻撃は何?
Grim Finance社の情報によると、ハッカーはごく一般的な「リエントランシー」攻撃を使用していました。これは、出金要求を開始した後、最初の出金要求が実行されている間に、複数の出金要求を同時に行うものです。このようにして、攻撃者はプロトコルを欺き、金庫の総量を超える引き出しを行います。
このような場合、プロトコルは通常、お客様のリクエストの開始時と完了時にのみセキュリティを持ちます。まず、お客様の金庫に引き出しに必要な資金があるかどうかを確認します。そして、トランザクションの検証時に、主に請求される手数料を計算するための追加のチェックがあります。
金庫全体からの引き出し要求が、どれか1つが有効になる前に、同時に複数回行われたと仮定します。そうすると、それぞれに権限が与えられ、実際に持っている以上の金額を引き出すことができるようになります。これが「リエントランシー・アタック」の(非常に単純化された)原理です。
攻撃の詳細
これは高度な攻撃だった。攻撃者は、私たちの金庫戦略からbeforeDeposit()というタイトルの関数を使って攻撃し、悪意のあるトークンコントラクトを入力しました。
– Grim Finance (@financegrim) 2021年12月19日
グリムファイナンスの今後の展開について
リエントランシー攻撃はイーサリアムでは比較的よく見られるもので、プロトコルでもよく理解され始めています。実際、スマートコントラクトの専門家の監査人で構成されたDeFiの監視団体であるRugdoc.ioは、一連のツイートの中で、Grim Financeが直接の原因であると主張しています。このコードには「リエントランシーガード」と呼ばれる、この種の攻撃に対する具体的な防御策が含まれていたはずです.
すべてのプロジェクトがこの事件から学ぶことを期待しましょう。経験豊富なSolidity開発者の多くは、指先にたくさんの知識を持っています。まだわかっていないのなら、数百万円のプロジェクトは作らないこと。役に立たないと誰もが知っている会社の監査を受けないでください」というツイートがありました。
Grim FinanceはSolidity Financeを経由して、プロトコルのスマートコントラクトコードのセキュリティを監査しました。彼らの報告書によると、「ReetrancyGuardは、再帰性攻撃を防ぐために必要に応じて使用される」とのことです。また間違えた。
グリムファイナンスのエコシステムの経済性に打撃を与えたこのニュースで、GRIMトークンはすぐに打撃を受けました。約0.8ドルから最低でも0.15ドルと、80%以上も値下がりしました。この記事を書いている時点では、0.2ドルで取引されています。
日曜日の朝、一部の金庫が一時的に開放され、ユーザーが資金を引き出せるようになりました。しかし、午後遅くの時点で、さらなる事件を避けるために、グリムファイナンスの金庫の入出金はすべて保留されています
。