المؤلف: جاجيت سينغ، المترجم: وو باهت، Golden Finance
1. نقاط الضعف المحتملة في العقود الذكية
على الرغم من أن العقود الذكية رائدة، إلا أنها ليست محصنة ضد العيوب. والتي يمكن استغلالها من قبل الأطراف الخبيثة.
يعد التحقق غير الكافي من المدخلات نقطة ضعف شائعة تسمح للمهاجمين بالتأثير على تنفيذ العقد من خلال توفير مدخلات غير متوقعة. بالإضافة إلى ذلك، قد يؤدي التطبيق غير السليم لمنطق الأعمال إلى خلق سلوك غير متوقع أو فجوات منطقية في العقد، مما يؤدي إلى نقاط الضعف. بالإضافة إلى ذلك، يمكن أن تؤدي المكالمات الخارجية غير الآمنة (مثل تلك التي تتضمن واجهات مع مصادر بيانات خارجية أو عقود أخرى) إلى إنشاء ثغرات أمنية إذا لم يتم التعامل معها بشكل صحيح.
هجوم إعادة الدخول هو ثغرة أمنية تحدث عندما يستدعي العقد عقدًا آخر من الخارج قبل إكمال تغييرات الحالة الخاصة به. يسمح هذا للعقد المطلوب بإعادة إدخال عقد الاستدعاء وربما تنفيذ بعض عملياته مرة أخرى. يمكن أن يؤدي هذا إلى سلوك غير متوقع ويسمح للمهاجم بتغيير حالة العقد أو استنزاف الأموال أو إحداث آثار سلبية أخرى.
نظرًا لاحتمال وقوع مثل هذه الهجمات، يجب على المطورين أيضًا توخي الحذر عند استخدام العقود الخارجية أو مصادر البيانات والتأكد من التعامل مع المكالمات الخارجية بشكل صحيح لتجنب السلوك غير المتوقع ونقاط الضعف. يمكنهم المساعدة في حماية العقود الذكية من التهديدات المتطورة من خلال الاهتمام الشديد بإجراءات الأمان مثل اختبار العقود الذكية.
2. ما هو هجوم إعادة الدخول في العقد الذكي؟
في العقد الذكي، يحدث هجوم إعادة الدخول عندما يستدعي العقد عقدًا أو وظيفة أخرى من الخارج قبل إكمال تغييرات الحالة الخاصة به.
يسمح هذا للعقد المطلوب بإعادة الدخول إلى عقد الاستدعاء وربما تنفيذ بعض عملياته مرة أخرى، مما قد يؤدي إلى سلوك ضار غير متوقع ومتكرر. على سبيل المثال، يستدعي العقد (أ) العقد (ب) لإرسال الأموال ثم تعديل حالته الخاصة.
قد يحتوي رمز العقد "ب" على وظيفة رد اتصال تسمح له بإعادة إدخال العقد "أ"، وقد يعيد تنفيذ وظيفة النقل قبل أن يكمل العقد "أ" تغيير حالته. وهذا من شأنه أن يسمح للمهاجم بالحصول على أموال من العقد عدة مرات قبل إكمال المعاملة الأولية.
يعد اختراق المنظمة اللامركزية المستقلة (DAO) سيئ السمعة لعام 2016 على blockchain Ethereum مثالًا آخر معروفًا. استغل المهاجم ثغرة في إعادة الدخول في كود العقد الذكي لإزالة الأموال بشكل متكرر من DAO، مما أدى في النهاية إلى سرقة ما قيمته ملايين الدولارات من Ethereum (ETH).

