المدونة

ترجمة آلية · اقرأ بالإنجليزية

الوحدة 2 من SSO - ثغرات العقود الذكية: تعمق في هجمات إعادة الدخول

توفر العقود الذكية الشفافية لكنها تحمل مخاطر. يكشف هذا المقال عن ثغرات مثل إعادة الدخول، مع خسارة DAO البالغة 150 مليون دولار كحالة. أدى تجاوز الأعداد الصحيحة إلى انتكاسة BeautyChain البالغة 900 مليون دولار. خسرت DAOMaker 4 ملايين دولار بسبب عيوب التحكم في الوصول. شهدت هجمات القروض السريعة خسارة Harves Finance 38 مليون دولار.

بواسطة Markos Mebellis

الوحدة 2 من SSO - ثغرات العقود الذكية: تعمق في هجمات إعادة الدخول
في هذه الصفحة

تُحدث العقود الذكية ثورة في الصناعات العالمية بفضل كفاءتها وشفافيتها وخصائصها غير القابلة للتغيير. ومع ذلك، فإن تصميمها المفتوح والآلي يعرضها أيضًا للمخاطر. لتعظيم إمكاناتها مع تقليل التهديدات، من الضروري فهم ثغراتها ومسارات الهجوم المحتملة. يتطلب إنشاء هذه العقود وصيانتها اهتمامًا دقيقًا والالتزام بأفضل الممارسات. يتعمق هذا المقال في الثغرات الشائعة، موضحًا إياها بحالات من العالم الحقيقي لتعزيز الفهم. لنلقِ نظرة على المقال التالي، برعاية Salus Security.

الثغرات الرئيسية:

**إعادة الدخول:** هنا يستغل المهاجمون ثغرة، فيعيدون الدخول إلى الدوال قبل اكتمال العمليات الرئيسية أو تحديث القيم.

إعادة الدخول أحادية الدالة: يحدث هذا عندما يتفاعل عقد مع عقد خبيث، مما يسمح للأخير بإعادة الدخول إلى دالة. على سبيل المثال، يمكن للعقود الخبيثة إعادة الدخول باستمرار إلى دالة 'withdrawBalance'، وسحب المزيد من الإيثر قبل تحديث الأرصدة.

هجمات بارزة:

  • The DAO (2016): بعد جمع 150 مليون دولار، تم اختراقه بسبب ثغرات في البرمجة. أدى ذلك إلى انقسام شبكة Ethereum.
  • PolyDex (2021): خسر 500 ألف دولار بسبب هجوم إعادة دخول على العقد الذكي PLX Locker.
  • Bacon Protocol (2022): تكبد خسارة مليون دولار من خطأ إعادة دخول في دالة lend().
  • Lendf.Me (2020): خسر ما يقرب من 24.7 مليون دولار عبر عملات مشفرة متعددة.

**إعادة الدخول متعددة الدوال:** تنشأ من الحالات المشتركة بين دوال مختلفة وضعف الحماية من إعادة الدخول. يشير مثال 'balances' أعلاه إلى أنه على الرغم من حماية 'withdrawAll'، يمكن للمهاجمين استغلال دالة 'transfer'.

حوادث سيئة السمعة:

  • DFX Finance (2022): خسر أكثر من 7 ملايين دولار بسبب هجوم استغل دالة بدون حماية من إعادة الدخول.
  • Hundred Finance (2022): خسر حوالي 6.5 ملايين دولار بعد أن استغل هجوم إعادة دخول دالة borrowFresh.
  • Fei Protocol (2022): خسر حوالي 80 مليون دولار من هجوم استغل ثغرة إعادة الدخول.

**إعادة الدخول عبر العقود:** تنتج من الحالات المشتركة عبر عقود مختلفة وتسلسلات تعديل المتغيرات الخاطئة. حتى إذا كانت الدوال محمية، يمكن استغلال دوال أخرى، مثل 'burnAccount'.

هجمات بارزة:

  • Rari Capital (2021): خسر ما يقرب من 10 ملايين دولار (~2600 ETH) في أقل من ساعة.
  • ValueDefi (2021): خسر 5345.314 WBNB بسبب حسابات حصص غير صالحة، والتي اعتمدت على بيانات خارجية.

