7月3日、AzukiDAOが攻撃され、攻撃者は約6万9000ドルの利益を得た。
SharkTeamは、このインシデントの技術分析を初めて実施し、セキュリティ上の注意事項をまとめ、後続のプロジェクトがこのインシデントから学び、ブロックチェーン業界のセキュリティ防御線を共同で構築できることを期待しています。
1. イベント分析
攻撃者のアドレス:
0x85D231C204B82915c909A05847CCa8557164c75e
0x8eadc7cc0a77594e3fa999e80e1ccb7f4e1c04e0
攻撃された契約:
0x8189AFBE7b0e81daE735EF027cd31371b3974FeB
攻撃トランザクション:
0x6233c9315dd3b6a6fcc7d653f4dca6c263e684a76b4ad3d93595e3b8e8714d34
攻撃プロセス:
(1) 攻撃者(0x85D231C2)は、攻撃対象のコントラクト(0x8189AFBE)のクレーム関数を呼び出し、署名検証を通過した後、31250個のBeanトークンを抽出します。
(2) その後、攻撃者 (0x85D231C2) は攻撃対象のコントラクト (0x8189AFBE) のクレーム関数を呼び出し続け、依然として 31,250 個の Bean トークンを抽出しました。
(3) 上記の操作を継続し、最終的に抽出した 6,250,000 Bean Token を uniswap で eth に変換し、利益を上げます。
(4) 上記の操作を繰り返し、最終的に36ethの利益を出します。
2. 脆弱性分析
この攻撃の根本原因は、契約書の署名の有効性を正しく検証できず、抽出が繰り返されることです。複数のクレーム関数トランザクションの分析を通じて、各トランザクションで攻撃者によって渡された署名が同じであることがわかります。
攻撃されたコントラクト(0x8189AFBE)のソースコードを解析したところ、コントラクトには抽出された署名が記録されていたものの、署名の検証は行われていなかったことが判明した。
渡されたパラメータが変更されない限り、署名の期限が切れる前に複数の抽出を行うことができ、攻撃者は 1 つの署名を使用して複数のトークン抽出操作を実行することになります。
3. セキュリティに関する推奨事項
この攻撃に対応するには、開発プロセス中に次の予防措置に従う必要があります。
(1) 署名を使用する場合には、署名の再利用の可能性を厳密に検証する必要があります。
(2) プロジェクトがオンラインになる前に、第三者の専門監査チームから技術支援を求める必要があります。
私たちに関しては
SharkTeam のビジョンは、Web3 世界のセキュリティを包括的に保護することです。このチームは世界中から集まった経験豊富なセキュリティ専門家と上級研究者で構成されており、ブロックチェーンとスマートコントラクトの基礎理論に精通しており、スマートコントラクトの監査、オンチェーン分析、緊急対応などのサービスを提供しています。 Polkadot、Moonbeam、polygon、OKC、Huobi Global、imToken、ChainIDE など、ブロックチェーン エコシステムのさまざまな分野の主要企業と長期的な協力関係を確立しています。
公式ウェブサイト:https: //www.sharkteam.org
公式ウェブサイト:https: //www.sharkteam.org
Twitter: https://twitter.com/sharkteamorg
Discord: https://discord.gg/jGH9xXCjDZ
全てのコメント