بالإضافة إلى ذلك، Uniswap تم تضمين العديد من بروتوكولات التمويل اللامركزي (DeFi)، بما في ذلك Lendf.Me وBurgerSwap وSURGEBNB وCream Finance وSiren Protocol، وقد تكبدت خسائر مالية كبيرة بسبب ثغرات إعادة الدخول. أدت الانتهاكات إلى خسائر تتراوح بين 3.5 مليون دولار إلى 25 مليون دولار، مما يسلط الضوء على التهديد المستمر الذي تشكله نقاط الضعف العائدة في مجال التمويل اللامركزي.
3. كيف تعمل هجمات إعادة الدخول
تستخدم هجمات إعادة الدخول التنفيذ المتسلسل لوظائف العقد الذكية والمكالمات الخارجية لتشكيل حلقة. يمكن للمهاجم تنفيذ وظيفة محددة عدة مرات قبل إكمالها يمكن أن يؤدي هذا إلى سلوك ضار وعمليات سحب غير معتمدة للأموال.
إن عقد المهاجم "يخدع" عقد الضحية بشكل فعال ليعيد عقد المهاجم قبل أن تكمل الضحية تعديل الحالة. قد يؤدي هذا الإجراء إلى عمليات سحب متكررة أو أي سلوك آخر غير مقصود.

