ホームページ  >  記事  >  Hedgey 攻撃インシデントの分析: トークン認証で数千万ドルの損失

Hedgey 攻撃インシデントの分析: トークン認証で数千万ドルの損失

WBOY
WBOY転載
2024-04-24 14:43:22786ブラウズ

2024年4月19日、ヘッジトークンクレームコントラクトがイーサリアムやアービトラムなどの複数のチェーンで攻撃され、数千万ドルの損失が発生しました。 Hedgeyプロジェクトチームはただちにセキュリティ警告を発し、トークン請求アクティビティを作成したユーザーに対し、公式チャネルを通じてトークン請求アクティビティをキャンセルするよう注意を喚起した。 (https://twitter.com/hedgeyfinance/status/1781257581488418862)

Hedgey 攻撃インシデントの分析: トークン認証で数千万ドルの損失

アタックブリーフ

Hedgeyは、DAOとオンチェーン組織がオンチェーンおよびプログラムによるトークン発行を通じてトークンを配布できるように支援します。チーム、貢献者、投資家、コミュニティに配布されます。今回脆弱性が発生したツールは同社のToken Claims製品で、ユーザーはトークン要求ページを作成し、CSVファイルを通じて10万人以上の受信者をホワイトリストに追加し、フローやタイムロック、要求されたトークンの受け渡し方法を制御できる。リサイクルまたはその他の方法で放出されます。

この攻撃によって悪用されるコントラクトの脆弱性は、Token Claims 製品の ClaimCampaigns コントラクトがトークン要求イベントを作成するときに、作成者が指定したアドレスへのトークンを承認することです。作成者がイベントの申請をキャンセルすると、イベント作成段階で作成者が転送したトークンは作成者が指定した別のアドレスに返されますが、トークンの承認は取り消されないため、イベント作成者のアドレスは引き続き情報を使用できます。 ClaimCampaigns トークンによって承認されます。

攻撃に関与する主要なアドレス

この攻撃には複数のトランザクションが含まれており、攻撃原理を分析するための例として、NOBL トークンを盗む次のトランザクションのみを使用します。

攻撃トランザクション: https://etherscan.io/tx/0x017ce9593350cba65d506e1a87e52d2c20079fdfa80a350a89fe6fc875f2d9f9

EOA を攻撃: xded2b1a426e1b7d415a40bcad44e98f47181dda2

攻撃者 (契約):

脆弱な契約 (クレームキャンペーン):

0xbc452fdc8f851d7c5b72e1fe74dfb63bb793d511

盗まれたトークン (NobleBlocks: NOBL トークン):

0x88b9f5c66 3 42ebaf661b3e2836b807c8cb1b3195

攻撃プロセス分析

1.
攻撃実装

攻撃実装段階では、攻撃者は、脆弱なコントラクトの「createLockedCampaign」関数を繰り返し呼び出してキャンペーンを作成し、その後「cancelCampaign」関数を呼び出してキャンペーンを削除しました。キャンペーンを作成する際、攻撃者は指定された数の NOBL トークンを脆弱性コントラクトに転送し、脆弱性コントラクトによって許可されている NOBL トークンの使用制限を取得します。キャンペーンが削除されると、脆弱性コントラクトはキャンペーンの作成時に攻撃者が転送した NOBL トークンを返しますが、現時点では、脆弱性コントラクトは攻撃者に許可されている NOBL トークンの使用制限を取り消しません。したがって、キャンペーンを作成してからキャンペーンを削除することで、攻撃者は脆弱なコントラクトが保持する NOBL トークンを何もないところから使用する権限を得ることができます。

具体的な攻撃手順は以下の通りです:

攻撃者は、脆弱なコントラクトの「createLockedCampaign」関数を呼び出してキャンペーンを作成し、パラメータに「campaign.manager」と「claimLockup.tokenLocker」の両方を設定します。自分自身を設定し、「campaign.token」を NOBL トークンに設定し、「campaign.amount」を「680000000000000000000000」(NOBL トークンの小数点は 18 であるため、680,000 NOBL トークンを表します)に設定し、「donation.amount」を設定します。は0に設定されます。 「createLockedCampaign」関数コードから、攻撃者は最初にNOBLトークンを脆弱なコントラクトに転送し、次に「safeIncreaseAllowance」関数を使用して、脆弱なコントラクトが「claimLockup.tokenLocker」(攻撃者)に保持されている資金を使用することを許可することがわかります。脆弱なコントラクトにより、NOBL トークンの力により、攻撃者に多くの「campaign.amount」が許可されます。

攻撃者は、「cancelCampaign」関数を呼び出して、手順 1 で作成したキャンペーンを削除します。関数コードからわかるように、脆弱なコントラクトはキャンペーンのデータを削除し、キャンペーンの「withdrawTokens」関数を呼び出します。 TransferHelper ライブラリを使用して、手順 1 でキャンペーンを削除します。この手順では、攻撃者によって転送された NOBL トークンが「campaign.manager」(攻撃者) に返されます。この時点で、キャンペーンは正常にキャンセルされましたが、ステップ 1 で脆弱性契約によって攻撃者に許可された NOBL トークンの使用割り当ては同時に削除されていません。したがって、攻撃者はこの時点で、脆弱なコントラクトの NOBL トークンを使用する権限も持ちます。

Hedgey 攻撃インシデントの分析: トークン認証で数千万ドルの損失

Hedgey 攻撃インシデントの分析: トークン認証で数千万ドルの損失

  • 攻撃者は手順 1 と 2 を 25 回繰り返し、最終的に脆弱なコントラクトから 680000 * 25 = 17000000 NOBL トークンの使用割り当てを取得しました。

  • 2. 盗まれたお金の回収

    盗まれたお金を回収する段階では、攻撃者はNOBLトークンの「transferFrom」関数を直接呼び出して、脆弱なコントラクトから攻撃者のEOAアドレスにNOBLトークンを転送します。攻撃実行段階での攻撃により、攻撃者は脆弱なコントラクトが保有するNOBLトークンを使用する権利を取得したため、transferFrom関数での制限検証をスムーズに通過することができ、最終的に攻撃者はNOBLを盗むことに成功しました。脆弱なコントラクト内のトークン。

    具体的な詳細についてはトランザクションをご確認ください: https://etherscan.io/tx/0x47da1ac72d488f746865891c9196c1632ae04f018b285b762b2b564ad1d3a9e5

    攻撃に関与したトランザクション

    ZAN KYT データ分析を通じて、攻撃者は脆弱な人々から NOBL トークンを奪う前にContract 、契約の脆弱性を利用して、脆弱な契約が次のように攻撃者に承認トークン トランザクション ハッシュを与えることを許可します (イーサリアム上のトランザクションのみがリストされています):

    Hedgey 攻撃インシデントの分析: トークン認証で数千万ドルの損失

    現在、攻撃者は違法な利益の一部を別のアドレスに転送しています 0xd84f48b7D1AaFA7bd5905c95c5d1ffB2625AdA46 、現在他のアクションはありません。請求契約 (0x5a4bC2bdA1f6B9929b6efdCef4728246bEc4C635) の開発者は、Blockscan チャットを通じて攻撃者に連絡し、契約の脆弱性を認め、攻撃者が 24 時間以内に連絡することを期待して、自分たちの行動がホワイトハット活動であると想定しました。

    セキュリティに関する提案

    この攻撃インシデントを分析することで、次の提案が得られます:

    1. プロジェクト内のトークン認証の運用を厳密にレビューします。プロジェクト開発者と契約監査人は、回復されていないトークン承認や予期しない冗長な承認が攻撃者によって悪用されるのを避けるために、どのビジネス シナリオにトークン承認が必要か、どのビジネス シナリオにリサイクル トークン承認が必要かを明確にする必要があります。

    2. プロジェクトは緊急停止メカニズムを確立する必要があります。資本循環を伴うプロジェクトでは、攻撃が発生したときに損失を遅らせることができるように、完全な停止メカニズムを確立することが推奨されます。

    この記事は、ZAN チームの Cara (X アカウント @Cara6289) と XiG (X アカウント @SHXiGi) によって共同執筆されました。

    以上がHedgey 攻撃インシデントの分析: トークン認証で数千万ドルの損失の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はpanewslab.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。