التمويل اللامركزي المشاكل الأمنية الشائعة والتدابير الوقائية
مؤخراً، شارك أحد خبراء الأمان درساً حول أمان التمويل اللامركزي مع أعضاء المجتمع. استعرض الأحداث الأمنية الكبرى التي واجهتها صناعة Web3 على مدار العام الماضي، واستكشف أسباب حدوث هذه الأحداث وكيفية تجنبها، وقدم ملخصاً لثغرات الأمان الشائعة في العقود الذكية وتدابير الوقاية، كما قدم بعض النصائح الأمنية للمشاريع والمستخدمين العاديين.
تشمل أنواع الثغرات الشائعة في التمويل اللامركزي قروض الفلاش، والتلاعب بالأسعار، ومشاكل صلاحيات الوظائف، واستدعاءات خارجية عشوائية، ومشاكل وظائف fallback، وثغرات منطق العمل، وتسريبات المفاتيح الخاصة، وإعادة الدخول، وما إلى ذلك. فيما يلي سيتم التركيز على قروض الفلاش، والتلاعب بالأسعار، وهجمات إعادة الدخول كأنواع ثلاث.
القرض السريع هو في حد ذاته ابتكار في التمويل اللامركزي، ولكن عندما يتم استغلاله من قبل القراصنة، يمكنهم اقتراض كميات كبيرة من المال دون أي تكلفة، وبعد تنفيذ التحكيم، يعيدون المبلغ مع دفع رسوم غاز قليلة فقط للحصول على أرباح ضخمة.
على مدى العامين الماضيين، كانت هناك مشاكل متكررة تتعلق بالقروض الفورية. بعض المشاريع تبدو وكأنها تحقق عوائد مرتفعة، لكن مستوى فرق العمل يختلف بشكل كبير. حتى لو لم يكن هناك ثغرات في الكود نفسه، قد لا تزال هناك مشاكل من الناحية المنطقية. على سبيل المثال، هناك مشاريع تقوم بتوزيع المكافآت بناءً على عدد الرموز التي يحتفظ بها حاملوها في وقت محدد، لكن المهاجمين يستغلون القروض الفورية لشراء كميات كبيرة من الرموز، مما يمكنهم من الحصول على معظم المكافآت عند توزيعها. وهناك أيضًا بعض المشاريع التي تحسب الأسعار بناءً على الرموز، يمكن أن تتأثر أسعارها من خلال القروض الفورية. يجب على فرق المشاريع أن تكون أكثر حذرًا بشأن هذه المشاكل.
التحكم في الأسعار
تتعلق مشكلة التلاعب في الأسعار ارتباطًا وثيقًا بالقروض الفورية، وهناك نوعان رئيسيان:
عند حساب الأسعار يتم استخدام بيانات طرف ثالث، ولكن الطريقة المستخدمة غير صحيحة أو أن الفحص مفقود مما يؤدي إلى التحكم الخبيث في الأسعار.
استخدم كمية الرموز في بعض العناوين كمتغيرات حسابية، حيث يمكن زيادة أو تقليل رصيد الرموز في هذه العناوين بشكل مؤقت.
هجوم إعادة الدخول
أحد المخاطر الرئيسية لاستدعاء العقود الخارجية هو أنها يمكن أن تأخذ السيطرة على تدفق التحكم، وتقوم بإجراء تغييرات غير متوقعة على البيانات.
بالنسبة للعقود المختلفة، هناك العديد من طرق إعادة الدخول، ويمكن دمج وظائف العقود المختلفة أو وظائف عقود متعددة لإكمال هجوم إعادة الدخول، لذا عند حل مشكلة إعادة الدخول، يجب الانتباه إلى:
ليس فقط لمنع مشكلة إعادة الدخول لوظيفة واحدة
اتبع نمط Checks-Effects-Interactions في الترميز
استخدام موديتر منع إعادة الدخول الذي تم التحقق منه زمنياً
أكثر ما نخشاه هو إعادة اختراع العجلة، عند الحاجة إلى شيء نكتبه بأنفسنا. هناك العديد من أفضل الممارسات الأمنية في هذا المجال، يمكننا استخدامها فقط، وليس هناك حاجة على الإطلاق لإعادة اختراع العجلة. عندما تقوم بإنشاء عجلة، فإنها لم تمر بعملية التحقق الكافية، وفي هذه الحالة، فإن احتمالية حدوث مشكلة أكبر بكثير من استخدام شيء ناضج ومجرّب بالفعل.
نصائح الأمان
نصائح أمان الطرف المشروع
تطوير العقود يتبع أفضل ممارسات الأمان.
العقود يمكن ترقيتها وإيقافها: العديد من الهجمات ليست عبارة عن تحويل جميع العملات دفعة واحدة، بل يتم تنفيذها على عدة معاملات، إذا كان هناك آلية مراقبة سليمة نسبياً، يمكن اكتشافها، وبعد الاكتشاف إذا كانت العقدة يمكن إيقافها، يمكن تقليل الخسائر بشكل فعال.
استخدام قفل الوقت: إذا كان هناك قفل وقت، على سبيل المثال يجب إكماله خلال 48 ساعة، في هذه الحالة خلال فترة قفل الوقت يمكن للعديد من الأشخاص اكتشاف أن المنشئ قام بتحديث طريقة mint يمكن للجميع استخدامها، الأشخاص المراقبون سيعرفون أن المشروع قد تم اختراقه، يمكنهم إبلاغ الفريق المشروع لتغييره، حتى وإن تم إبلاغهم، لا أحد يهتم، على الأقل يمكنهم سحب جزء أموالهم، لضمان عدم تضرر أرباحهم. لذا، إذا لم يكن هناك قفل وقت في المشروع، من الناحية النظرية، فإن ذلك يزيد من احتمال حدوث مشاكل.
زيادة الاستثمار في الأمان، وإنشاء نظام أمان متكامل: الأمان ليس نقطة واحدة، وليس خطاً واحداً، الأمان هو نظام متكامل. لا ينبغي أن تعتقد أنه كطرف مشروع، إذا تم تدقيق العقد من قبل عدة شركات، فلا توجد مشكلة، يجب أن تأخذ في الاعتبار جميع المخاطر التي قد تؤدي إلى فقدان الأموال. يجب أن تحاول القيام بنمذجة المخاطر، ثم تدريجياً تتجنب معظم المخاطر، والمخاطر المتبقية أيضًا تعتبر مخاطر مقبولة، ضمن نطاق التحمل. الأمان والكفاءة لا يمكن تحقيقهما معًا، يجب أن يكون هناك بعض التنازلات. لكن إذا لم تهتم تمامًا بالأمان، ولم تستثمر في الأمان، فإن التعرض للهجوم أمر طبيعي.
زيادة الوعي الأمني لجميع الموظفين: لا يتطلب زيادة الوعي الأمني الكثير من التقنية. في هذا السياق الكبير، يكفي أن نسأل قليلاً عن الأسباب ونفكر قليلاً لتجنب العديد من المشاكل.
منع الأفعال السيئة الداخلية، مع زيادة الكفاءة وتعزيز إدارة المخاطر: على سبيل المثال، يجب النظر في ما إذا كان مالك العقد هو توقيع فردي أم توقيع متعدد، وما إذا كان سيتم استخدام قفل زمني، إلخ.
إدخال الأمان من الأطراف الثالثة: كجزء من النظام البيئي، سيكون لكل مشروع طرفه العلوي والسفلي. هناك مبدأ "الطرف العلوي والسفلي غير آمنين بشكل افتراضي" فيما يتعلق بالأمان. يجب التحقق من كل من الطرف العلوي والسفلي. بالنسبة للأطراف الثالثة، من الصعب جدًا التحكم فيها، لذا فإن مخاطر الأمان كبيرة جدًا، لذا يجب الحذر عند إدخال الأطراف الثالثة. العقد مفتوح المصدر، يمكن استخدامه واستدعاؤه؛ إذا كان العقد غير مفتوح المصدر، فلا يمكن الاستشهاد به على الإطلاق.
كيف يمكن للمستخدمين/مقدمي السيولة判断 ما إذا كانت العقود الذكية آمنة؟
بالنسبة للمستخدمين العاديين، فإن الحكم على ما إذا كان المشروع آمناً يعتمد بشكل أساسي على النقاط الست التالية:
هل العقد مفتوح المصدر: أي مشروع لا يكون فيه العقد مفتوح المصدر، لن نتعامل معه، لأننا لا نستطيع معرفة ما هو مكتوب في العقد.
هل يستخدم المالك التوقيع المتعدد، وهل التوقيع المتعدد لامركزي: إذا لم يتم استخدام التوقيع المتعدد، فلا يمكننا تقييم منطق العمل ومحتوى المشروع، وعندما يحدث حدث أمني، لا يمكننا تحديد ما إذا كان ناتجًا عن هجوم قراصنة. حتى في حالة استخدام التوقيع المتعدد، يجب أيضًا تقييم ما إذا كان التوقيع المتعدد لامركزي.
حالة التداول الحالية للعقد: خاصة أن هناك العديد من المشاريع التي تقوم بعمليات احتيال عبر الصيد في السوق، قد تقوم بإنشاء عقد مشابه، في هذه الحالة يجب أن ننظر إلى وقت نشر العقد وعدد التفاعلات وغيرها، فهذه كلها معايير تستخدم لتحديد ما إذا كان العقد آمناً.
هل العقد هو عقد وكيل، هل يمكن ترقيته، هل هناك قفل زمني: إذا كان العقد غير قابل للترقية تمامًا، فسيكون صارمًا للغاية، لذا يُفضل أن يكون عقد المشروع قابلًا للترقية. ولكن يجب أن يكون هناك نهج عند الترقيات، عندما تكون هناك محتويات ترقية أو تغييرات مهمة في المعلمات، يجب أن يكون هناك قفل زمني، ويجب أن نمنح الجميع نافذة زمنية لتقييم ما إذا كانت الترقيات الحقيقية ضارة للمستخدمين أو مفيدة، وهذه أيضًا وسيلة للشفافية.
هل تم تدقيق العقد من قبل عدة وكالات ( لا تثق بشكل أعمى بشركات التدقيق )، هل صلاحيات المالك مفرطة: أولاً، لا تثق فقط في وكالة تدقيق واحدة، لأن وكالات التدقيق المختلفة، والمراجعين المختلفين، لديهم زوايا نظر مختلفة. ثانياً، يجب النظر في ما إذا كانت صلاحيات المالك مفرطة. يجب أن تكون صلاحيات مالك المشروع الطبيعي قابلة للتحكم، بحيث لا توجد عمليات عالية المخاطر كثيرة، كما يجب أن تتم العمليات بطريقة قفل زمني، ليعرف المستخدمون ما هي العمليات.
انتبه إلى الأوراق المالية: إذا كانت المشاريع تستخدم الأوراق المالية الرائدة في السوق، فلن تكون هناك مشاكل كبيرة بشكل أساسي، ولكن إذا كانت تستخدم أوراق مالية مبنية ذاتيًا، أو تستخدم بعض الرموز المرهونة عشوائيًا لتغذية الأسعار، فعندئذ يجب الانتباه. عندما تكتشف أن الأوراق المالية قد تحتوي على بعض المشاكل، أو أن هناك احتمال للتلاعب، حتى وإن كانت عوائد المشروع مرتفعة، فلا يجب المشاركة.
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تسجيلات الإعجاب 9
أعجبني
9
5
مشاركة
تعليق
0/400
BrokeBeans
· 07-22 12:06
واو، القروض السريعة هذه مربحة جداً، للأسف أنا لا أعرف كيف...
شاهد النسخة الأصليةرد0
LayerZeroHero
· 07-22 06:59
هل تم استهداف القروض السريعة مرة أخرى؟ ليس مفاجئاً
شاهد النسخة الأصليةرد0
P2ENotWorking
· 07-19 19:46
إذا كنت تريد كسب المال، يجب أن تعرف كيف تمنع الثغرات.
تحليل الثغرات الأمنية الشائعة في التمويل اللامركزي: القروض السريعة، التلاعب بالأسعار ووسائل الحماية من هجمات إعادة الدخول
التمويل اللامركزي المشاكل الأمنية الشائعة والتدابير الوقائية
مؤخراً، شارك أحد خبراء الأمان درساً حول أمان التمويل اللامركزي مع أعضاء المجتمع. استعرض الأحداث الأمنية الكبرى التي واجهتها صناعة Web3 على مدار العام الماضي، واستكشف أسباب حدوث هذه الأحداث وكيفية تجنبها، وقدم ملخصاً لثغرات الأمان الشائعة في العقود الذكية وتدابير الوقاية، كما قدم بعض النصائح الأمنية للمشاريع والمستخدمين العاديين.
تشمل أنواع الثغرات الشائعة في التمويل اللامركزي قروض الفلاش، والتلاعب بالأسعار، ومشاكل صلاحيات الوظائف، واستدعاءات خارجية عشوائية، ومشاكل وظائف fallback، وثغرات منطق العمل، وتسريبات المفاتيح الخاصة، وإعادة الدخول، وما إلى ذلك. فيما يلي سيتم التركيز على قروض الفلاش، والتلاعب بالأسعار، وهجمات إعادة الدخول كأنواع ثلاث.
! قسم أمان Cobo DeFi (الجزء الثاني) :D الثغرات الأمنية الشائعة والوقاية من eFi
القرض الفوري
القرض السريع هو في حد ذاته ابتكار في التمويل اللامركزي، ولكن عندما يتم استغلاله من قبل القراصنة، يمكنهم اقتراض كميات كبيرة من المال دون أي تكلفة، وبعد تنفيذ التحكيم، يعيدون المبلغ مع دفع رسوم غاز قليلة فقط للحصول على أرباح ضخمة.
على مدى العامين الماضيين، كانت هناك مشاكل متكررة تتعلق بالقروض الفورية. بعض المشاريع تبدو وكأنها تحقق عوائد مرتفعة، لكن مستوى فرق العمل يختلف بشكل كبير. حتى لو لم يكن هناك ثغرات في الكود نفسه، قد لا تزال هناك مشاكل من الناحية المنطقية. على سبيل المثال، هناك مشاريع تقوم بتوزيع المكافآت بناءً على عدد الرموز التي يحتفظ بها حاملوها في وقت محدد، لكن المهاجمين يستغلون القروض الفورية لشراء كميات كبيرة من الرموز، مما يمكنهم من الحصول على معظم المكافآت عند توزيعها. وهناك أيضًا بعض المشاريع التي تحسب الأسعار بناءً على الرموز، يمكن أن تتأثر أسعارها من خلال القروض الفورية. يجب على فرق المشاريع أن تكون أكثر حذرًا بشأن هذه المشاكل.
التحكم في الأسعار
تتعلق مشكلة التلاعب في الأسعار ارتباطًا وثيقًا بالقروض الفورية، وهناك نوعان رئيسيان:
عند حساب الأسعار يتم استخدام بيانات طرف ثالث، ولكن الطريقة المستخدمة غير صحيحة أو أن الفحص مفقود مما يؤدي إلى التحكم الخبيث في الأسعار.
استخدم كمية الرموز في بعض العناوين كمتغيرات حسابية، حيث يمكن زيادة أو تقليل رصيد الرموز في هذه العناوين بشكل مؤقت.
هجوم إعادة الدخول
أحد المخاطر الرئيسية لاستدعاء العقود الخارجية هو أنها يمكن أن تأخذ السيطرة على تدفق التحكم، وتقوم بإجراء تغييرات غير متوقعة على البيانات.
بالنسبة للعقود المختلفة، هناك العديد من طرق إعادة الدخول، ويمكن دمج وظائف العقود المختلفة أو وظائف عقود متعددة لإكمال هجوم إعادة الدخول، لذا عند حل مشكلة إعادة الدخول، يجب الانتباه إلى:
ليس فقط لمنع مشكلة إعادة الدخول لوظيفة واحدة
اتبع نمط Checks-Effects-Interactions في الترميز
استخدام موديتر منع إعادة الدخول الذي تم التحقق منه زمنياً
أكثر ما نخشاه هو إعادة اختراع العجلة، عند الحاجة إلى شيء نكتبه بأنفسنا. هناك العديد من أفضل الممارسات الأمنية في هذا المجال، يمكننا استخدامها فقط، وليس هناك حاجة على الإطلاق لإعادة اختراع العجلة. عندما تقوم بإنشاء عجلة، فإنها لم تمر بعملية التحقق الكافية، وفي هذه الحالة، فإن احتمالية حدوث مشكلة أكبر بكثير من استخدام شيء ناضج ومجرّب بالفعل.
نصائح الأمان
نصائح أمان الطرف المشروع
تطوير العقود يتبع أفضل ممارسات الأمان.
العقود يمكن ترقيتها وإيقافها: العديد من الهجمات ليست عبارة عن تحويل جميع العملات دفعة واحدة، بل يتم تنفيذها على عدة معاملات، إذا كان هناك آلية مراقبة سليمة نسبياً، يمكن اكتشافها، وبعد الاكتشاف إذا كانت العقدة يمكن إيقافها، يمكن تقليل الخسائر بشكل فعال.
استخدام قفل الوقت: إذا كان هناك قفل وقت، على سبيل المثال يجب إكماله خلال 48 ساعة، في هذه الحالة خلال فترة قفل الوقت يمكن للعديد من الأشخاص اكتشاف أن المنشئ قام بتحديث طريقة mint يمكن للجميع استخدامها، الأشخاص المراقبون سيعرفون أن المشروع قد تم اختراقه، يمكنهم إبلاغ الفريق المشروع لتغييره، حتى وإن تم إبلاغهم، لا أحد يهتم، على الأقل يمكنهم سحب جزء أموالهم، لضمان عدم تضرر أرباحهم. لذا، إذا لم يكن هناك قفل وقت في المشروع، من الناحية النظرية، فإن ذلك يزيد من احتمال حدوث مشاكل.
زيادة الاستثمار في الأمان، وإنشاء نظام أمان متكامل: الأمان ليس نقطة واحدة، وليس خطاً واحداً، الأمان هو نظام متكامل. لا ينبغي أن تعتقد أنه كطرف مشروع، إذا تم تدقيق العقد من قبل عدة شركات، فلا توجد مشكلة، يجب أن تأخذ في الاعتبار جميع المخاطر التي قد تؤدي إلى فقدان الأموال. يجب أن تحاول القيام بنمذجة المخاطر، ثم تدريجياً تتجنب معظم المخاطر، والمخاطر المتبقية أيضًا تعتبر مخاطر مقبولة، ضمن نطاق التحمل. الأمان والكفاءة لا يمكن تحقيقهما معًا، يجب أن يكون هناك بعض التنازلات. لكن إذا لم تهتم تمامًا بالأمان، ولم تستثمر في الأمان، فإن التعرض للهجوم أمر طبيعي.
زيادة الوعي الأمني لجميع الموظفين: لا يتطلب زيادة الوعي الأمني الكثير من التقنية. في هذا السياق الكبير، يكفي أن نسأل قليلاً عن الأسباب ونفكر قليلاً لتجنب العديد من المشاكل.
منع الأفعال السيئة الداخلية، مع زيادة الكفاءة وتعزيز إدارة المخاطر: على سبيل المثال، يجب النظر في ما إذا كان مالك العقد هو توقيع فردي أم توقيع متعدد، وما إذا كان سيتم استخدام قفل زمني، إلخ.
إدخال الأمان من الأطراف الثالثة: كجزء من النظام البيئي، سيكون لكل مشروع طرفه العلوي والسفلي. هناك مبدأ "الطرف العلوي والسفلي غير آمنين بشكل افتراضي" فيما يتعلق بالأمان. يجب التحقق من كل من الطرف العلوي والسفلي. بالنسبة للأطراف الثالثة، من الصعب جدًا التحكم فيها، لذا فإن مخاطر الأمان كبيرة جدًا، لذا يجب الحذر عند إدخال الأطراف الثالثة. العقد مفتوح المصدر، يمكن استخدامه واستدعاؤه؛ إذا كان العقد غير مفتوح المصدر، فلا يمكن الاستشهاد به على الإطلاق.
كيف يمكن للمستخدمين/مقدمي السيولة判断 ما إذا كانت العقود الذكية آمنة؟
بالنسبة للمستخدمين العاديين، فإن الحكم على ما إذا كان المشروع آمناً يعتمد بشكل أساسي على النقاط الست التالية:
هل العقد مفتوح المصدر: أي مشروع لا يكون فيه العقد مفتوح المصدر، لن نتعامل معه، لأننا لا نستطيع معرفة ما هو مكتوب في العقد.
هل يستخدم المالك التوقيع المتعدد، وهل التوقيع المتعدد لامركزي: إذا لم يتم استخدام التوقيع المتعدد، فلا يمكننا تقييم منطق العمل ومحتوى المشروع، وعندما يحدث حدث أمني، لا يمكننا تحديد ما إذا كان ناتجًا عن هجوم قراصنة. حتى في حالة استخدام التوقيع المتعدد، يجب أيضًا تقييم ما إذا كان التوقيع المتعدد لامركزي.
حالة التداول الحالية للعقد: خاصة أن هناك العديد من المشاريع التي تقوم بعمليات احتيال عبر الصيد في السوق، قد تقوم بإنشاء عقد مشابه، في هذه الحالة يجب أن ننظر إلى وقت نشر العقد وعدد التفاعلات وغيرها، فهذه كلها معايير تستخدم لتحديد ما إذا كان العقد آمناً.
هل العقد هو عقد وكيل، هل يمكن ترقيته، هل هناك قفل زمني: إذا كان العقد غير قابل للترقية تمامًا، فسيكون صارمًا للغاية، لذا يُفضل أن يكون عقد المشروع قابلًا للترقية. ولكن يجب أن يكون هناك نهج عند الترقيات، عندما تكون هناك محتويات ترقية أو تغييرات مهمة في المعلمات، يجب أن يكون هناك قفل زمني، ويجب أن نمنح الجميع نافذة زمنية لتقييم ما إذا كانت الترقيات الحقيقية ضارة للمستخدمين أو مفيدة، وهذه أيضًا وسيلة للشفافية.
هل تم تدقيق العقد من قبل عدة وكالات ( لا تثق بشكل أعمى بشركات التدقيق )، هل صلاحيات المالك مفرطة: أولاً، لا تثق فقط في وكالة تدقيق واحدة، لأن وكالات التدقيق المختلفة، والمراجعين المختلفين، لديهم زوايا نظر مختلفة. ثانياً، يجب النظر في ما إذا كانت صلاحيات المالك مفرطة. يجب أن تكون صلاحيات مالك المشروع الطبيعي قابلة للتحكم، بحيث لا توجد عمليات عالية المخاطر كثيرة، كما يجب أن تتم العمليات بطريقة قفل زمني، ليعرف المستخدمون ما هي العمليات.
انتبه إلى الأوراق المالية: إذا كانت المشاريع تستخدم الأوراق المالية الرائدة في السوق، فلن تكون هناك مشاكل كبيرة بشكل أساسي، ولكن إذا كانت تستخدم أوراق مالية مبنية ذاتيًا، أو تستخدم بعض الرموز المرهونة عشوائيًا لتغذية الأسعار، فعندئذ يجب الانتباه. عندما تكتشف أن الأوراق المالية قد تحتوي على بعض المشاكل، أو أن هناك احتمال للتلاعب، حتى وإن كانت عوائد المشروع مرتفعة، فلا يجب المشاركة.