CertiKはAxionNetworkインシデントとその後の価格暴落を分析します

11月2日、AxionNetworkはAXNと呼ばれる新しいトークンをリリースしました。このプロジェクトは、この資産を新しい投資手段として宣伝し、これまでで最も収益性の高いブロックチェーンになると主張しました。 AXNのエアドロップへの暫定的なリードアップ中に、5つの別々のチームがトークンのコードを調べたとされています。 CertiKやHackenなどの業界の最愛の人が監査を実施した人たちの中にいました. 

しかし、プロトコルのフリークレームイベントの数時間後、何かがうまくいかなかったことが明らかになりました。許可されていないアクターが予期せず790億のAXNを作成し、市場に降ろしました。価格は99%を超えて崩壊し、攻撃者は1300 ETHを獲得しました。これは、公開時点で推定50万ドルの価値があります。.

その後の数時間で、Axionプロジェクトの背後にあるチームは、プラットフォームの公式Telegramチャネルを介して、参加者が資産の取引ややり取りをしないように促しました。

「今すぐAXNを購入しないでください。ダッシュボードを操作しないでください。」

Axion NetworkのTwitterアカウントは、次のような更新を投稿し続けました。

私たちはまだここにいます.

エクスプロイトの時点で保持していたすべてのAXN / HEX2Tの人々がクレジットされます.

流動性をバックアップするために、流動性報酬ポータルを立ち上げます.

AXNの再起動に向けて一生懸命取り組んでいます.

—アクシオン(@axion_network) 2023年11月2日

これらの安心感にもかかわらず、CertiKはコミュニティに、彼らが間違っていると感じていることのより明確な説明と、同様の攻撃を将来どのように防ぐことができるかについての洞察を提供するために前進しています。 Cointelegraphは、Axion NetworkのCEOとして私たちに説明された「JackDurden」に電子メールで連絡しましたが、すぐには応答がありませんでした。プロジェクトのホワイトペーパーやウェブサイトにはチームメンバーは記載されておらず、「ジャックダーデン」という名前は、映画「ファイトクラブ」の目に見えないナレーターと共有されています。.

この記事の残りの部分は、監査チームが何が起こったのかを読者に理解させるための公共サービスとして、CertiKの厚意により一言一句複製されていることに注意してください。 Cointelegraphはコードを監査していないため、以下に述べる見解はCertiKの見解のみです。.

CertiKスタッフがAxionの価格暴落について報告

2023年11月2日 午前11:00頃+ UTC ハッカーは、Axion Stakeing契約のアンステーク機能を利用して、約800億のAXNトークンを作成しました。.

ハッカーは次に、EtherのAXN Uniswap取引所にトークンをダンプし、Uniswap取引所が空になり、トークンの価格が0になるまでこのプロセスを繰り返しました。.

攻撃が発生してから数分以内にインシデントが通知され、セキュリティアナリストがすぐに状況の評価を開始しました.

OpenZeppelinの依存関係からコードを変更することにより、コードが展開されたときに悪意のあるコードを挿入するなど、攻撃は内部から計画された可能性が高いと結論付けました。.

悪用された関数は、AxionのコードをOpenZeppelinのコードと「フラット化」によって結合し、デプロイ前にOpenZeppelinのコード内に挿入した後に追加されたため、実施した監査の一部ではありませんでした。.

計画

ハッカーはから調達した匿名の資金を使用しました tornado.cash ハッキングが発生する前日, 事前に計画された攻撃をほのめかします。おそらく攻撃が失敗した場合にいくらかの資金を節約するために、アカウントが資金を受け取った直後に2.1Etherがtornado.cashで再循環されました.

攻撃の設定を完了するために、ハッカーは周りを購入しました 〜700kHEX2Tトークン Uniswap取引所から。ただし、これらの資金は最終的に攻撃の一部ではなく、攻撃がどのように展開されたかに関する煙幕として機能しました.

セットアップ

ハッカーは、アクシオンネットワークのステーキング契約に「空の」ステークを作成し、金額が0でステーク期間が1日のステーク関数を呼び出すことで、攻撃を開始しました。 午前9時頃+ UTC. これにより、攻撃者のセッションエントリが作成され、セッションID6で金額と共有の値が0になりました。.

その後、攻撃者は、攻撃の成功を見越して、無制限の量のAXNをUniswap取引所に事前承認しました。その結果、彼らはAXNトークンに変換することを意図した資金の額についてAxionのNativeSwap契約を承認しました.

彼らはでNativeSwap契約の預金機能を呼び出しました 午前10時頃+ UTC, ただし、ハッカーは、NativeSwapコントラクトのswapTokenBalanceOf関数で明らかなように、スワップされたAXNを要求するためにコントラクトの撤回関数を呼び出すことはありませんでした。その後、攻撃を実行する前に、もう一度失敗したデポジット関数呼び出しを行いました.

実行

これらのトランザクションは、アンステーク攻撃が実際にどのように実行されたかを示す単なる煙幕でした。攻撃者が実行したトランザクションによってsessionDataOfマッピングが変更されなかったため、これはマルチアドレス攻撃であると結論付けました。.

共有されていたGitHubリポジトリにある契約のソースコードを調査して、sessionDataOfマッピングに影響を与える原因となる欠陥を特定しました。.

ステーク機能外での割り当てやそのメンバーを検出できなかったため、契約の展開が適切に行われたかどうかを疑問視するようになりました。.

攻撃ベクトル

デプロイされたステーキングコントラクトのソースコードを分析した後、AccessControlOpenZeppelinライブラリのL665からL671までのコードインジェクションを特定しました。 デプロイされたソースコード ステーキング契約の。リンクされたcheckRole関数はの一部ではありません OpenZeppelinv3.0.1の実装, プロジェクトのGitHubリポジトリに依存関係としてリストされていました.

checkRole関数内には、次のアセンブリブロックが存在します。

この特定の関数を使用すると、特定のアドレスが、低レベルの呼び出しを介して補足する入力変数に基づいて、コントラクトに任意の書き込みを実行できます。注釈を付けると、アセンブリブロックは次のようになります。

この機能 展開時に注入されました OpenZeppelin AccessControlの実装には存在しないため、トークンのデプロイに関与したAxionNetworkのメンバーが悪意を持って行動したことを意味します.

結論

この攻撃では、プロトコルの展開前に意図的に挿入されたコードが利用されました。この事件 CertiKが実施する監査とは関係ありません 攻撃の責任者は、AxionNetwork契約の展開に関与していると思われる人物でした。.

追加のセキュリティの程度として、監査レポートは、ソースコードが監査されたものと同じであることが確認された展開されたスマートコントラクトアドレスを含むように標準化する必要があります.

ザ・ セキュリティオラクル セキュリティインテリジェンスのオンチェーンリレーとして機能し、監査されたバージョンと一致するように展開されたスマートコントラクトの検証を含むセキュリティチェックを実行します.