2024 年 4 月 19 日、ヘッジ ファイナンスは複数の攻撃取引を受け、200 万ドルを超える損失を被りました。
SharkTeam はこのインシデントの技術分析を直ちに実施し、セキュリティ上の注意事項をまとめました。今後のプロジェクトがこれから学び、ブロックチェーン業界のセキュリティ防御ラインを共同で構築できることを願っています。
Hedgey Finance は、トークン承認の脆弱性を悪用して ClaimCampaigns コントラクト内の大量のトークンを盗む攻撃者によって複数回攻撃を受けています。
約 130 万米ドルの最大規模の取引を例に挙げます。
攻撃トランザクション: 0x2606d459a50ca4920722a111745c2eeced1d8a01ff25ee762e22d5d4b1595739
攻撃者: 0xded2b1a426e1b7d415a40bcad44e98f47181dda2
攻撃契約: 0xc793113f1548b97e37c409f39244ee44241bf2b3
対象契約: 0xbc452fdc8f851d7c5b72e1fe74dfb63bb793d511 (クレームキャンペーン)
この取引により、ClaimCampaigns 契約から 1,303,910.12 USDC が直接送金されました。取引詳細は以下の通りです。
実際に攻撃を開始したトランザクションは、
0xa17fdb804728f226fcd10e78eae5247abd984e0f03301312315b89cae25aa517 (0xa17f と省略)
攻撃プロセスは次のとおりです。
0xa17fdb804728f226fcd10e78eae5247abd984e0f03301312315b89cae25aa517 (0xa17f と省略)
攻撃プロセスは次のとおりです。
バランサーからの 1 フラッシュ ローン 130 万 5000 万 USDC。
2. ClaimCampaigns コントラクトで createLockedCampaign 関数を呼び出します。この関数では、攻撃コントラクトは 130 万 500 万 USDC を ClaimCampaigns コントラクトにデポジットし、次に laimCampaigns コントラクトは転送された 130 万 500 万 USDC を攻撃コントラクトが使用することを承認します。
3. ClaimCampaigns コントラクトで cancelCampaign 関数を呼び出します。この関数では、攻撃コントラクトによりデポジットされた 130 万 5000 万 USDC が引き出しられますが、createLockedCampaign 関数で攻撃コントラクトに承認された USDC はキャンセルされません。
4 バランサーのフラッシュローンを返済するために契約を攻撃します。
このトランザクションでは、攻撃コントラクトが ClaimCampaigns コントラクトに保存された 130 万 5000 万 USDC を引き出した後、攻撃コントラクトに対して ClaimCampaigns コントラクトによって承認された 130 万 5000 万 USDC がキャンセルされていないため、攻撃コントラクトは USDC の transferFrom 関数を直接呼び出すことができます。 ClaimCampaigns 契約から資金を再度引き出し、130 万 5000 万 USDC を送金します。これは、トランザクション 0xa17fdb804728f226fcd10e78eae5247abd984e0f03301312315b89cae25aa517 によって実装される関数でもあります。
上記 2 つのトランザクションを通じて、攻撃者は ClaimCampaigns 契約から 130 万 5000 万 USDC を盗みました。
USDC に加えて、攻撃者はこの脆弱性を利用して、ClaimCampaigns 契約から大量の NOBL トークンを盗みました。USDC と合わせて総額は 200 万米ドルを超えます。
このインシデントの根本原因は、プロジェクトのスマート コントラクトの実装ロジックにトークン承認の脆弱性があり、攻撃者が対象のコントラクト承認を msg.sender のトークンに繰り返し転送できることです。
スマート コントラクト ClaimCampaigns の createLockedCamaign 関数は、msg.sender のトークンをターゲット コントラクトに保存し、これらのトークンを msg.sender に承認します。
cancelCampaign 関数は、入金されたトークンを引き出しますが、トークンの承認をキャンセルしません。
攻撃者はこの脆弱性を利用し、トークンの transferFrom 関数を直接呼び出して、承認されたトークンを対象のコントラクトから再度転送します。
この攻撃に対応するには、開発プロセス中に次の予防措置に従う必要があります。
攻撃者はこの脆弱性を利用し、トークンの transferFrom 関数を直接呼び出して、承認されたトークンを対象のコントラクトから再度転送します。
この攻撃に対応するには、開発プロセス中に次の予防措置に従う必要があります。
(1) プロジェクトの設計および開発プロセス中、特に資産の譲渡に関しては、譲渡を避けるために承認されたトークンの数が同期されていることを確認して、ロジックの整合性と厳密性を維持する必要があります。トークンですが、承認のキャンセルはありません。
(2) プロジェクトがオンラインになる前に、サードパーティの専門監査会社によってスマート コントラクト監査を実施する必要があります。
SharkTeam のビジョンは、Web3 の世界を保護することです。このチームは、ブロックチェーンとスマート コントラクトの基礎理論に精通した、世界中から集まった経験豊富なセキュリティ専門家と上級研究者で構成されています。リスクの特定とブロック、スマートコントラクト監査、KYT/AML、オンチェーン分析などのサービスを提供し、高度な持続的脅威(高度な持続的脅威)に効果的に対抗できるオンチェーンのインテリジェントなリスク特定とブロックプラットフォームChainAegisを作成しました。 Web3 の世界では持続的脅威、APT)。 Polkadot、Moonbeam、polygon、Sui、OKX、imToken、Collab.Land、TinTinLand など、Web3 エコシステムのさまざまな分野の主要企業と長期的な協力関係を確立しています。
公式ウェブサイト: https://www.sharkteam.org
Twitter: https://twitter.com/sharkteamorg
ディスコード: https://discord.gg/jGH9xXCjDZ
全てのコメント