背景
最近、Mode Chain 上のIonic Moneyに対する一連の攻撃が検出されました。
https://explorer.mode.network/tx/0x37e53b15cb7f298bd8c45fcbbd914ba90feb3946f5511fc55bc986b7472956df
Ionic Money は、Base、Optimism、Bob、Fraxtal、Lisk、Mode でサービスを提供する複合フォーク DeFi プロジェクトです。今回はMode Chainに対する攻撃者による攻撃で、この攻撃により総額約850万米ドルの損失が発生しました。
攻撃とインシデントの分析
まず、攻撃者は 60 LBTC を使用して、ミントを通じて基礎資産 300 ionLBTC を償還しました。
しかし、攻撃者の 60 LBTC の出所を調べたところ、この 60 LBTC は攻撃者自身によって鋳造されたものであることがわかりました。攻撃者は攻撃を開始する前に、鋳造を通じて 250 LBTC を入手していました。
次に、LBTC 契約を確認したところ、契約内の Bascule は次のとおりでした。
0x0000000000000000000000000000000000000000000 。
LBTC の実装では、ミントは Bascule によって検証される必要があります。
このうち、_confirmDeposit の実装は次のようになります。
LBTC の公式文書では、Bascule について次のように紹介しています。主な機能は、オンチェーン契約と、攻撃者による攻撃を防ぐオフチェーン システムです。
この LBTC の Bascule には対応するコントラクトがないため、攻撃者はそれを任意に作成できます。その後、攻撃者はLBTCを発行してIonicMoneyに担保し、すべてのプールから資金を引き出して攻撃を完了しました。したがって、この攻撃の根本的な原因は、IonicMoneyが貸付プールを作成する際にLBTCが正式に作成された契約であるかどうかを確認しなかったため、貸付プールの非実在資産が偽のトークンになったことです。攻撃者はそれらを勝手に鋳造し、借り入れによってすべての資金を空にしました。
要約する
この脆弱性の主な原因は、IonicMoney プロジェクトが貸付プールを作成する際に、資産に対応する契約が正式にデプロイされているかどうかを確認しなかったため、貸付プールの復元資産が偽のトークンになったことです。プロジェクト関係者は、経済モデル、価格計算メカニズム、コード操作ロジックを設計する際に、多者間検証を実施することをお勧めします。契約をオンラインにする前に監査する場合は、複数の監査会社を選択して相互監査を行うようにしてください。最後に、オンラインにする前に展開するときに、対応するトークンが正式に展開されているかどうかを確認してください。