CertiK セキュリティ分析: 8 月のデジタル通貨関連攻撃の分析と概要
「通貨サークルの1日、世界の1年」、「DeFiの1日、通貨サークルの1年」。
最近のブロックチェーンと通貨界では、ほとんどすべての人気がDeFiに奪われています。
継続的なプロジェクトの出現と多数のユーザーの流入により、DeFi プロトコルのロックされたポジションの総額は 103 億 8,000 万米ドルに達しました。
非常に高い投資収益率が多くの通貨保有者を惹きつけており、8 月は流動性マイニング プロジェクトが本格化する月です。
実験的な流動性マイニング プロジェクト Yam から、依然として話題性の高い SushiSwap に至るまで、ブロックチェーン コミュニティ全体が巨額の利益と隠れたセキュリティ リスクについて議論し続けています。
今月中に、多数の新しいマイニング プロジェクトが登場しましたが、そのほとんどは他の同様のプロジェクトのコードを直接コピーし、セキュリティ監査なしで急いでオンライン化されました。その結果、発見されたスマート コントラクトのセキュリティ脆弱性は多数あり、本質的には類似しています。現在、プロジェクトに投資できるかどうかを判断する最初の条件は、プロジェクトとその契約が著名なセキュリティ チームによって専門的に監査され、高いセキュリティ評価を得ているかどうかを確認することです。
CertiK セキュリティ技術チームの統計によると、8 月のブロックチェーン関連のセキュリティ インシデントの一覧は次のとおりです。
8月11日、イーサリアムベースのトークンプロジェクトNUGSにセキュリティ上の問題が発生し、そのスマートコントラクトにセキュリティホールがあり、トークンシステムに大幅なインフレを引き起こした。スマートコントラクトのセキュリティ上の抜け穴を修正できなかったため、NUGSプロジェクトはプロジェクトの中止を決定したことを正式に発表し、プロジェクトに預けられたトークンは引き出すことができなくなった。
8 月 12 日、リキッド マイニング プロジェクト Yam でスマート コントラクトの抜け穴が発見され、膨大な数のトークンが確保され、プロジェクト ガバナンスに必要なトークンの数が増加しました。最終的に、コミュニティには十分なトークンがありませんでした。通貨に依存すると、いかなるガバナンス行動も実行できなくなります。
8月14日、流動性マイニングプロジェクトBasedにスマートコントラクトのセキュリティ脆弱性があり、プロジェクトの第1プールのスマートコントラクト内の関数が外部から任意に呼び出されるように誤って設定され、攻撃者による攻撃を受けました。初期化により、プール 1 の誓約を完了できなくなります。
8 月 28 日、Sushiswap スマート コントラクトに複数のセキュリティの抜け穴が発見され、スマート コントラクトの所有者がコミュニティの承認なしに任意に資金を引き出すことができました。同時に、このコントラクトには再入攻撃の脆弱性もあり、悪意のあるコードが複数回実行される可能性があります。
8月31日、脆弱性のある古いバージョンのエレクトラムウォレットアプリケーションをユーザーが使用していたために、1,400ビットコインが盗まれた。
8月31日と9月1日、Sushiswapの模倣ディスクであるYunoとKimchiのスマートコントラクトにセキュリティ上の脆弱性があることが判明した。
副題

