# 一般的なDeFiセキュリティの脆弱性と注意事項最近、あるセキュリティ専門家がコミュニティメンバーに向けて分散型金融のセキュリティ講座を開きました。専門家は、過去1年以上にわたるWeb3業界での重大なセキュリティ事件を振り返り、これらの事件が発生した理由や回避方法について探討し、一般的なスマートコントラクトのセキュリティ脆弱性と予防策をまとめ、プロジェクト関係者や一般ユーザーに対していくつかのセキュリティアドバイスを提供しました。一般的な分散型金融の脆弱性のタイプには、フラッシュローン、価格操作、関数権限の問題、任意の外部呼び出し、フォールバック関数の問題、ビジネスロジックの脆弱性、秘密鍵の漏洩、再入攻撃が含まれます。本記事では、フラッシュローン、価格操作、再入攻撃の3つのタイプに重点を置いて紹介します。! [Cobo DeFiセキュリティセクション(パートII):D eFiの一般的なセキュリティの脆弱性と防止](https://img-cdn.gateio.im/social/moments-cf2aa755426b31e8f21cbb05cc1fe39a)## フラッシュローンフラッシュローンは分散型金融の一種の革新ですが、しばしばハッカーに悪用されます。攻撃者は通常、フラッシュローンを利用して大量の資金を借り出し、価格を操作したりビジネスロジックを攻撃したりします。開発者は、契約機能が巨額の資金によって異常を引き起こす可能性があるか、または不正な報酬を得るために利用される可能性があるかを考慮する必要があります。多くの分散型金融プロジェクトは高い収益を上げているように見えますが、実際にはプロジェクトチームのレベルはまちまちです。コード自体に脆弱性がなくても、論理的に問題が存在する可能性があります。例えば、一部のプロジェクトは固定された時間に保有者のトークン数に基づいて報酬を配布しますが、攻撃者がフラッシュローンを利用して大量のトークンを購入し、報酬配布時に大部分の報酬を獲得することがあります。## 価格操作価格操作の問題はフラッシュローンと密接に関連しており、主に価格計算時のいくつかのパラメータがユーザーによって制御可能であるためです。一般的な問題のタイプは2種類あります:1. 価格を計算する際に第三者のデータを使用するが、使用方法が不適切またはチェックが欠落しているため、価格が悪意を持って操作される。2. 特定のアドレスのトークン数量を計算変数として使用し、これらのアドレスのトークン残高は一時的に増減可能です。## リエントランシー攻撃外部契約を呼び出す主なリスクの一つは、それらが制御フローを奪い、データに予期しない変更を加える可能性があることです。再入攻撃の典型的な例としては、ユーザーの残高が更新される前に送金が完了し、攻撃者が残高を繰り返し引き出すことができるという状況があります。再入問題を解決する際は、以下の点に注意する必要があります:1. 単一の関数の再入問題を防ぐだけではなく;2. エンコードについては、Checks-Effects-Interactions パターンに従います。3. 時間が検証された再入防止デコレーターを使用する。この分野には多くのベストプラクティスが存在しており、再び車輪を作る必要はありません。十分に検証された成熟したソリューションを使用する方が、新しいソリューションを独自に開発するよりも安全です。## プロジェクトチームの安全に関する提案1. 最良のセキュリティプラクティスに従って契約を開発する。2. コントラクトのアップグレード可能および一時停止機能を実現する。3. タイムロック機構を採用する。4. セキュリティへの投資を増やし、完全なセキュリティシステムを構築する。5. 全ての従業員のセキュリティ意識を高める。6. 内部の悪事を防止し、効率を向上させると同時にリスク管理を強化する。7.サードパーティの依存関係を慎重に導入し、アップストリームとダウンストリームのセキュリティを確認します。## ユーザーはどのようにスマートコントラクトの安全性を判断するか1. コントラクトがオープンソースかどうかを確認してください。2. Owner が分散型のマルチシグ機構を採用しているか確認する。3. 既存の契約の取引状況を確認します。4. コントラクトが代理コントラクトであるか、アップグレード可能であるか、タイムロックがあるかを確認してください。5. 契約が複数の機関による監査を受けたかどうか、Ownerの権限が過大でないか確認してください。6. オラクルの使用状況に注意し、特に自作または信頼できないオラクルに警戒してください。これらの側面に注目することで、ユーザーはスマートコントラクトの安全性をより良く評価し、分散型金融プロジェクトへの参加リスクを低減できます。
DeFiセキュリティコース:一般的な脆弱性の種類の分析と予防策
一般的なDeFiセキュリティの脆弱性と注意事項
最近、あるセキュリティ専門家がコミュニティメンバーに向けて分散型金融のセキュリティ講座を開きました。専門家は、過去1年以上にわたるWeb3業界での重大なセキュリティ事件を振り返り、これらの事件が発生した理由や回避方法について探討し、一般的なスマートコントラクトのセキュリティ脆弱性と予防策をまとめ、プロジェクト関係者や一般ユーザーに対していくつかのセキュリティアドバイスを提供しました。
一般的な分散型金融の脆弱性のタイプには、フラッシュローン、価格操作、関数権限の問題、任意の外部呼び出し、フォールバック関数の問題、ビジネスロジックの脆弱性、秘密鍵の漏洩、再入攻撃が含まれます。本記事では、フラッシュローン、価格操作、再入攻撃の3つのタイプに重点を置いて紹介します。
! Cobo DeFiセキュリティセクション(パートII):D eFiの一般的なセキュリティの脆弱性と防止
フラッシュローン
フラッシュローンは分散型金融の一種の革新ですが、しばしばハッカーに悪用されます。攻撃者は通常、フラッシュローンを利用して大量の資金を借り出し、価格を操作したりビジネスロジックを攻撃したりします。開発者は、契約機能が巨額の資金によって異常を引き起こす可能性があるか、または不正な報酬を得るために利用される可能性があるかを考慮する必要があります。
多くの分散型金融プロジェクトは高い収益を上げているように見えますが、実際にはプロジェクトチームのレベルはまちまちです。コード自体に脆弱性がなくても、論理的に問題が存在する可能性があります。例えば、一部のプロジェクトは固定された時間に保有者のトークン数に基づいて報酬を配布しますが、攻撃者がフラッシュローンを利用して大量のトークンを購入し、報酬配布時に大部分の報酬を獲得することがあります。
価格操作
価格操作の問題はフラッシュローンと密接に関連しており、主に価格計算時のいくつかのパラメータがユーザーによって制御可能であるためです。一般的な問題のタイプは2種類あります:
リエントランシー攻撃
外部契約を呼び出す主なリスクの一つは、それらが制御フローを奪い、データに予期しない変更を加える可能性があることです。再入攻撃の典型的な例としては、ユーザーの残高が更新される前に送金が完了し、攻撃者が残高を繰り返し引き出すことができるという状況があります。
再入問題を解決する際は、以下の点に注意する必要があります:
この分野には多くのベストプラクティスが存在しており、再び車輪を作る必要はありません。十分に検証された成熟したソリューションを使用する方が、新しいソリューションを独自に開発するよりも安全です。
プロジェクトチームの安全に関する提案
ユーザーはどのようにスマートコントラクトの安全性を判断するか
これらの側面に注目することで、ユーザーはスマートコントラクトの安全性をより良く評価し、分散型金融プロジェクトへの参加リスクを低減できます。