الثغرات الأمنية الشائعة في التمويل اللامركزي وتدابير الوقاية
مؤخراً، شارك أحد خبراء الأمن دورة تعليمية حول أمان التمويل اللامركزي للأعضاء في المجتمع. استعرض الأحداث الأمنية الكبرى التي شهدها قطاع Web3 على مدى أكثر من عام، وناقش أسباب حدوث هذه الأحداث وكيفية تجنبها، وخلص إلى الثغرات الأمنية الشائعة في العقود الذكية وإجراءات الوقاية، كما قدم بعض النصائح الأمنية للجهات القائمة على المشاريع والمستخدمين العاديين.
تشمل الأنواع الشائعة من ثغرات التمويل اللامركزي القروض الفورية، وتلاعب الأسعار، ومشاكل صلاحيات الدوال، والاستدعاءات الخارجية العشوائية، ومشاكل دالة fallback، وثغرات منطق العمل، وتسريب المفاتيح الخاصة، وهجمات إعادة الإدخال وغيرها. ستتناول هذه المقالة بشكل خاص القروض الفورية، وتلاعب الأسعار، وهجمات إعادة الإدخال.
القرض السريع هو ابتكار في التمويل اللامركزي، لكنه غالبًا ما يُستخدم من قبل القراصنة:
المهاجمون يستعيرون كميات كبيرة من المال عبر القروض الفورية، للتلاعب في الأسعار أو مهاجمة منطق العمل.
يجب أن يأخذ المطورون في الاعتبار ما إذا كانت وظائف العقد قد تتسبب في حدوث استثنائيات بسبب كميات ضخمة من الأموال، أو تُستغل للحصول على مكافآت غير مناسبة
بعض المشاريع لم تأخذ في الاعتبار تأثير القروض السريعة عند التصميم، مما أدى إلى سرقة الأموال
في العامين الماضيين، أثار الإقراض الفوري العديد من المشكلات. بعض مشاريع التمويل اللامركزي ذات العائد المرتفع تعاني من تفاوت في مستوى التطوير، مما يؤدي إلى وجود العديد من الثغرات. على سبيل المثال، هناك مشاريع توزع المكافآت بناءً على الحيازات في وقت محدد، والتي استغلها المهاجمون باستخدام الإقراض الفوري لشراء كميات كبيرة من الرموز للحصول على معظم المكافآت. وهناك أيضاً بعض المشاريع التي تحسب الأسعار من خلال الرموز، والتي يمكن أن تتأثر أسعارها بالإقراض الفوري. يجب على فرق المشاريع أن تظل يقظة تجاه هذه المشكلات.
التحكم في الأسعار
تتعلق مشكلة التلاعب بالأسعار ارتباطًا وثيقًا بالقروض الفورية، وهناك نوعان رئيسيان:
استخدام بيانات الطرف الثالث لحساب الأسعار، ولكن بسبب سوء الاستخدام أو نقص الفحص، يؤدي إلى التلاعب الخبيث في الأسعار.
استخدام رصيد التوكن لبعض العناوين كمتغيرات حسابية، حيث يمكن زيادة أو تقليل هذه الأرصدة مؤقتًا.
هجوم إعادة الإدخال
المخاطر الرئيسية لاستدعاء العقود الخارجية هي أنها قد تستحوذ على تدفق التحكم، وتجري تعديلات غير متوقعة على البيانات. على سبيل المثال:
المتانة
رسم الخرائط (address = > uint) أرصدة مستخدم خاصة ؛
وظيفة withdrawBalance() عامة {
uint amountToWithdraw = userBalances[msg.sender];
(bool النجاح ، ) = msg.sender.call.value(amountToWithdraw)( "" );
require(success).
أرصدة المستخدم[msg.sender] = 0;
}
بما أن رصيد المستخدم سيصبح صفرًا فقط في نهاية الدالة، فإن الاستدعاءات المتكررة ستظل قادرة على سحب الرصيد بنجاح.
هناك أشكال متعددة للهجمات المتكررة، وقد تشمل عدة وظائف أو عقود. يجب الانتباه إلى حل مشكلة التكرار:
لا يمنع فقط إعادة الدخول لوظيفة واحدة
اتبع نمط الشيكات والتأثيرات والتفاعلات
استخدام مُعدل منع إعادة الدخول المُعتمد
من الأفضل استخدام أفضل الممارسات الأمنية الموجودة بدلاً من إعادة اختراع العجلة. الحلول الناضجة أكثر أمانًا وموثوقية من تطوير حلول جديدة بنفسك.
نصائح الأمان لمشروع الطرف
اتباع أفضل الممارسات الأمنية في تطوير العقود
تنفيذ وظائف ترقية وإيقاف العقد
استخدام آلية قفل الوقت
زيادة الاستثمار في الأمان، وإنشاء نظام أمان كامل
زيادة الوعي الأمني بين جميع الموظفين
منع الأذى الداخلي، مع تعزيز كفاءة العمل وتعزيز إدارة المخاطر
احذر من إدخال الأطراف الثالثة، وتأكد من التحقق من الأمان
كيف يمكن للمستخدمين تحديد أمان العقود الذكية
تأكد من ما إذا كانت العقد مفتوحة المصدر
تحقق مما إذا كان المالك يستخدم توقيع متعدد لامركزي
الاطلاع على حالة التداول الحالية للعقد
تحقق مما إذا كان العقد قابلاً للتحديث، وما إذا كان هناك قفل زمني
تأكيد ما إذا كانت العقد قد تم تدقيقها من قبل عدة مؤسسات، وما إذا كانت صلاحيات المالك كبيرة جدًا
متابعة استخدام الأوراق المالية
بشكل عام، في نظام التمويل اللامركزي، يحتاج كل من المشاريع والمستخدمين إلى الحفاظ على وعي عالٍ بالسلامة، واتخاذ التدابير اللازمة، للحفاظ على التنمية الصحية للنظام.
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تسجيلات الإعجاب 16
أعجبني
16
3
مشاركة
تعليق
0/400
ImpermanentPhobia
· منذ 9 س
هاكر والقروض السريعة 真刺激
شاهد النسخة الأصليةرد0
SnapshotBot
· منذ 9 س
فريق المشروع لا يزال يخدع الناس لتحقيق الربح يومياً
الأمن والدفاع في التمويل اللامركزي: دليل الوقاية من القروض السريعة، والتلاعب بالأسعار، وهجمات إعادة الدخول
الثغرات الأمنية الشائعة في التمويل اللامركزي وتدابير الوقاية
مؤخراً، شارك أحد خبراء الأمن دورة تعليمية حول أمان التمويل اللامركزي للأعضاء في المجتمع. استعرض الأحداث الأمنية الكبرى التي شهدها قطاع Web3 على مدى أكثر من عام، وناقش أسباب حدوث هذه الأحداث وكيفية تجنبها، وخلص إلى الثغرات الأمنية الشائعة في العقود الذكية وإجراءات الوقاية، كما قدم بعض النصائح الأمنية للجهات القائمة على المشاريع والمستخدمين العاديين.
تشمل الأنواع الشائعة من ثغرات التمويل اللامركزي القروض الفورية، وتلاعب الأسعار، ومشاكل صلاحيات الدوال، والاستدعاءات الخارجية العشوائية، ومشاكل دالة fallback، وثغرات منطق العمل، وتسريب المفاتيح الخاصة، وهجمات إعادة الإدخال وغيرها. ستتناول هذه المقالة بشكل خاص القروض الفورية، وتلاعب الأسعار، وهجمات إعادة الإدخال.
! قسم أمان Cobo DeFi (الجزء الثاني) :D الثغرات الأمنية الشائعة والوقاية من eFi
قرض البرق
القرض السريع هو ابتكار في التمويل اللامركزي، لكنه غالبًا ما يُستخدم من قبل القراصنة:
في العامين الماضيين، أثار الإقراض الفوري العديد من المشكلات. بعض مشاريع التمويل اللامركزي ذات العائد المرتفع تعاني من تفاوت في مستوى التطوير، مما يؤدي إلى وجود العديد من الثغرات. على سبيل المثال، هناك مشاريع توزع المكافآت بناءً على الحيازات في وقت محدد، والتي استغلها المهاجمون باستخدام الإقراض الفوري لشراء كميات كبيرة من الرموز للحصول على معظم المكافآت. وهناك أيضاً بعض المشاريع التي تحسب الأسعار من خلال الرموز، والتي يمكن أن تتأثر أسعارها بالإقراض الفوري. يجب على فرق المشاريع أن تظل يقظة تجاه هذه المشكلات.
التحكم في الأسعار
تتعلق مشكلة التلاعب بالأسعار ارتباطًا وثيقًا بالقروض الفورية، وهناك نوعان رئيسيان:
استخدام بيانات الطرف الثالث لحساب الأسعار، ولكن بسبب سوء الاستخدام أو نقص الفحص، يؤدي إلى التلاعب الخبيث في الأسعار.
استخدام رصيد التوكن لبعض العناوين كمتغيرات حسابية، حيث يمكن زيادة أو تقليل هذه الأرصدة مؤقتًا.
هجوم إعادة الإدخال
المخاطر الرئيسية لاستدعاء العقود الخارجية هي أنها قد تستحوذ على تدفق التحكم، وتجري تعديلات غير متوقعة على البيانات. على سبيل المثال:
المتانة رسم الخرائط (address = > uint) أرصدة مستخدم خاصة ؛
وظيفة withdrawBalance() عامة { uint amountToWithdraw = userBalances[msg.sender]; (bool النجاح ، ) = msg.sender.call.value(amountToWithdraw)( "" ); require(success). أرصدة المستخدم[msg.sender] = 0; }
بما أن رصيد المستخدم سيصبح صفرًا فقط في نهاية الدالة، فإن الاستدعاءات المتكررة ستظل قادرة على سحب الرصيد بنجاح.
هناك أشكال متعددة للهجمات المتكررة، وقد تشمل عدة وظائف أو عقود. يجب الانتباه إلى حل مشكلة التكرار:
من الأفضل استخدام أفضل الممارسات الأمنية الموجودة بدلاً من إعادة اختراع العجلة. الحلول الناضجة أكثر أمانًا وموثوقية من تطوير حلول جديدة بنفسك.
نصائح الأمان لمشروع الطرف
كيف يمكن للمستخدمين تحديد أمان العقود الذكية
بشكل عام، في نظام التمويل اللامركزي، يحتاج كل من المشاريع والمستخدمين إلى الحفاظ على وعي عالٍ بالسلامة، واتخاذ التدابير اللازمة، للحفاظ على التنمية الصحية للنظام.