إعادة الدخول للقراءة فقط:

تستغل إعادة الدخول للقراءة فقط دالة، رغم أنها لا تغير حالة العقد، يمكنها إنتاج مخرجات خاطئة عندما تكون الحالة غير متسقة.

هجمات جديرة بالملاحظة:

  • QuickSwap (2022): أساء المستغلون استخدام قرض سريع لتعديل سعر الأصل الفوري، وسرقوا 138 ETH و700 MATIC. كان ذلك ممكنًا بسبب عيب في أوراكل Curve LP.
  • dForce (2023): كان هناك خطأ إعادة دخول للقراءة فقط في الكود الذي يصل إلى أوراكل الأسعار على شبكتي Arbitrum وOptimism مع Curve Finance.
  • Sentimente (2023): أدى هجوم، استغل عيب إعادة دخول للقراءة فقط، إلى سرقة مليون دولار. لحسن الحظ، أعاد الجاني 90%.
  • Sturdy (2023): خسر ما يقرب من 442 ETH بسبب مشكلة إعادة دخول للقراءة فقط في Balancer حيث تم التلاعب بسعر B-stETH-STABLE.

الوقاية من ثغرة إعادة الدخول:

  1. التزم دائمًا بنمط التحقق-التأثير-التفاعل.
  2. استخدم حماية إعادة الدخول لجميع العمليات الحساسة.
  3. تعامل مع كل استدعاء خارجي بدقة.

تجاوز الأعداد الصحيحة:

عندما تتجاوز الحسابات الحدود، فإنها تتجاوز السعة، مما يؤدي غالبًا إلى قيم ضئيلة أو هائلة.

هجمات توضيحية:

  • BeautyChain (2018): حصل المهاجمون على 10^58 BECs عبر تجاوز الأعداد الصحيحة، وتخلصوا من مبلغ مذهل قدره 900 مليون دولار.
  • Poolz (2023): أدى إلى خسارة ما يقرب من 665,000 دولار عبر Ethereum وBinance وPolygon على السلسلة.

تدابير مكافحة تجاوز الأعداد الصحيحة:

  1. استخدم طرق حساب آمنة مثل مكتبة safeMath.
  2. أعط الأولوية لفحص الحدود للتأكد من بقاء النتائج ضمن النطاق.
  3. اعتمد إصدار مترجم solidity 0.8.0 أو أحدث للكشف المدمج عن التجاوز.

التحكم في الوصول:
تنشأ ثغرات التحكم في الوصول من غياب قيود وصول صارمة على الدوال التي تتعامل مع العمليات الحساسة.

  • هجمات بارزة:
  • DAOMaker (2021): تم سحب مبلغ هائل ~4 ملايين دولار بعد أن تُركت دالة init عرضة للخطر.
  • GymNetwork (2022): استغل المستغلون سهوًا في المصادقة في depositFromOtherContract()، مما سهل زيادة الرصيد غير المشروعة دون أي دفع فعلي. الخسارة؟ حوالي 2,475.91 WBNB.
  • Tempdao (2023): أدى نهج متساهل في التحكم في الوصول لدالة migrateStake إلى خسارة تتجاوز 2.34 مليون دولار.

ثغرة التحكم في الوصول

  • الوصف: الثغرات التي تنشأ بسبب آليات تقييد غير كافية تحكم الوصول والصلاحيات لعمليات محددة داخل النظام.

تدابير الوقاية:

  1. فحص الأذونات الصارم: فرض بروتوكولات أذونات صارمة دائمًا للدوال، خاصة تلك التي تتعامل مع العمليات الحساسة.
  2. آلية التوقيع المتعدد: للمهام التي تتطلب اتخاذ قرار مشترك، استخدم بروتوكولات التوقيع المتعدد التي تتطلب موافقات متعددة قبل تنفيذ العمليات الحساسة.

نواقل الهجوم الشائعة

  • الوصف: طرق أو قنوات متعددة يستغلها المهاجمون لاستغلال الثغرات في النظام، لا سيما في العقود الذكية.

