تحليل ثغرات مترجم Solidity وإجراءات الوقاية منها

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

تحليل ثغرات مترجم Solidity وطرق الوقاية منها

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

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

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

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

  1. SOL-2016-9 تخزين بايت عالي النظام المنظف

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

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

تؤثر هذه الثغرة على المترجمات من الإصدار >=0.8.13 <0.8.15. وهي ناتجة عن قيام المترجم بإزالة تعليمات عمليات الذاكرة التي تبدو زائدة ولكنها ضرورية في الواقع، مما يؤدي إلى عدم تطابق القيمة المرتجعة للوظيفة مع المتوقع.

  1. SOL-2022-6 تجاوز سعة رأس إعادة ترميز ABI مع تنظيف المصفوفة الثابتة

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

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

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

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

  • استخدم إصدار أحدث من مترجم Solidity
  • تحسين حالات اختبار الوحدة، وزيادة تغطية الشيفرة
  • تجنب استخدام التجميع الداخلي، والترميز وفك الترميز المعقد لـ abi، وما إلى ذلك، واستخدم الميزات الجديدة والوظائف التجريبية بحذر

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

  • التركيز على المخاطر التي قد يقدمها المترجم أثناء تدقيق الأمان
  • دفع ترقية إصدار المترجم في عملية تطوير SDL، مع مراعاة إدخال فحص تلقائي في CI/CD
  • تقييم التأثير الأمني الفعلي لثغرات المترجم بناءً على حالة المشروع المحددة

بعض الموارد المفيدة:

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

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

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

SOL-3.09%
ETH-4.48%
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 6
  • مشاركة
تعليق
0/400
MEVSupportGroupvip
· 07-24 16:22
مشكلة المترجم هي الكارثة الكبرى...
شاهد النسخة الأصليةرد0
MetaverseLandlordvip
· 07-24 02:50
تحذير من المهن عالية الخطورة للمبرمجين!
شاهد النسخة الأصليةرد0
Ramen_Until_Richvip
· 07-22 03:21
لا يموت القلب حتى يصل إلى نهر هوانغ
شاهد النسخة الأصليةرد0
AirdropHunterXMvip
· 07-22 03:15
ابدأ اختبار كيفية جني المال
شاهد النسخة الأصليةرد0
LiquidityWitchvip
· 07-22 03:15
خطر الفيضانات مجنون
شاهد النسخة الأصليةرد0
SelfStakingvip
· 07-22 03:06
مضطرب للغاية، يجب تحديثه إلى أحدث إصدار بسرعة
شاهد النسخة الأصليةرد0
  • تثبيت