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