الصورة أعلاه توضح هجمات إعادة الدخول على العقود الذكية. يستدعي عقد المهاجم وظيفة "السحب ()" الخاصة بالضحية، والتي ترسل إيثريوم قبل تحديث الرصيد. يتم بعد ذلك تشغيل وظيفة التراجع الخاصة بالمهاجم، حيث يتم استدعاء draw() بشكل متكرر مرة أخرى لاستنزاف الأموال من عقد الضحية. يستغل هذا الهجوم فشل الضحية في تحديث رصيده قبل إرسال الأموال.
دعونا نحلل كيفية عمل هجوم إعادة الدخول باستخدام مثال مبسط:
العقد الذكي مع وظيفة "السحب"
لنفترض أن هناك محفظة رقمية ذكية عقد لسحب الأموال. بالإضافة إلى تتبع أرصدة المستخدمين، يحتوي العقد أيضًا على وظيفة سحب لتسهيل سحب الأموال. تتيح وظيفة السحب عادةً للمستخدمين سحب الرموز المميزة أو Ethereum من عقد ذكي إلى محفظتهم الشخصية.
تفاعل المستخدم وتنفيذ الوظيفة
يطلب المستخدمون أنفسهم عمليات السحب من المحفظة. يستخدمون وظيفة السحب لإدخال مبلغ السحب المطلوب.
ستقوم وظيفة السحب بالتحقق مما إذا كان لدى المستخدم أموال كافية للسحب عند الاتصال به. إذا تم استيفاء المتطلبات، فإنه يحول الأموال المطلوبة إلى العنوان الذي اختاره المستخدم.
المكالمات الخارجية
هذا هو المكان الذي تظهر فيه نقاط الضعف. يقوم العقد بإجراء مكالمة خارجية إلى عقد أو حساب آخر قبل أن ينعكس السحب في رصيد المستخدم.
المكالمات المتكررة
إذا كان كود العقد الخارجي يحتوي على وظيفة يمكنها استدعاء العقد الأصلي مرة أخرى (مثل وظيفة سحب أخرى)، فسيتم إنشاء حلقة متكررة. وهذا يسمح باستدعاء طريقة السحب مرة أخرى قبل الانتهاء.
إعادة الدخول
يستخدم المهاجم بعد ذلك عقدًا ضارًا لاستغلال هذه الحلقة. خلال الفترة التي يستدعي فيها عقد المحفظة العقد الخارجي، يستدعي عقد المهاجم بسرعة وظيفة السحب الخاصة بالمحفظة مرة أخرى قبل تحديث الرصيد.
وظيفة احتياطية
في بعض الحالات، قد يتم استخدام وظيفة احتياطية للعقد الذكي (وظيفة فريدة يتم تشغيلها عندما يتلقى العقد مكالمة بدون أي بيانات أو إيثريوم) من قبل مهاجم . يمكن تنفيذ هجمات إعادة الدخول عن طريق استدعاء الوظيفة الاحتياطية بشكل متكرر بينما لا تزال الأموال قيد المعالجة.
التلاعب والسحب المتكرر
يمكن لعقد المهاجم إعادة استخدام وظيفة السحب في نفس المعاملة لأن عقد المحفظة يؤخر تحديث الرصيد حتى تلقي مكالمة خارجية. وهذا يجعل من السهل سحب الأموال دون تصريح، مما يسمح للمهاجمين بسرقة الأموال بما يتجاوز حقوقهم القانونية. وتسببت بعد ذلك في خسائر مالية فادحة لمستخدمي عقد المحفظة.
4. عواقب هجمات إعادة الدخول
سيكون لهجمات إعادة الدخول تأثير خطير على مستخدمي العقود الذكية لأنها قد تسبب خسائر مالية كبيرة.
تتمثل إحدى العواقب الأكثر إلحاحًا لهجوم إعادة الدخول في السحب غير المصرح به أو التلاعب بالأموال النقدية المحتفظ بها في عقد ذكي ضعيف. استغل أحد المهاجمين هذه الثغرة الأمنية لسحب الأموال بشكل متكرر من العقد، مما أدى إلى استنفاد رصيد العقد ومن المحتمل أن يتسبب في خسائر مالية كبيرة للمستخدمين الذين استثمروا أو قاموا بتخزين الأصول في العقد المتأثر.
بالإضافة إلى ذلك، قد تؤدي هجمات إعادة الدخول إلى تقويض ثقة المستخدم في أمان وسلامة العقود الذكية وتقنية blockchain. يمكن أن يكون لثغرات إعادة الدخول آثار كارثية، كما يتضح من الحوادث البارزة مثل اختراق DAO لعام 2016 على blockchain Ethereum، والذي تسبب في خسائر مالية ضخمة وأضر بسمعة المجتمع.
بالإضافة إلى العواقب المالية قصيرة المدى، يمكن أن يكون لهجمات إعادة الدخول آثار طويلة المدى، مثل الاهتمام التنظيمي والقانوني، وفقدان ثقة المستثمرين، والإضرار بسمعة منصات ومشاريع blockchain. قد تدفع تصورات الضعف المستخدمين إلى توخي الحذر عند التفاعل مع العقود الذكية أو الاستثمار في التطبيقات اللامركزية (DApps)، مما يعيق اعتماد تكنولوجيا blockchain وتوسيعها.
5. كيفية التخفيف من هجمات إعادة الدخول
يعد تنفيذ أفضل الممارسات في إنشاء العقود الذكية ومراجعتها أمرًا ضروريًا للتخفيف من تهديدات إعادة الدخول.
يتضمن ذلك استخدام قواعد تعليمات برمجية حسنة السمعة ولها سجل حافل بالأمان، وهي إحدى الطرق لتحقيق ذلك. لقد تم اختبار هذه المكتبات ومراجعتها على نطاق واسع، مما يقلل من فرصة ظهور نقاط الضعف.
يجب على المطورين أيضًا استخدام عمليات التحقق من الأمان مثل تصميمات "التحقق من التأثير والتفاعل" لتقليل فرصة هجمات إعادة الدخول من خلال ضمان حدوث تعديلات الحالة ذريًا. إذا كان متاحًا، يمكن استخدام إطار عمل تطوير العقود الذكية الآمنة لإعادة الدخول لإضافة خط دفاع إضافي ضد مثل هذه الثغرات الأمنية.
من غير المرجح أن يضيف المطورون وسائل حماية أمنية يدويًا لأن هذه الأطر غالبًا ما تشتمل على أساليب ووسائل حماية مضمنة مصممة خصيصًا لتجنب هجمات إعادة الدخول. ومع ذلك، نظرًا لأن أمان blockchain لا يزال يتطور، يجب على المطورين الاستمرار في البحث عن التهديدات ونقاط الضعف الجديدة. ص>