スマートコントラクトのセキュリティの脆弱性 12/4 【thirdweb公式ブログの緊急翻訳】
thirdwebでは、私たちのミッションは、web3のための完全な開発者ツールを提供することであり、セキュリティは私たちが行うすべてのことの最前線にあります。設立以来、私たちはツールの構築と開発者サポートの提供において、堅牢なセキュリティ対策に多くのリソースを投資してきました。これらの対策には、プラットフォーム上のすべての契約に対する定期的なスマートコントラクトの監査、バグ報奨金の支払い、およびすべてのツールのオープンソース化が含まれます。これにより、私たちの顧客と開発者のセキュリティが向上します。
私たちのプロセスの一環として、2023年11月20日午後6時(PST)に、web3スマートコントラクトの一般的に使用されるオープンソースライブラリにセキュリティの脆弱性があることがわかりました。これには、thirdwebのプリビルドスマートコントラクトも含まれます。
次のプリビルドスマートコントラクトには、この脆弱性が影響を与えます:
AirdropERC20(v1.0.3以降)、ERC721(v1.0.4以降)、ERC1155(v1.0.4以降)、ERC20Claimable、ERC721Claimable、ERC1155Claimable
BurnToClaimDropERC721(すべてのバージョン)
DropERC20、ERC721、ERC1155(すべてのバージョン)
LoyaltyCard
MarketplaceV3(すべてのバージョン)
Multiwrap、Multiwrap_OSRoyaltyFilter
OpenEditionERC721(v1.0.0以降)
PackおよびPack_OSRoyaltyFilter
TieredDrop(すべてのバージョン)
TokenERC20、ECRC721、ERC1155(すべてのバージョン)
SignatureDrop、SignatureDrop_OSRoyaltyFilter
Split(低影響)
TokenStake、NFTStake、EditionStake(すべてのバージョン)
私たちの調査と監査パートナーとの共同作業に基づき、この脆弱性はthirdwebのスマートコントラクトで悪用されていません。
私たちの直近の優先事項は、この脆弱性の影響を受ける顧客を保護することです。2023年11月22日午後7時(PST)以前にthirdwebのダッシュボードまたはSDKを使用してこれらの影響を受けるプリビルドスマートコントラクトのいずれかを展開したユーザーは、いくつかの緩和手順を実行する必要があります。
私たちとセキュリティパートナーは、脆弱性が発覚してからのフルキャパシティで作業し、必要な緩和手順を簡単に特定して実行するためのツールを開発しました。ツールはこちらからアクセスできます:https://mitigate.thirdweb.com/
ほとんどの場合、緩和手順には契約のロック、スナップショットの作成、既知の脆弱性のない新しい契約への移行が含まれます。必要な手順は、スマートコントラクトの性質によって異なりますが、ツールを使用してこれらを特定できます。
また、緩和ツールの使用方法についてのステップバイステップガイドをこちらで見つけることもできます。
注意:ユーザーの保有者が流動性プールやステーキングプールにトークンをロックしている場合、これらのトークンを手順を開始する前に引き出す必要があります。そうしないと、彼らは資産を失います。さらに、契約の緩和を選択しない場合、ユーザーに対してすべてのthirdweb契約の承認を取り消すように要求する必要があります。これは、revoke.cashを使用することで、ユーザーを保護します。
将来のスマートコントラクトの展開
脆弱性が発覚した後、私たちはセキュリティチームを動員し、監査パートナーと緊密に連携して問題を調査しました。11月22日午後7時(PST)以降に作成されたthirdwebの影響を受けるプリビルド契約に対して、私たちは修正を行いました。
11月22日午後7時(PST)以降に展開されたthirdwebの最新バージョンのスマートコントラクトは、この既知の脆弱性の影響を受けません。ウォレット、支払い、インフラストラクチャサービスを含むthirdwebの他のすべてのサービスも影響を受けずに通常通り機能しています。
私たちのSolidity SDKを使用してベース契約を拡張したり、カスタム契約を作成した場合、脆弱性が契約に広がらないとは考えていますが、個々の契約を監査することができないため、これを保証することはできません。
また、脆弱性の原因となったオープンソースライブラリのメンテナー(悪用の可能性を軽減するために明示していません)と、同じ問題に影響を受ける可能性があると考えられる他のプロトコルや組織に対して、私たちは調査結果と緩和策を共有するために連絡しました。セキュリティ研究者や他の組織が詳細を知りたい場合は、当社のチームにsupport@thirdweb.comでお問い合わせください。
今後の展望
今後は、セキュリティ対策への投資を増やしていきます。これには、バグ報奨金の支払い額を25,000ドルから50,000ドルに倍増し、より厳格な監査プロセスを導入することが含まれます。これにより、web3開発者にとって堅牢な環境を作り出すことを目指します。
私たちは、これが混乱を引き起こすことを理解しており、問題の緩和に最大限の重要性を置いて対応しています。契約の緩和にかかる手数料をカバーするために、ガスの補助金を遡及的に提供します。ガスの補助金を受けるためには、いくつかの要素に依存します。ご検討いただくために、このフォームに記入してください。
脆弱性と緩和手順に関連するすべてのサポートについては、support@thirdweb.comまで直接メールでお問い合わせください。脆弱な契約を共有することから、自分自身や他のユーザーを保護するためです。
よくある質問
私の契約は脆弱ですか?
この脆弱性が含まれているかどうかを確認するために、緩和ツールを使用してください。
どの契約がこの脆弱性の影響を受けましたか?
次の事前構築済みスマートコントラクトは、この脆弱性の影響を受けます:
AirdropERC20(v1.0.3以降)、ERC721(v1.0.4以降)、ERC1155(v1.0.4以降)、ERC20Claimable、ERC721Claimable、ERC1155Claimable
BurnToClaimDropERC721(すべてのバージョン)
DropERC20、ERC721、ERC1155(すべてのバージョン)
LoyaltyCard
MarketplaceV3(すべてのバージョン)
Multiwrap、Multiwrap_OSRoyaltyFilter
OpenEditionERC721(v1.0.0以降)
PackおよびPack_OSRoyaltyFilter
TieredDrop(すべてのバージョン)
TokenERC20、ECRC721、ERC1155(すべてのバージョン)
SignatureDrop、SignatureDrop_OSRoyaltyFilter
Split(低影響)
TokenStake、NFTStake、EditionStake(すべてのバージョン)
11月22日午後7時(PST)以降にデプロイされた最新バージョンのthirdwebスマートコントラクトは、この既知の脆弱性の影響を受けません。ウォレット、支払い、およびインフラストラクチャサービスを含む他のthirdwebサービスも影響を受けずに通常通り機能しています。
もし、当社のSolidity SDKを使用してベースコントラクトを拡張したり、カスタムコントラクトを作成した場合、脆弱性があなたのコントラクトに広がるとは考えていませんが、個々のコントラクトを監査することができないため、これを保証することはできません。
私の契約は悪用されましたか?
これまでの調査によると、第三世代のスマートコントラクトでこの脆弱性が悪用された事例は確認されていません。これは、あなたの契約が悪用される可能性があるかどうかを尋ねるものとは異なります。私たちのツールを使用して、あなたの契約が悪用される可能性があるかどうかを調べてください。
契約を軽減するタイミングと方法はいつですか?
契約を安全に軽減する手順についての指示は、こちらのリンクを参照してください。すぐに行動を起こすことをおすすめします。
契約をロックすると何が起こりますか?
契約をロックすると、すべての権限が削除され、すべての管理者アクセスが取り消され、トークンの転送と発行が無効になり、将来的にはユーザーはこの契約とのやり取りができなくなります。これにより、トークンの転送ができなくなり、この操作は元に戻せません。これにより、悪意のあるユーザーが契約の管理者アクセスを取得することを防ぎます。
ユーザーは脆弱性のない新しい契約で新しい資産をどのように取得できますか?
ユーザーは、対策ツールが提供する請求ページを使用して新しいトークンを請求するか、新しいトークンをユーザーにエアドロップすることができます。対策ツールを使用して、好みのオプションを選択できます。
スナップショットツールはどのように動作しますか?
スナップショットツールは、契約上の所有者ごとに正確なトークンのマッピングを行います。ステーキングや流動性プールに保持されているトークンは含まれません。これらはエスクロー契約(流動性プールやステーキングプール)にステーキングされています。契約がロックされると、これらのユーザーはトークンを引き出すことができなくなります。トークンの移動は無効になるため、契約をロックしスナップショットを取る前に、ユーザーにエスクロー契約からトークンを引き出すようにお願いすることをおすすめします。
スナップショットデータにアクセスできますか?
はい、スナップショットデータをCSV形式でダウンロードすることができます。
この脆弱性に関する質問は誰に連絡すればよいですか?
security@thirdweb.com までお問い合わせください。
他のthirdwebの製品には影響を受けるものはありますか?
2022年11月22日午後7時(PST)以降にデプロイされた最新バージョンのthirdwebスマートコントラクトは、この既知の脆弱性の影響を受けません。
ウォレット、支払い、インフラストラクチャサービスを含む、他のthirdwebのサービスは通常通りに動作しており、影響を受けていません。
thirdwebは2022年4月以来、0xMacroと提携しており、ダッシュボード上のすべてのプリビルドスマートコントラクトを監査しています。これらの監査レポートの詳細はこちらでご覧いただけます。thirdwebはまた、公開のバグバウンティプログラムを実施しており、過去1年間で約50,000ドル以上のバグバウンティを支払っています。
現在、ユーザーの保護のために、この脆弱性に影響を受けたユーザーに対して技術的な詳細を共有していません。
この脆弱性は他のどこかで展開された契約に影響を与える可能性がありますか?
この問題はオープンソースのライブラリから発生したため、thirdwebのエコシステムの外で影響を受ける他のスマートコントラクトが存在する可能性があります。
対策に関連する取引手数料は返金されますか?
契約の緩和に関連する手数料をカバーするために、過去のガス補助金を提供します。ガス補助金を受け取るためには、いくつかの要素に依存します。検討されるために、このフォームに記入してください。
もしthirdwebの推奨された緩和手順に従わない場合のリスクは何ですか?
推奨されたthirdwebの緩和ツールを使用しない場合、不正なアクターによってあなたの契約が悪用される可能性があります。
もし契約書をクライアントのために作成したが、もはや所有者ではない場合はどうなりますか?
所有者ではない場合、対策手順を実行することはできません。契約の所有者に連絡し、契約をロックして再作成する手順を実行するように依頼してください。
管理者ウォレットへのアクセスが失われました。どのように対処すればよいですか?
管理者ウォレットにアクセスできない場合、契約をロックしたり再作成したりすることはできません。
脆弱性のある以前のバージョンの契約をデプロイすることはまだ可能ですか?
11月22日午後7時(PST)以降、thirdwebのダッシュボードとSDKを使用して行われるすべての契約デプロイは、脆弱性のない新しいバージョンになります。
クレームを作成する代わりに、ホルダーにトークンをエアドロップできますか?
はい、対策ツールには、トークンをホルダーにエアドロップするオプションや、クレーム可能なトークンページを作成するオプションがあります。トークンのエアドロップには契約所有者がガスを支払い、トークンのクレームにはトークンホルダーがガスを支払います。