分散型金融安全攻防:フラッシュローン、価格操控と再入攻撃の予防ガイド

robot
概要作成中

一般的なDeFiセキュリティの脆弱性と注意事項

最近、あるセキュリティ専門家がコミュニティメンバーに向けて分散型金融のセキュリティ講座を共有しました。彼は過去1年以上のWeb3業界で発生した重大なセキュリティ事件を振り返り、これらの事件が発生した理由や回避方法について探討しました。また、一般的なスマートコントラクトのセキュリティの脆弱性と予防策をまとめ、プロジェクト側と一般ユーザーに対していくつかのセキュリティのアドバイスを提供しました。

一般的な分散型金融の脆弱性の種類には、フラッシュローン、価格操作、関数権限の問題、任意の外部呼び出し、フォールバック関数の問題、ビジネスロジックの脆弱性、秘密鍵の漏洩、再入攻撃などがあります。本稿では、フラッシュローン、価格操作、再入攻撃の三種類について重点的に紹介します。

! Cobo DeFiセキュリティセクション(パートII):D eFiの一般的なセキュリティの脆弱性と防止

フラッシュローン

フラッシュローンは分散型金融の一種の革新ですが、ハッカーに利用されることもよくあります:

  • 攻撃者はフラッシュローンを通じて大量の資金を借り出し、価格を操作したりビジネスロジックを攻撃したりします。
  • 開発者は、契約機能が巨額の資金によって異常を引き起こす可能性があるか、または不当な報酬を得るために利用されるかを考慮する必要があります。
  • 一部のプロジェクトは設計時にフラッシュローンの影響を考慮せず、資金が盗まれる結果となった

過去2年間、フラッシュローンは多くの問題を引き起こしました。一部の高リターンの分散型金融プロジェクトは、開発レベルがまちまちで、多くの脆弱性が存在します。例えば、あるプロジェクトは固定時間に保有量に基づいて報酬を配布しており、攻撃者はフラッシュローンを利用して大量のトークンを購入し、大部分の報酬を得ました。また、トークンで価格を計算するプロジェクトも、フラッシュローンによって価格に影響を受ける可能性があります。プロジェクトチームは、これらの問題に対して警戒を怠るべきではありません。

価格操作

価格操作問題はフラッシュローンと密接に関連しており、主に2種類あります:

  1. 第三者データを使用して価格を計算しますが、使用方法が不適切またはチェックが不足しているため、価格が悪意を持って操作されることがあります。

  2. 特定のアドレスのToken残高を計算変数として使用し、これらの残高は一時的に増減することができる。

リエントランシー攻撃

外部契約を呼び出す主なリスクは、それらが制御フローを引き継ぎ、データに予期しない変更を加える可能性があることです。例えば:

ソリディティ マッピング (address => uint) private userBalances;

関数 withdrawBalance() public { uint amountToWithdraw = userBalances[msg.sender]; 成功(bool、) = msg.sender.call.value(amountToWithdraw)("" ); require(success); userBalances[msg.sender] = 0; }

ユーザー残高は関数の最後までゼロにならないため、繰り返し呼び出しても残高を正常に引き出すことができます。

再入攻撃の形式は多様で、複数の関数や契約が関与する可能性があります。再入問題を解決するには、注意が必要です:

  1. 単一の関数の再入を防ぐだけではない
  2. Checks-Effects-Interactionsパターンに従う
    3.実績のあるアンチリエントランシーモディファイアを使用する

既存のベストセキュリティプラクティスを使用する方が良いです。新しいソリューションを独自に開発するよりも、成熟したソリューションの方が安全で信頼できます。

プロジェクト側の安全に関する提案

  1. 契約開発のベストセキュリティプラクティスに従う
  2. コントラクトのアップグレードおよび一時停止機能を実現する
  3. タイムロック機構を採用する
  4. セキュリティ投資を増やし、完璧なセキュリティシステムを構築する
  5. すべての従業員の安全意識を高める
  6. 内部的悪行を防ぎ、効率を向上させると同時にリスク管理を強化する
  7. 第三者を慎重に導入し、安全チェックを行う

ユーザーはどのようにスマートコントラクトの安全性を判断するか

  1. コントラクトがオープンソースであることを確認する
  2. Ownerが分散型のマルチシグを採用しているか確認する
  3. 契約の既存の取引を確認する
  4. コントラクトがアップグレード可能かどうか、タイムロックがあるかどうかを判断する
  5. 契約が複数の機関によって監査されているか、オーナーの権限が大きすぎないかを確認する
  6. オラクルの使用状況に注目する

総じて、分散型金融エコシステムの中で、プロジェクト側とユーザーは、高度な安全意識を維持し、必要な防止策を講じ、エコシステムの健全な発展を共に維持する必要があります。

DEFI0.25%
原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 3
  • 共有
コメント
0/400
ImpermanentPhobiavip
· 6時間前
またハッカーとフラッシュローン、真に刺激的だ
原文表示返信0
SnapshotBotvip
· 6時間前
プロジェクトはまだ毎日初心者をカモにしています
原文表示返信0
OffchainWinnervip
· 6時間前
また新しいテクニックを学んだね、へへ
原文表示返信0
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)