أمثلة بارزة:

  • هجمات القروض السريعة: يستغل ميزة الاقتراض الفوري في أنظمة التمويل اللامركزي لتنفيذ أنشطة ضارة.
  • السبق: يعلم المهاجمون بمعاملة معلقة لمستخدم آخر ويتصرفون بناءً عليها بتقديم رسوم غاز أعلى.

هجوم القرض السريع

  • الوصفعلى الرغم من أنه ليس هجومًا في جوهره، فإن FlashLoan ميزة في DeFi تتيح للمستخدمين اقتراض مبالغ كبيرة فورًا دون ضمانات. وقد استُغلت بسبب ثغرات منطقية في تفاعلات العقود وعلاقاتها.

هجمات بارزة:

  1. **Harves Finance (2020.10.26)**أسفر عن خسارة 38 مليون دولار.
  2. **InverseFinance (2022.6.16)**أدى إلى خسارة 53.2445 WBTC و99,976.29 USDT.
  3. NewFreeDAO (2022.9.8): تم سحب 4,481 WBNB، أي ما يعادل نحو 1.25 مليون دولار.
  4. Lodestar (2022.12.11): تم استغلاله عبر التلاعب بأسعار الأوراكل.
  5. 0vix (2023.4.28): أسفر عن خسارة 2 مليون دولار على سلسلة Polygon.

توصيات الوقاية:

  1. تعرّف على خصائص Flashloan أثناء تطوير المشروع.
  2. لتحديد السعر بدقة، استخدم المتوسط المرجح زمنياً أو أوراكل متعددة.

الاستباق

  • الوصف: يكتسب المهاجم معرفة بمعاملة مستخدم آخر من مجمع الذاكرة (memPool) ويستغلها بعرض رسوم غاز أعلى.

هجمات بارزة:

  1. Sushi Badger Digg (2021.1.25): أسفر عن خسارة 81.68 ETH.
  2. مجمع Sushiswap Ape-ETH (2022.5.17): حقق المهاجم ربحًا يقارب 0.3 ETH.
  3. Uniswap (2023.4.2): تسبب في خسارة حوالي 25 مليون دولار من خلال هجوم الساندويتش.

توصيات الوقاية:

  1. استخدم حماية الانزلاق السعري عند التداول.
  2. نفّذ التداولات خلال الساعات غير المزدحمة، خاصة في الأسواق المتقلبة.
  3. استخدم FlashBot rpc من 1inch لإرسال التداولات مباشرة إلى المعدّنين، وبذلك تتجاوز مجمّع الذاكرة.

الملخص

تهانينا! لقد أكملت الوحدة 2 - ثغرات العقود الذكية: نظرة متعمقة على هجمات إعادة الدخول والاستغلالات الشائعة

لنراجع ما تعلمته:

ثغرات إعادة الدخول - يستغل المهاجمون الثغرات بإعادة الدخول إلى الدوال قبل اكتمالها بالكامل.

  • إعادة الدخول في دالة واحدة: يعيد عقد خبيث الدخول إلى دالة في عقد آخر.
  • إعادة الدخول بين الدوال: تُستغل الحالات المشتركة بين دوال مختلفة بسبب ضعف الحماية من إعادة الدخول.
  • إعادة الدخول بين العقود: يستغل الحالات المشتركة عبر عقود مختلفة.
  • إعادة الدخول للقراءة فقط: يستغل دالة تُنتج مخرجات خاطئة عندما تكون الحالة غير متسقة.

تجاوز سعة الأعداد الصحيحة - حسابات تتجاوز الحدود المحددة، مما يؤدي إلى قيم متطرفة.

ثغرات التحكم في الوصول - تنشأ من غياب قيود وصول صارمة على الوظائف الأساسية.

نواقل الهجوم الشائعة - الأساليب التي يستغلها المهاجمون لاستغلال ثغرات النظام.

**هجوم القرض السريع **- ميزة في DeFi تتيح اقتراضًا كبيرًا فوريًا دون ضمانات، لكنها تُستغل بسبب عيوب منطقية.

هجوم الاستباق- يكتسب المهاجمون معرفة بالمعاملات المعلقة ويستفيدون منها بعرض رسوم غاز أعلى.

هذا المقال مقدم لكم من:

ملخص — توضيح