ثغرات مترجم Solidity تهدد أمان العقود الذكية يجب على المطورين توخي الحذر

robot
إنشاء الملخص قيد التقدم

تحليل ثغرات مترجم Solidity واستراتيجيات التعامل معها

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

دور مترجم Solidity هو تحويل كود العقد الذكي إلى كود تعليمات (EVM) الخاص بالآلة الافتراضية للإيثيريوم. على عكس ثغرات EVM نفسها، تتركز ثغرات مترجم Solidity بشكل رئيسي في المشاكل التي تحدث عند تحويل Solidity إلى كود EVM. قد يؤدي ذلك إلى عدم تطابق كود EVM الناتج مع توقعات المطور، مما يتسبب في حدوث خلل في تشغيل العقد الذكي، مما يعرض أمان أصول المستخدم للخطر.

تحليل ثغرات مترجم Solidity وإجراءات التعامل معها

فيما يلي بعض الأمثلة الحقيقية على ثغرات مترجم سوليديتي:

  1. SOL-2016-9 HighOrderByteCleanStorage

توجد هذه الثغرة في إصدارات سابقة من مترجم Solidity (>=0.1.6 <0.4.4). في حالات معينة، قد يتم تعديل متغيرات التخزين بشكل غير متوقع، مما يتعارض مع السلوك المتوقع. قد تؤدي هذه الت inconsistencies إلى عواقب وخيمة، خاصةً عندما تُستخدم المتغيرات للتحقق من الأذونات أو محاسبة الأصول.

  1. SOL-2022-4 تأثيرات الذاكرة الجانبية في التجميع الداخلي

توجد هذه الثغرة في المترجم من الإصدار 0.8.13 إلى 0.8.15. بسبب خطأ في عملية تحسين التجميع، قد يؤدي ذلك إلى إزالة عمليات الكتابة في الذاكرة بشكل خاطئ، مما ينتج سلوكًا غير متوقع للبرنامج.

  1. SOL-2022-6 AbiReencodingHeadOverflowWithStaticArrayCleanup

تؤثر هذه الثغرة على إصدارات المترجم من 0.5.8 إلى 0.8.16. عند إجراء عملية abi.encode على مصفوفة من نوع calldata، قد يتم مسح بعض البيانات بشكل غير صحيح، مما يؤدي إلى تعديل البيانات المجاورة، مما يتسبب في عدم تطابق البيانات بعد الترميز وفك الترميز.

تحليل ثغرات مترجم Solidity وإجراءات التعامل معها

بخصوص ثغرات مترجم Solidity، قدم فريق أمان blockchain Cobo الاقتراحات التالية:

إلى المطورين:

  • استخدم إصدارًا أحدث من مجمع Solidity
  • تحسين حالات اختبار الوحدة
  • تجنب استخدام التجميع الداخلي، وترميز وفك ترميز ABI المعقدة وغيرها من العمليات

إلى موظفي الأمن:

  • يجب أخذ المخاطر الأمنية التي قد يقدمها المترجم في الاعتبار أثناء التدقيق
  • حث على ترقية إصدار المترجم في عملية SDL
  • تقييم التأثير الأمني الفعلي لثغرات المترجم بناءً على الظروف المحددة

الموارد العملية:

  • مدونة تحذيرات الأمان الرسمية لـ Solidity
  • قائمة الأخطاء في مستودع Solidity GitHub
  • نصائح الأمان لصفحة شفرة العقد في Etherscan

بشكل عام، على الرغم من أنه لا داعي للذعر المفرط، يجب على المطورين وموظفي الأمان أن يكونوا على دراية كاملة بالمخاطر المحتملة لثغرات مترجم Solidity، واتخاذ التدابير المناسبة للحد من المخاطر الأمنية المحتملة.

تحليل ثغرات مترجم Solidity وتدابير التعامل معها

SOL-5.51%
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 6
  • مشاركة
تعليق
0/400
ZkProofPuddingvip
· منذ 22 س
مترجم آخر بارد
شاهد النسخة الأصليةرد0
TheMemefathervip
· منذ 23 س
هل هناك ثغرات في المترجم أيضًا؟ لقد جننت
شاهد النسخة الأصليةرد0
HodlOrRegretvip
· منذ 23 س
مرة أخرى، حدثت مشكلة بعد التحديث، والمستثمر التجزئة هو من يدفع الثمن دائمًا.
شاهد النسخة الأصليةرد0
wrekt_but_learningvip
· منذ 23 س
هذه ثغرة في الكود فعلاً مزعجة، تجعل فروة الرأس تشعر بالوخز.
شاهد النسخة الأصليةرد0
GweiTooHighvip
· منذ 23 س
المترجم فيه خطأ مرة أخرى، إنه مزعج جداً
شاهد النسخة الأصليةرد0
BakedCatFanboyvip
· منذ 23 س
مرة أخرى ثغرة في EVM يا إلهي لا أستطيع التعامل مع ذلك
شاهد النسخة الأصليةرد0
  • تثبيت