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