イベントの詳細
以下は、8 月の典型的なセキュリティ インシデントの具体的な分析です。
インシデント No. 1 は、ロジックの実装ミスによって引き起こされる非常に典型的な脆弱性です。 NUGS プロジェクトの商用実装モデルは宝くじ抽選システムです。宝くじ抽選はラウンドに基づいて行われます。宝くじ抽選の各ラウンドで、投資家はラウンドの賞金プールに資金を入金できます。
一定の時間が経過すると、NUGS スマート コントラクトの抽選機能を外部から呼び出して、このラウンドの抽選の勝者を決定できます。勝者は賞金プールの賞金を受け取り、外部から宝くじ機能を呼び出した呼び出し者も報酬の一部を受け取ります。この回の抽選が終了すると賞金額はゼロクリアされるため、各回の抽選開始時の初期賞金金額は「ゼロ」となるはずである。
ただし、NUGS スマート コントラクトには、賞金プール ボーナスの初期額に関してロジック実装の抜け穴があります。宝くじの抽選ラウンドが終了しても、賞金プールの金額はクリアされず、賞金プールの初期金額が反映されません。次のラウンドの宝くじ抽選が開始された後の前のラウンドの賞金総額。したがって、賞金プールのボーナスはますます増え、最終的にはインフレと通貨価値の急速な下落につながります。
No.2インシデントはYam流動性マイニングプロジェクトで発生しましたが、これもロジック実装ミスによるセキュリティホールでした。
Yamスマートコントラクトには、トークンの価格安定性を確保することを目的としたリベース機能がありますが、コードレベルの不注意により、各リベース実行時にトークンの総供給量の価値が計算されてしまいます。 totalSupply の数は増加し続けることしかできず、最終的にはインフレにつながります。
上記 2 つのインシデントの抜け穴は、ロジック実装レベルの抜け穴に属します。ロジック実装の抜け穴は非常に直感的ですが、既存の自動検出ツールではチェックできず、そのような抜け穴を回避するには、専門的なセキュリティ監査や厳密な数学的証明のみを使用できます。
インシデントNo.3はベースの流動性マイニングプロジェクトで発生しました。スマート コントラクトをデプロイするとき、Based はスマート コントラクトで renounceOwnership 関数を呼び出して所有者を正式に宣言しただけで、スマート コントラクトを初期化しませんでした。そして、外部の攻撃者は、正式に基づく前に、initialize 関数を呼び出してスマート コントラクトを初期化しました。
これにより、スマート コントラクトの所有者と初期化のオペレーターが矛盾し、最終的にはいかなる誓約も完了できなくなります。
このセキュリティ脆弱性は、「スマートコントラクトを呼び出すこと自体のセキュリティリスク」と「スマートコントラクトを展開するリスク」が同時に影響することによって引き起こされます。この種のスマート コントラクトの展開では、スマート コントラクトの送信と展開のアトミック性、およびスマート コントラクトとその他の操作トランザクションの初期化 (アトミックな操作は 1 つのステップまたは複数の操作ステップにすることができますが、順序を壊すことはできません) を保証する必要があります。つまり、第三者が時間差を利用して悪意のある攻撃を実行しないように、2 つのトランザクションは相互に関連している必要があります。
インシデントNo.4とNo.6も同様で、複数のスマートコントラクトの脆弱性があり、開始前にセキュリティ監査が実施されておらず、プロジェクトオーナーの過剰な権限の問題に対して、対応するコミュニティ監視機構が存在していない。
これら 2 つのイベントの主役となるプロジェクトは、SushiSwap (第 4 回イベント) とその模倣であるユノとキムチ (第 6 回イベント) です。 SushiSwap プロジェクトのスマート コントラクトでは、スマート コントラクトの所有者は setMigrator 関数を使用して、監督なしでマイグレーターの値を任意に変更し、その後、migrator.merge を呼び出してスマート コントラクトの外部コードを呼び出す権利を持ちます。この外部コードはスマート コントラクト自体には知られていないため、スマート コントラクトの所有者はこの操作を通じて悪意のあるコードを実行する可能性があります。
同様の抜け穴は Yuno プロジェクトと Kimchi プロジェクトにも存在します。スマート コントラクトの所有者は、ミント機能を通じて無制限の数のコイン鋳造操作を実行する権利を持っています。
当初、この種の脆弱性に対する解決策は、タイムロック スマート コントラクトを使用して、スマート コントラクトの所有者からの操作に遅延ロックを追加することでしたが、SushiSwap、Yuno、Kimchi はすべて、この方法を通じて自分自身に 48 時間の操作遅延を追加しました。その本来の目的は、スマートコントラクトの所有者による悪意のある取引が疑われる場合、投資家に 48 時間の猶予期間を与えることであり、引き出しやその他の操作には十分な時間があります。 SushiSwap プロジェクトの Chef Nomi は大量のトークンの転送に成功し、その後それらを返却しましたが、最終的に SushiSwap プロジェクトはプロジェクトの分散化を確実にするためにマルチシグネチャ ウォレットを採用しました。遅延ロックにはスマートコントラクト自体の抜け穴を根本的に解決する方法はないと言えます。
インシデント No. 5 は、被害者が古いバージョンの Electrum ウォレットを使用し、攻撃者が古いバージョンのソフトウェアの脆弱性を利用してフィッシング攻撃を行ったことが原因です。
このソフトウェアの脆弱性により、Electrum ノード サーバーから返されるトランザクション エラー メッセージの HTML レンダリングが行われます。攻撃者は悪意のあるノードを構築し、そのノードがユーザーからトランザクション要求を受信すると、フィッシング情報を含むウィンドウがユーザーのウォレットにポップアップ表示され、ユーザーはいわゆる「ウォレット アップデート」をダウンロードできるようになります。
安全上のアドバイス
安全上のアドバイス
要約すると、8 月はセキュリティ インシデントが頻繁に発生し、CertiK セキュリティ チームは次のような提案を行いました。
ブロックチェーン プロジェクトのセキュリティ リスクは、コードの脆弱性のレベルから観察するだけでなく、プロジェクトの論理的な実装がその論理設計と一致しているかどうかを注意深く理解する必要があります。
ブロックチェーン プロジェクトでは、展開操作のアトミック性を確保するために、展開プロセス全体の詳細な設計と実装プロセスを計画する必要があります。
ブロックチェーンプロジェクトのスマートコントラクト所有者の過剰な権利の問題に直面して、私たちは外部の強制メカニズムに依存して制限するだけでなく、スマートコントラクトコードの実装やコミュニティガバナンスなどの多角的な観点から統合して、プロジェクトはいかなる当事者によっても使用されません。
DeFiの人気は高まり続けており、ブロックチェーンも時代の破壊的中核技術として様々な分野で広く活用されており、メリットやメリットの裏に隠れているセキュリティリスクも無視すべきではありません。
CertiK は、業界をリードするテクノロジーを使用して、ブロックチェーンとスマート コントラクトのセキュリティの問題点を解決する、ブロックチェーンの健康と安全のエコシステムの構築に取り組んでいます。


